выборка строк из базы под определенную дату

Ixe

Новичок
выборка строк из базы под определенную дату

Здравствуйте
Сталкнулся с такой проблемой - из базы берутся строки и за определенную дату и выводятся, потом за другую..ит.д.

т.е.
дата

17.02.03
строка..
строка..
строка

16.02.03
строка.
.строка ит.д.

Короче, я делаю так - кагда пишу строки в базу, поле (char) записываую текущую дату, потом с помощью descrit вытаскиваю уникальные даты, сортируя их по auto increment что бы самая последняя дата была вверху, и пишу их в массив, далее, в цикле делаю запрос в котором прокручиваются весь массив дат, т.е. в цикле идет опр. дата которая помещается в зпрос и выбирает все строки которые имеет такое же поле с датой, потом вывожу текущую дату (по которой ищутся строки) и далее результат самого поиска строк по этой дате т.е. получается
дата 17.02.03
строки...
и так далее по всему массиву дат...Или за сколько нужно дней вывести стольок и делаю выполнений для цикла

Вообщем, как это все дело запихать в 1 2 запроса а?:(

Помогите это делао оптимизоровать...
 

Ixe

Новичок
StUV
в поиске то я был...
Вы мне алгоритм подскажите, как это все в 1- 2 запроса провернуть :\
а дальше я сам...
 

IntenT

SkyDiver
Выбирай все одним запросом, сортируя по 2-м полям:
date DESC, auto_increment DESC

Потом в цикле {
если изменилась дата {
выводишь ее;
счетчик строк для текущей даты = 0;
}
eсли счетчик строк для текущей даты < кол-ва строк{
выводишь строку для текущей даты;
}
}
 

Ixe

Новичок
Спасибо задачу решил.
Поломал немного голову и сделал так -

PHP:
for($i=0; $i<$count; $i++)
{
   $row = mysql_fetch_array($result);
   
   if($date != $row['date'])
   {
      echo $row['date'].'<br>';
      $date = $row['date'];
   }

   echo $row['title_news'].'<br>';
}
т.е. одним запросом выбриаю все строки и далее сверяю если дата изменяется ее вывожу и т.д.

Вобщем эффект тот же что и был, но кода в 10 раз меньше:) И главное быстрее...
 

гоша

Guest
а что такое $count?

while($row=mysql_fetch_assoc(...))

далее по тексту.
только $date перед началом цикла инициализировать надо (нулем, например).
 

Ixe

Новичок
Автор оригинала: гоша
а что такое $count?

while($row=mysql_fetch_assoc(...))

далее по тексту.
только $date перед началом цикла инициализировать надо (нулем, например).
в $count mysql_num_rows...

По поводу нуля - какая разница? Эффект тот же ведь.
 

гоша

Guest
> какая разница? Эффект тот же ведь

какая разница, как писать -- "идиот" или "адиёт"?
смысл-то один и тот же... ;)
 
Сверху