|
|
|
| Всем привет! Это снова я ))) Такое дело. Делаю Скрипт новостей и ваще нехватает мозгов!
Новости храняться в базе данных MySQL название новости, текст новости, и дата новости.
Новости обнавляються раз в неделю, не известно в какой день.
Мне нужно чтобы скрипт показывал новости за прошлую неделю. Определял какие новости на этой неделе и какие будут на следующей! Вотт.....
Проблема в том что я чего то не могу придумать как все даты за прошлую неделю узнать! А также за эту и за следующюю.... )))) Помогите Please!
Всем заранее огромное спасибо!!! ))) | |
|
|
|
|
|
|
|
для: Job
(29.08.2007 в 04:32)
| | Щас найду скрипт, я делал тоже самое для гостевой:
Там у меня считала сколько новостей добавлено сегодня | |
|
|
|
|
|
|
|
для: Ильдар
(29.08.2007 в 08:37)
| | Вот:
<?php
$now = date("d.m.Y"); // определяем сегодняшнюю дату "ЗДЕСЬ МОЖНО ПОСТАВИТЬ ДИАПАЗОН"
$max_m = mysql_query("SELECT MAX(id_gb) FROM gb WHERE gb_date = '".$now."' GROUP BY id_gb;")
or die("Ошибка ".mysql_error());
print 'Сообщений сегодня: '.mysql_num_rows($max_m);
$max_all = mysql_query("SELECT MAX(id_gb) FROM gb GROUP BY id_gb;")
or die("Ошибка ".mysql_error());
mysql_num_rows($max_all);
print 'Всего: '.mysql_num_rows($max_all);
?>
|
| |
|
|
|
|
|
|
|
для: Ильдар
(29.08.2007 в 08:40)
| | ну сколько сообщений сегодня могу узнать разумней!
<?
$date = date("Y-m-d");
$query = mysql_query("SELECT * FROM `news` WHERE `date` = '$date';");
print("Сообщений сегодня: ".mysql_num_rows($query));
?>
|
Просто в выше написанном посте как то дико........
И дату луче хронить в базе данных в формате DATE нежеле в TEXT )))
Это будет полезно вопервых для сартировки по дате.... в текстовом случае сортировка будет тупить.......
-------------------
Проблема в другом! Мне нужно програмно вычеслить две даты: Дату конца прошлой недели и дату начала.
А потом уже при помощи следующего запроса выводить сообщения....
<?
$date_start = //дата начала прошлой недели....
$date_end = //дата конца прошлой недели
$query = mysql_query("SELECT * FROM `news` WHERE `date` >= '$date_start' AND `date` <= '$date_end';");
?>
|
| |
|
|
|
|
|
|
|
для: Job
(29.08.2007 в 09:13)
| | А если так:
$date_end = date("Ymd");
$date_start = date("Ymd") - 7;
А потом преоразовать Ymd в Y-m-d | |
|
|
|
|
|
|
|
для: Ильдар
(29.08.2007 в 10:02)
| | Нет наверное это неправильно | |
|
|
|
|
|
|
|
для: Ильдар
(29.08.2007 в 10:02)
| | Ну ещё бы! )))) Эх.... было бы всё так просто... ))) Да... вы конечно Ильдар сегодня даете! эх....
К примеру дата сегодня 6.08.2007 и что!?
Получаем 20070806 вычитаем 7 ))) И получаем 20070799
И в результате получаем 99.07.2007 ))) Дела! )) И это типа дата была неделю назад... ))
Хочу реальной помощи! | |
|
|
|
|
|
|
|
для: Job
(29.08.2007 в 10:14)
| |
<?
$s=time();
$s1=$s-604800;
print date("Y-m-d", $s1);
?>
|
| |
|
|
|
|
|
|
|
для: Faraon
(29.08.2007 в 10:50)
| | О! Вери вери вери биг спасибо! ))) Буду знать! )))
Но! Выводяться все новости новости начиная с 2007-08-22 и заканчивая сегодняшним днем.
А хотелось бы видеть немного не то! Новости не ровно неделю назад а реальной недели тоесть не с 2007-08-22 а с 2007-08-26... тоесть с текущего понедельника... как такое? ))) | |
|
|
|
|
|
|
|
для: Job
(29.08.2007 в 10:52)
| | Пожалуй, если считать честно, меньшим кодом будет не обойтись...
<?
$event = time();
list($yy,$mm,$dd,$wo) = explode('/',date('Y/n/j/w',$event));
$wo = $wo ? $wo-1 : 6; // 0-monday ... 6-sunday
$sunDay = 60*60*24*6 + ($monDay = mktime(12,0,0,$mm,$dd,$yy) - 60*60*24*$wo);
$mon = date('Y-m-d',$monDay); $sun = date('Y-m-d',$sunDay);
echo "$mon ... $sun";
?>
|
PS. бОльшая часть наворотов в этом коде нужна, чтобы убрать броски перехода между летним и зимним временем. | |
|
|
|