[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: сбросить массив
Guest
$aboutvotesresult=mysql_query("SELECT * FROM table WHERE id='5');
$aboutvotes=mysql_fetch_assoc($aboutvotesresult);

do
{
-------
}
while ($aboutvotes=mysql_fetch_assoc($aboutvotesresult));

reset($aboutvotes);

do
{
if ()
BREAK;
else
----------------
}
while ($aboutvotes=mysql_fetch_assoc($aboutvotesresult));

в общем смысл такой: мне нужно два раза отдельно выполнить цикл с $aboutvotes
решил использовать reset($aboutvotes); но пишет ошибку, что $aboutvotes - не массив))

предложите любые способы решения данной задачи(2 цикла с одним массивом подряд)
только не спрашивайте, почему нельзя все сделать в одном цикле, в первом случаи мне НЕЛЬЗЯ прерывать цикл, а во втором НУЖНО.



Спустя 9 минут, 24 секунды (7.06.2010 - 16:10) Basili4 написал(а):
Я не понимаю зачем тебе reset. Ну вот по логике смотри вот эта функция mysql_fetch_assoc ложит запись в ассоциированный массив ты его в теле циклакак то юзаешь

$aboutvotes[0] или через foreach не суть важно на следующей итерации следующая запись попадает в массив $aboutvotes причем указатели сами сдвигаются в начало.

тебе ту более не указатели массива в начало сдвигать а указатель записей в начало установить чтоб снова было возможно по записям пройтись.

Спустя 3 минуты, 45 секунд (7.06.2010 - 16:14) Guest написал(а):
Basili4
я знаешь почему решил, что нужен reset, потому что цикл, который впереди(сверху) работает, а второй не работате, если после первого цикла написать
print_r($aboutvotes) - то пустота, - не понимаю почему.

Спустя 2 минуты, 8 секунд (7.06.2010 - 16:16) Guest написал(а):

print_r($aboutvotes);//выдает массив
do
{
-------
}
while ($aboutvotes=mysql_fetch_assoc($aboutvotesresult));

print_r($aboutvotes); //ничего не выдает


do
{
if ()
BREAK;
else
----------------
}
while ($aboutvotes=mysql_fetch_assoc($aboutvotesresult));

Спустя 2 минуты, 1 секунда (7.06.2010 - 16:18) Basili4 написал(а):
Я же уже сказал в первом цикле записи проходят до конца все конец не чего более проходить и соответсенно второй цикл не срабатывает тебе надо перейти на начало запесей. дляэтого либо повторить запрос ли бо думать как без повторного запроса перейти на начало я незнаю и немогу найти

Спустя 5 минут, 31 секунда (7.06.2010 - 16:24) Guest написал(а):
Basili4
вот я и думаю)) по-любому кто-нибудь сталкивался с такой ситуаций, не хочется заново запрашивать

Спустя 1 минута, 52 секунды (7.06.2010 - 16:26) Basili4 написал(а):
Я точно не сталкивался. Я не буде тебя терзать вопросама накой 2 цикла. Но скажу если есть необходимость дважды делать тоже самое значит алгоритм решения задачи не оптимален.

Спустя 6 минут, 11 секунд (7.06.2010 - 16:32) Guest написал(а):
Basili4
в первом случаи нужны данные для подсчета, во втором нужно узнать есть ли айди сессии в таблице, если есть просто остановить цикл.
в общем вместо второго цикла я сразу запрос сделал с сравнением айди и все)

насчет оптимальности ты прав, я всегда в таких ситуациях чувствую, что туплю))

Спустя 4 минуты, 3 секунды (7.06.2010 - 16:36) Basili4 написал(а):
Вот это дело я тебе больше скажу считать mysql тоже уммет если тебе сумму полей или еще что то вроде этого то можно и без первого цикла обойтись

Спустя 3 минуты, 30 секунд (7.06.2010 - 16:39) Guest написал(а):
Basili4
да, я в последнее время здорово так перехожу на обработку данных в mysql, не знал раньше о ее возможностях, честно говоря)
спасибо за поддержку!

Спустя 1 минута, 52 секунды (7.06.2010 - 16:41) Basili4 написал(а):
Да не зашто.

Спустя 1 час, 29 минут, 59 секунд (7.06.2010 - 18:11) 1 написал(а):
Тебе нужен цикл while(){}, а не do{}while()! А во вторых ты уверен что из база вернула запись, не NULL
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.