Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Архив новостей
Форумы портала PHP.SU » » Вопросы новичков » Архив новостей

Страниц (1): [1]
 

1. Exponat - 12 Июня, 2014 - 11:51:58 - перейти к сообщению
Пытаюсь сделать архив новостей. На одном сайте нашел такой код
PHP:
скопировать код в буфер обмена
  1. $result=mysql_query("SELECT `date` FROM `news` ORDER BY `date` DESC",$db);
  2. $existsArr=array();
  3. while($row=mysql_fetch_array($result)){
  4.     $date=$row['date'];
  5.     $date=date_create($date);
  6.     $year=date_format($date,'Y'); // выделяем год из даты
  7.     $month=date_format($date,'m'); // выделяем месяц из даты
  8.     if(!isset($existsArr[$year])){
  9.         $existsArr[$year]=array();
  10.     }
  11.     $existsArr[$year][$month]=$month;
  12. }
  13.  
  14. $out='';
  15.  
  16. foreach($existsArr as $key=>$yearRow){
  17.     $out.='<div>'.$key.': ';
  18.  
  19.     for($i=1;$i<=12;$i++){
  20.         $searchStr=($i<10)?'0'.$i:$i;
  21.         if(in_array($searchStr,$yearRow)){
  22.             $out.='<a href="#">'.$searchStr.'</a> ';
  23.         }else{
  24.             $out.=$searchStr.' ';
  25.         }
  26.     }
  27.     $out.='</div>'."\n";
  28. }
  29. echo $out;


Вывод информации получается верным и выглядит так:
2013: 01 02 03 04 05 06 07 08 09 10 11 12
2014: 01 02 03 04 05 06 07 08 09 10 11 12
2012: 01 02 03 04 05 06 07 08 09 10 11 12

Эти ссылки не рабочие. Как мне сделать, чтоб при клике на любой из месяцев открылась страница из всеми новостями из выбранного месяца?
2. LIME - 12 Июня, 2014 - 11:56:05 - перейти к сообщению
PHP:
скопировать код в буфер обмена
  1. $out.='<a href="#">'.$searchStr.'</a> ';
что еще тут надо?
всё...я увольняюсь
заатаковали деятели В компании
3. Exponat - 12 Июня, 2014 - 12:05:03 - перейти к сообщению
Это пустая ссылка. Или я что-то не догоняю? Улыбка
4. esterio - 12 Июня, 2014 - 12:06:25 - перейти к сообщению
аттрибут HREF тега A у вас равен #. А он должен указивать УРЛ
5. Exponat - 12 Июня, 2014 - 12:09:22 - перейти к сообщению
esterio пишет:
аттрибут HREF тега A у вас равен #. А он должен указивать УРЛ


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

Какой должен быть запрос в странице-выводе новостей за определенный месяц?
6. LIME - 12 Июня, 2014 - 12:12:54 - перейти к сообщению
это тебя спросить надо
какой должен быть?
7. Exponat - 12 Июня, 2014 - 12:19:28 - перейти к сообщению
Хорошо. Пусть это будет ссылка вида
CODE (html):
скопировать код в буфер обмена
  1. http://www.site.com/?action=news_arhive&month=10


А какой запрос для выборки нужно создать в news_arhive.php?
8. LIME - 12 Июня, 2014 - 12:23:02 - перейти к сообщению
госпади помилуй
PHP:
скопировать код в буфер обмена
  1. $out.='<a href="?action=news_arhive&month='.$searchStr.'">'.$searchStr.'</a> ';

ну сложно разве?
9. Exponat - 12 Июня, 2014 - 12:27:50 - перейти к сообщению
Вроде не сложно Подшучивать, дразнить
Но меня больше интересует сам запрос для вывода новостей для определенного месяца....
10. esterio - 12 Июня, 2014 - 12:32:29 - перейти к сообщению
CODE (SQL):
скопировать код в буфер обмена
  1. SELECT * FROM tableName WHERE ....
11. Exponat - 12 Июня, 2014 - 12:39:52 - перейти к сообщению
esterio пишет:
CODE (SQL):
скопировать код в буфер обмена
  1. SELECT * FROM tableName WHERE ....


С таблицы news нужно вытянуть дату (столбец date либо date_time), тайтл новостей (title).

Но у меня столбец date содержит дату в таком формате: 12.06.2014. Но есть еще столбец date_time который содержит дату в формате 2014-06-12 11:40:00.
12. IllusionMH - 12 Июня, 2014 - 12:43:09 - перейти к сообщению
Exponat, использовать столбец с нормальной датой(а date выкинуть) и использовать функции YEAR и MONTH при сравнении.

 

Powered by ExBB FM 1.0 RC1