mysqli_fetch_assoc очистить данные? - PullRequest
0 голосов
/ 23 декабря 2009

Я получаю некоторые данные из MySQL.

$result = $forum_model->get_info($_SESSION['group_id']);

// шаг 1

while($user = mysqli_fetch_assoc($result))
{
    some code
}

но когда я позже хочу, чтобы некоторые строки ниже использовали те же данные, извлеченные из mysql, это не сработало.

// шаг 2

while($user = mysqli_fetch_assoc($result))
{
    some code
}

опустошен ли результат $? Должен ли я сделать еще один

$result = $forum_model->get_info($_SESSION['group_id']);

чтобы получить те же данные?

Я пытался сделать так в начале

$result = $forum_model->get_info($_SESSION['group_id']);
$result2 = $result;

затем на втором шаге вместо этого используйте $ result2, но, похоже, он тоже не работает.

как я могу решить это легко?

Ответы [ 2 ]

1 голос
/ 23 декабря 2009

Да, этот код

while($user = mysqli_fetch_assoc($result)) {
   some code
}

перебирает оператор, перемещая указатель результата, пока он не достигнет конца набора результатов.

Чтобы повторно выполнить запрос (не уверен, почему вы не можете сохранить результаты в массиве php), вы должны сделать следующее:

mysql_data_seek($result,0)
0 голосов
/ 23 декабря 2009

Неэффективно извлекать один и тот же набор результатов дважды. Я рекомендую вам исправить свой код, чтобы использовать извлеченные строки результатов. (Это может помочь, если вы извлекаете их как объекты).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...