Правельно ли построен запрос, для вывода дней за определённый год

DenVeroid

Новичок
Правельно ли построен запрос, для вывода дней за определённый год

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

далаю таким образом

PHP:
SELECT DISTINCT YEAR(date), MONTH(date), DAYOFMONTH(date) FROM news WHERE  MONTH(date) = 

'$m' AND YEAR(date) = '$y'"

while($days_row = mysql_fetch_array($days_res)) {
$days_sel[] = $days_row['DAYOFMONTH(date)'];}
далее строю сам календарь.
Календарь выводиться через функцию <?php calendar(2004,7);?> нормально, но вот проблема

если вывожу не за сей год, а за любой другой причём за 12 месяцев
<?php calendar(2005,1);?>
...
<?php calendar(2005,12);?>

то по какойто причине начинает засыхать браузер, при отмене выводиться все кроме 12

месяца, может запрос криво построен?


я тут ещё заметил, браузер начинает засыхать, когда выводиться больше 9 месяцев

если в самом запосе убрать
PHP:
 AND YEAR(date) = '$y'
то всё нормально, но тогда данные выводяться не за свой год
 

Demiurg

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

DenVeroid

Новичок
да ё маё, что за напастие такое, чет знает что происходит, сейчас когда вывожу за 11 месяцев и меньше, то все нормально, но если вывожу больше 11 месяцев то начинает виснуть.


Я тут сверку делаю таким образом
PHP:
        if(in_array($d,$days_sel)){
        $d_sel = $d;
        }else{
        $d_norm= $d;
        }
тоесть где выстовлять ссылки на определённый день

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

PHP:
     $d_norm= $d;
     $d_sel = $d;
то браузер не засыхает, выводит нормально, но тогда ссылок нет на тех днях что была новость.

Насколько я понял, проблема не в запросе даже, а в проверке in_array(), может подругому какнибудь проверку сделать?

-~{}~ 30.07.04 21:58:

тьфу ты.....
чуть ниже код всё напортил,там переменная одна совподала, поэтому висло так, вобщем с пробемой разобрался
 
Сверху