[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Вывод даты в цикле
art8316
Добрый день.
Есть база и в ней в каждый день вносится разное количество записей. Нужно вывести пять дней в которых максимальное количество записей с указанием этого количества в каждом.

Вот то, что есть сейчас:


$result = mysql_query ("SELECT COUNT(*) AS id, data FROM table GROUP BY data ORDER BY id DESC LIMIT 5");
$myrow = mysql_fetch_array ($result);
$posts = $myrow[0];
do
{
printf ("<p>%s</p>
<p>%s</p>"
,$posts,$myrow["data"]);
}
while ($myrow = mysql_fetch_array ($result));


В данном случае мы имеем вывод 5 дат в обратном порядке, но проблема только в том что он ставит везде максимальное число записей, а не число записей в каждый день. Почему он так делает в принципе понятно, но вот как сделать то, что я действительно хочу не совсем понятно.



Спустя 51 минута, 52 секунды (5.03.2011 - 12:30) Trianon написал(а):
почему $posts = $myrow[0]; не внутри тела цикла?

ну и do...while наводит на нехорошие мысли.

Спустя 8 минут, 36 секунд (5.03.2011 - 12:38) art8316 написал(а):
Все верно. Поправил теперь все так как нужно.

P.S. А чем тут do...while плох?

Спустя 27 минут, 24 секунды (5.03.2011 - 13:06) Trianon написал(а):
Тем, что он там не к месту.
Подробнее - здесь. примерно в первой трети. Поиском по слову do

Спустя 16 минут, 14 секунд (5.03.2011 - 13:22) two написал(а):
art8316
$result = mysql_query("SELECT COUNT(*) AS `id`, `data` FROM `table` GROUP BY `data` ORDER BY `id` DESC LIMIT 5");
while($myrow = mysql_fetch_array($result))
{
$posts = $myrow[0];
echo '<p>'. $posts .'</p><br><p>'. $myrow['data'] .'</p>';
}

Спустя 1 час, 27 минут, 14 секунд (5.03.2011 - 14:49) Michael написал(а):
Цитата (art8316)
В данном случае мы имеем вывод 5 дат в обратном порядке, но проблема только в том что он ставит везде максимальное число записей, а не число записей в каждый день

вот это мне не совсем понятно. У тебя будет результат - день и кол-во записей в этот день. Для тех дней, в которых больше всего записей.

Приведи пример таблицы с данными. Какую выборку получаешь и какую требуется.


Спустя 1 час, 51 минута, 21 секунда (5.03.2011 - 16:41) art8316 написал(а):
Цитата (Michael @ 5.03.2011 - 11:49)
Цитата (art8316)
В данном случае мы имеем вывод 5 дат в обратном порядке, но проблема только в том что он ставит везде максимальное число записей, а не число записей в каждый день

вот это мне не совсем понятно. У тебя будет результат - день и кол-во записей в этот день. Для тех дней, в которых больше всего записей.

Приведи пример таблицы с данными. Какую выборку получаешь и какую требуется.

Задача уже решена, проблема было только в том, что я не включил выборку максимального количества записей в цикл. Изачально у меня выводились нужные даты, но во всех стояло одинаковое зисло записей за эту дату. (как сказал выше я просто не включил это в цикл)
Цитата (Trianon @ 5.03.2011 - 09:30)

почему $posts = $myrow[0]; не внутри тела цикла?
.


Ну и как посоветовали выше заменил цикл do...while

Спустя 1 час, 19 минут, 24 секунды (5.03.2011 - 18:00) inpost написал(а):
art8316
Пробегись по ссылкам в моей подписи всем, будет очень полезно для тебя.
Быстрый ответ:

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