Код (Text): $sql ="SELECT * FROM `sm_log` WHERE user_id=$user_id";//Выборка всех строк в которых значение поля user_id = $user_id $row = mysql_fetch_array(mysql_query($sql)); //формируем массив echo ($row['read']); echo ($row['count']); ecgo ($row['time']); этот запрос выводит лишь самую верхнюю запись из таблицы подскажите народ как вывести поля read count и time во всех строках??? Код (Text): $sql ="SELECT * FROM `sm_log` WHERE user_id=$id_user_real";//Запрос SQL while($row = mysql_fetch_array(mysql_query($sql))) //Зацикливаем и отправляем в массив $ROW { echo ($row['read']); echo ($row['count']); echo ($row['time']); } 502 bad gateway записей много может лимит поставить? как вывести записи ???
Код (Text): $sql ="SELECT * FROM `sm_log` WHERE user_id=$id_user_real";//Формируем SQL запрос while($row = mysql_fetch_array(mysql_query($sql)))//Зацикливаем mysql_fetch_array и отправляем в массив $row { echo ($row['read']);//Показываем результат цикла тоесть все строки указанных полей echo ($row['count']); echo ($row['time']); } Если не ипользовать цикл то выводит самую верхнюю запись если использовать цикл то долго грузит страницу а потом ошибка 502 я так понимаю это из за того что много записей и прогонять в цикле каждую сложно серверу Помогите народ как вывести все записи
тебе просто не надо в цикле вызывать query. это не тот случай где можно вкладывать вызовы функций! делай так Код (PHP): $result = mysql_query('блаблабла'); while ($row = mysql_fetch_assoc($result)) { ололо } и, кстати, mysql_query по умолчанию буфферизованный, то есть сервер полюбому отдает все строки запроса до того как ты начнешь их вычитывать через mysql_fetch*. поэтому даже если ты используешь только первую строку результата, ты нагружаешь сервер по полной.
Всё равно одна запись и из середины таблицы берётся Код (Text): $result = mysql_query ("SELECT * FROM `sm_log` WHERE user_id='$id_user_real'"); while($row = mysql_fetch_assoc($result)) { $read = ($row['read']); $count = ($row['count']); $time = ($row['time']); }
у таблицы нет "середины", принципиально. множества неупорядочены. только фраза ORDER BY придает записям какой-то порядок. видимо твоё условие запроса такое, что ему соответствует только одна строка. с циклом сейчас всё в порядке
нет user_id = 20 почти все записи в поле user id имеют значение 20 Добавлено спустя 4 минуты 59 секунд: Возможно цикл проходит полностью, так как он показывает последнюю запись для user id 20 Как зафиксировать каждое значение цикла?
твой цикл ничего не показывает, а присваивает одни и те же переменные! либо делай echo прямо в цикле, либо накапливай в массив строк и потом используй еще один цикл: Код (PHP): $rows = array(); while($row=...) { $rows[] = $row; // $rows будет собержать ВСЕ прочитанные записи } ... // теперь выводим все накопленные записи foreach ($rows as $row) { echo $row['time']; // ... и т.д. }
Прости, что? В цикле заполни массив, как нужно тебе, а с помощью join разложи массив, ниже цикла, там где необходимо - это ты имеешь ввиду или что?
Команда join служит для объединения таблиц насколько помню у меня всё в одной таблице тремя полями надо изъять эти три поля и все строки в них. Проблема: при изъятии данных Select ом запрос выбирает только одну строку. При изъятии select ом и циклом mysql fetch array формируется массивы $count, $time, $read. Данные массивы хранят полную информацию только в цикле. Покажу наглядно Код (Text): $result = mysql_query ("SELECT * FROM `table` WHERE user_id='20'");//Запрос while($row=(mysql_fetch_array($result)))//Цикл запросов { echo ($row['read']); echo ($row['count']); echo ($row['time']);//В цикле эти массивы хранят полную информацию т.е все строки из поля time } //вне цикла массив уже не хранит все строки а только одну :( foreach($row as $key => $value)//если использовать foreach ниже { echo $value; // В переменную $value передаёться весь массив в цикле } //если использовать вне цикла $value он хранит последнее значение цикла тоесть ($row['time']) Народ кто меня хоть немного понял помогите пожалуйста а кто не понял я напишу чё мне надо XD надо из трёх полей таблицы абсолютно все строки загнать в три переменные Код (Text): echo $count;//что бы переменная count хранила все строки из поля count echo $read;//что бы переменная read хранила все строки из поля read echo $time;//что бы переменная time хранила все строки из поля time Добавлено спустя 2 минуты 19 секунд: Я уже подумываю о том что бы массивы в цикле отправить в cookie а потом извлекать вне цикла
phpjunior, наверное Your имел в виду php-шную функцию join, синоним implode() — склеивание элементов массива в строку. Код (PHP): $count = $read = $time = array(); while($row=...) { $count[] = $row['count']; $read[] = $row['read']; $time[] = $row['time']; } убедиться, что $time после цикла содержит все нужные значения можно так: Код (PHP): var_dump($time); ознакомься пожалуйста с любой книжкой типа "PHP для чайников". форум не заменяет учебники, здесь тебе могут подсказать пару раз, потом пошлют. еще рекомендую http://phpfaq.ru/debug
Ты реал, трудно доход?) И зачем ты постоянно берешь в скобки везде и всюду? (mysql_fetch_array($result)). Какие <матное слово> объединения таблиц, я тебе что сказал таблицы объеденять? ОМГ! Ты вообще читаешь, что пишут или у тебя в голове только 3 переменные? Код (PHP): $array=array(); while($row = mysql_fetch_assoc($result)) { $array['read'][]=$row['read']; $array['count'][]=$row['count']; $array['time'][]=$row['time']; } echo'Read: '.join(' ',$array['read']); echo'Count: '.join(' ',$array['count']); echo'Time: '.join(' ',$array['time']); Либо сделать 3 массива: Код (PHP): $read=$count=$time=array(); while($row = mysql_fetch_assoc($result)) { $read[]=$row['read']; $count[]=$row['count']; $time[]=$row['time']; } echo'Read: '.join(' ',$read); echo'Count: '.join(' ',$count); echo'Time: '.join(' ',$time);