resource identifier

Semen

Семён
resource identifier

Делаю запрос в базу "SELECT", получаю resource identifier, далее mysql_fetch_assoc и делаю что мне нужно с данными (не делаю mysql_free_result), но если дальше в скрипте делаю снова mysql_fetch_assoc с этим же resource identifier, то уже нет данных?
В мане сказано, что resources associated автоматически очищается только после окончания скрипта.
 

Demiurg

Guest
правильно там сказано. а в чем вопрос то ?
 

Semen

Семён
Автор оригинала: Demiurg
правильно там сказано. а в чем вопрос то ?
Я хотел, чтобы не делать повторный идентичный запрос в базу, использовать повторно resource identifier, но resources associated уже пустые...
 

Demiurg

Guest
[m]mysql_data_seek[/m]
но лучше будет данные куда то складывать.
Если поподробнее объяснишь задачу, получишь более подробный ответ
 

Semen

Семён
Автор оригинала: Semen
Я хотел, чтобы не делать повторный идентичный запрос в базу, использовать повторно resource identifier, но resources associated уже пустые...
таблица table:
id, nome...
...
PHP:
$result=mysql_query('SELECT id FROM `table`');
while($a=mysql_fetch_assoc($result)){ print $a['id'];}
получаем 1, 2, 3, 4 ...
дальше в скрипте, в зависимости от условий, могут снова понадобяться эти данные. Я думал просто повторить
PHP:
while($a=mysql_fetch_assoc($result)){ print $a['id'];}
но уже получаем       , т.е. ничего
Почитав мануал, я не обнаружил объяснение этому.
Одно из решений вижу так - при первом проходе данных вставлять их в массив
PHP:
$result=mysql_query('SELECT id FROM `table`');
$array=array();
$i=0;
while($a=mysql_fetch_assoc($result))
{
$array[$i]=$a;
print $a['id'];
}
 

Demiurg

Guest
Это надуманый пример. Расскажи реальную задачу.
 

Semen

Семён
Автор оригинала: Demiurg
Это надуманый пример. Расскажи реальную задачу.
это реальный пример:
иногда я использую одно и тоже меню, но с различным дизайном, в разных местах страницы
 

Demiurg

Guest
тогда загоняй все в массив, а выводи уже из него.
 

m2k

Новичок
либо делай 2ой аналогичный запрос чтобы получить $result либо сохраняй куданить в массив
а данные никуда не деваюца просто при использовании mysql_fetch_assoc внутрений узакатель в $result перемещается вперёд а т.к. ты циклом доходиш до конца $result то тебе во 2ой раз уже нечего показывать... есть какаято ф-ция вроде чтоб переместить внутрений указатель на нужное тебе место в твоём случае в самое начало mysql_data_seek (resource result_identifier, int row_number) вот она вроде

-~{}~ 10.12.04 12:58:

либо делай 2ой аналогичный запрос чтобы получить $result либо сохраняй куданить в массив
а данные никуда не деваюца просто при использовании mysql_fetch_assoc внутрений узакатель в $result перемещается вперёд а т.к. ты циклом доходиш до конца $result то тебе во 2ой раз уже нечего показывать... есть какаято ф-ция вроде чтоб переместить внутрений указатель на нужное тебе место в твоём случае в самое начало mysql_data_seek (resource result_identifier, int row_number) вот она вроде
 

Semen

Семён
спасибо всем за помощь, оказалось просто
PHP:
mysql_data_seek($result, 0);
 

Semen

Семён
Автор оригинала: Фанат
лично я бы положил в массив.
если можно причины ...
Получается что мы создаем(дублируем) ещё один массив с идентичной информацией(как я понимаю resource identifier - это указатель на массив, для обработки которого можно использовать только определённые функции mysql_fetch_...)
 
Сверху