Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум MySQL

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Кол-во месяцев с минимальной даты
 
 автор: brys   (06.05.2010 в 05:50)   письмо автору
 
 

Не как не могу решить одну задачку:
Нужно узнать Кол-во месяцев с минимальной даты в таблице и вывести эти даты по каждому месяцу

  Ответить  
 
 автор: Valick   (06.05.2010 в 07:46)   письмо автору
 
   для: brys   (06.05.2010 в 05:50)
 

не удивительно, что Вы не можете решить эту задачу, лично я даже понять её не могу, попробуйте описать её немного подробнее

  Ответить  
 
 автор: brys   (06.05.2010 в 09:42)   письмо автору
 
   для: Valick   (06.05.2010 в 07:46)
 

есть данные в таблице с полями (int) id и added (datetime) записи которые добавлялись несколько месяцев. Мне надо выводить данные как постраничная навигация, но за место "LIMIT от и до" надо чтобы выводились данные за каждый месяц. То бишь 1 страница и это 1 месяц.
Как сделать это с простыми записями мне известно, мне хотя бы описать алгоритм действий

  Ответить  
 
 автор: Trianon   (06.05.2010 в 10:11)   письмо автору
 
   для: brys   (06.05.2010 в 09:42)
 

У Вас будут страницы переменной длины.
Вам не нужен LIMIT.
Нужно условие WHERE `added` BETWEEN ... AND ...

  Ответить  
 
 автор: brys   (06.05.2010 в 10:14)   письмо автору
 
   для: Trianon   (06.05.2010 в 10:11)
 

Тут все понятно, а как сделать навигацию?

  Ответить  
 
 автор: Trianon   (06.05.2010 в 10:16)   письмо автору
 
   для: brys   (06.05.2010 в 10:14)
 

Какой фрагмент вызывает трудности?

  Ответить  
 
 автор: brys   (06.05.2010 в 10:26)   письмо автору
 
   для: Trianon   (06.05.2010 в 10:16)
 

Тут уже надо php приписать
Вот вы мне в прошлый раз помогли разобраться с постраничной навигацией

c первым кодом мне понятно, как построить запрос я понимаю (пишу первый код для полной ясности)

$num = 10;    
    $page = intval($_GET['page']);
    
    $count_sql = mysql_query("......`");
    $count = mysql_num_rows($count_sql);
    
    $total = intval(($count-1) / $num) + 1;
    
    if(empty($page) or $page < 0) $page = 1; 
     if($page > $total) $page = $total; 
            
    $start = $page * $num - $num;
    
    $SQL = mysql_query("....."); 

while($r = mysql_fetch_assoc($SQL_c))
{
  ......



а тут выводим навигацию по LIMIT.


for($i = max(1, $page-2), $end = min($total, $page+2); 
  $i < $end; 
    $i++)


Сейчас 1 страница равно 10 записям, а мне надо чтобы 1 страницы была равно одному месяцу

  Ответить  
 
 автор: Trianon   (06.05.2010 в 11:23)   письмо автору
 
   для: brys   (06.05.2010 в 10:26)
 

> $count_sql = mysql_query("......`");
> $count = mysql_num_rows($count_sql);

Такое безобразие я Вам посоветовать не мог.


И я несовсем понимаю, при чем тут этот код вообще. По-моему, он плохо передает логику обработки.

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

  Ответить  
 
 автор: brys   (06.05.2010 в 12:48)   письмо автору
 
   для: Trianon   (06.05.2010 в 11:23)
 

Вы мне посоветовали это код

for($i = max(1, $page-2), $end = min($total, $page+2); 
  $i < $end; 
    $i++)

Вот ссылка http://www.softtime.ru/forum/read.php?id_forum=1&id_theme=67924&page=1
Первый вы мне не советовали

  Ответить  
 
 автор: brys   (07.05.2010 в 02:50)   письмо автору
 
   для: Trianon   (06.05.2010 в 11:23)
 

Вот вроде получилось:

Запрос:

$minDateSql = mysql_fetch_assoc(mysql_query("SELECT PERIOD_DIFF(DATE_FORMAT(MIN(`added`), '%Y%m'),DATE_FORMAT(NOW(), '%Y%m')) AS `minDate` FROM `content`"));


Навигация:

for($i = 0; $i < ltrim($minDateSql['minDate'], '-'); $i++) {
        echo '<a href="#">'.date("Y-m", strtotime(date('Y-m').' - '.$i.' month')).'</a> ';    
    }

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования