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

Форум MySQL

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

 

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

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

тема: группировка и выборка по дате
 
 автор: ronin   (01.11.2006 в 12:24)   письмо автору
 
 

к примеру, на сайт вноситься информация (в виде объявлений) 2 раза в неделю, выводить объявления нужно с учетом рубрики и даты.

<?
include "configuration.php";
$result mysql_query("SELECT * FROM books WHERE rubrica = 19 ,putdate = , а тут, для одной ссылки,что дата последняя, для другой что  - предпоследняя, для третей ссылки, что -предпредпоследняя и т.п.   ");

$num_results mysql_num_rows($result);

echo 
"<A HREF=\"book.php?rubrica=19&putdate =(??????)\" >Руководители(".$num_results.")</A>";?>

   
 
 автор: cheops   (01.11.2006 в 17:45)   письмо автору
 
   для: ronin   (01.11.2006 в 12:24)
 

У вас поле putdate какой формат имеет и сколько записей вы хотите извлечь?

   
 
 автор: ronin   (01.11.2006 в 17:56)   письмо автору
 
   для: cheops   (01.11.2006 в 17:45)
 

putdate` date(15) NOT NULL default '0000-00-00
Все, но с учетом рубрики.

   
 
 автор: cheops   (01.11.2006 в 18:00)   письмо автору
 
   для: ronin   (01.11.2006 в 17:56)
 

Возможно вам необходим следующий запрос
<? 
include "configuration.php"
$result mysql_query("SELECT * FROM books WHERE rubrica = 19 ORDER BY putdate DESC"); 
if(!
$result) exit(mysql_error());
$num_results mysql_num_rows($result); 
while(
$books mysql_fetch_array($result))
{
  echo 
"<A HREF=\"book.php?rubrica=19&putdate =$books[putdate]\" >Руководители(".$num_results.")</A><br>";
}
?>

PS Или имеется в виду что-то другое?

   
 
 автор: ronin   (01.11.2006 в 18:33)   письмо автору
 
   для: cheops   (01.11.2006 в 18:00)
 

У меня объявления должны определяться рубрикой и датой вношения.

("SELECT * FROM books WHERE rubrica = 19 ORDER BY putdate= последние вношение в базу DESC"); 

2 вариант

("SELECT * FROM books WHERE rubrica = 19 ORDER BY putdate= предпоследние вношение в базу DESC"); 

3 вариант

("SELECT * FROM books WHERE rubrica = 19 ORDER BY putdate= предпредпоследние вношение в базу DESC"); 

Может я иду неправильным путем? У меня объявления вносяться два раза в неделю(20 рубрик) и на первой странице ссылки должны быть автоматически настроенны на последний внос информации(20 ссылок - 20 рубрик) и страница(ы)архива, где через выпадающее окно выбираеться дата (семь последних вношений - номеров).

   
 
 автор: cheops   (01.11.2006 в 23:14)   письмо автору
 
   для: ronin   (01.11.2006 в 18:33)
 

Выполните запрос
SELECT * FROM books 
WHERE rubrica = 19 
ORDER BY putdate DESC
LIMIT 3

Он вернёт три записи первая - будет последняя запись, вторая - предпоследняя, третья - пред предпоследняя.

   
 
 автор: ronin   (02.11.2006 в 11:03)   письмо автору
 
   для: cheops   (01.11.2006 в 23:14)
 

я плохо объяснил, на одну дату приходиться от 1 до 300 объявлений в одной рубрике, на первой странице 20 ссылок(20 рубрик) - на объявления, приходящиеся на последнюю дату вноса, через выпадающее окно переходим или на страницу catalog.php, гда также 20 ссылок но уже на предпоследний номер, или на catalog1.php где предпредпоследний номер,или на catalog2.php где предпредпредпоследний номер

 <?
 
<FORM  action=catalog.php method=get>
      
Выбирете номер:<br>
$query "SELECT DATE_FORMAT(putdate,\"%d-%m-%Y\") as putdate FROM books GROUP BY putdate DESC LIMIT 7";// появляеться семь последних дат, когда вносилась инфа.
if($result=mysql_query($query))
{
echo 
'<select name="putdate">';
while(
$catalog mysql_fetch_array($result))
{
  echo 
'<option value="'.$catalog["putdate"].'">'.$catalog["putdate"].'</option>';
}
echo 
'</select>';
}
else
exit;
".mysql_error());
 ?>
 <input type="
submit" value="Вперед">

А как прописать, что если предпоследний номер то catalog.php? если предпредпоследний то catalog1.php и т.п и в ссылках: на первой странице

echo "<A HREF=\"book.php?rubrica=19&putdate =(последняя дата вноса)\" >Руководители(".$num_results.")</A>";?> 

на странице catalog.php

echo "<A HREF=\"book.php?rubrica=19&putdate =(ПРЕДпоследняя дата вноса)\" >Руководители(".$num_results.")</A>";?> 


на странице catalog1.php

echo "<A HREF=\"book.php?rubrica=19&putdate =(предПРЕДпоследняя дата вноса)\" >Руководители(".$num_results.")</A>";?> 


Заранее благодарю!

   
 
 автор: ronin   (02.11.2006 в 16:09)   письмо автору
 
   для: ronin   (02.11.2006 в 11:03)
 

Может так

<FORM  action=$catalog.php method=get>

где $catalog.php = Последний номер(catalog.php ), Предпоследния номер (catalog1.php) , предПРЕДпоследний номер(catalog2.php) и т.п.
Пожалуйста помогите! Пример такого сайта =http://www.vmagazin.com.ua/

   
 
 автор: ronin   (02.11.2006 в 19:36)   письмо автору
 
   для: ronin   (02.11.2006 в 16:09)
 

Помогите! В теории, предположим Все объявления (от1 до 300)(в каждой из 20 рубрик), которые вносяться в какой то день получает определенный номер, и это вноситься в отдельное поле number
Вопрос знатокам, как сделать, чтобы все объявления, вносимые в один день получали один номер (предположим автоинкремент)(даже если объявлений 1000)и каждый кроме индувидуального, тоже автоинкремент, получает общий, привязанный к дате вноса.

   
 
 автор: cheops   (02.11.2006 в 20:55)   письмо автору
 
   для: ronin   (02.11.2006 в 11:03)
 

> уже на предпоследний номер
Не понятно. Предпоследний номер чего? Например, для даты принят термин "предыдущий день". Здесь имеется в виду дата или что-то другое?

   
 
 автор: ronin   (03.11.2006 в 10:24)   письмо автору
 
   для: cheops   (02.11.2006 в 20:55)
 

Идея такова, объявления вносяться 2 раза в неделю (понедельник и четверг) первая страница отражает последнее вношение, если внесли в четверг то и в четверг и пятницу, суботу, воскресенье отражаються объявления, внесенные в четверг, ПОСЛЕ внесения новых объявлений, они становяться как бы архивом (архив на шесть последних вношений - номеров)переход к 6 архивным номерам - через выпадающий список. На первой странице 20 рубрик - ссылок на последнее вношение, Под каждый архивный номер газеты(их 6) имееться своя первая страница с 20 рубриками - ссылками

   
 
 автор: cheops   (03.11.2006 в 12:57)   письмо автору
 
   для: ronin   (03.11.2006 в 10:24)
 

Приведите, если не сложно, структуру таблицы books и таблицы, где хранятся рубрики?

   
 
 автор: ronin   (03.11.2006 в 13:21)   письмо автору
 
   для: cheops   (03.11.2006 в 12:57)
 

CREATE TABLE `books` (
`id` int(10) unsigned NOT NULL auto_increment,
`name` text,
`rubrica` varchar(10) NOT NULL default '0',
`putdate` date NOT NULL default '0000-00-00',
PRIMARY KEY (`id`)
у меня нет отдельной таблицы под рубрики, буду благодарен за помощь, в том числе и в поправке базы.

   
 
 автор: ronin   (06.11.2006 в 16:25)   письмо автору
 
   для: ronin   (03.11.2006 в 13:21)
 

Забудем про дату, при вводе объявлений в базу все объявления получают один номер(поле -number) (поле не автоинкремент, а соответствует номеру газеты)Вопрос, как сделать вывод по последнему номеру , по предпоследнему, по предПРЕДпоследнему и т.п.

echo "<A HREF=\"book.php?rubrica=19&number =(последний номер вноса)\" >Руководители(".$num_results.")</A>";?>  

echo "<A HREF=\"book.php?rubrica=19&number =( предпоследний номер вноса)\" >Руководители(".$num_results.")</A>";?>
И выпадающее окно

include "configuration.php";?>
        <FORM  action=$archive.php method=get>
     Выберете номер <br><NOBR>
      <?
$query 
"SELECT FROM books WHERE number DESC LIMIT 6(за исключением последнего номера)";
if(
$result=mysql_query($query))
{
echo 
'<select name="number">';
while(
$archive mysql_fetch_array($result))
{
  echo 
'<option value="'.$archive["number"].'">'.$archive["number"].'</option>';
}
echo 
'</select>';
}
else
exit(
"".mysql_error());
 
?>
 <input type="submit" value="Вперед">

Как прописать, что если выбран в <FORM action=$archive.php method=get>
1) предпоследний номер - $archive1.php
2) предПРЕДпоследний номер - $archive2.php
3) предПРЕДпредпоследний номер - $archive3.php и т.п.
Заранее благодарю!

   
 
 автор: cheops   (06.11.2006 в 16:42)   письмо автору
 
   для: ronin   (06.11.2006 в 16:25)
 

Для этого в первую очередь следует определить максимальный номер number в базе данных
<?php
  $query 
"SELECT MAX(number) FROM books";
  
$mnb mysql_query($query);
  if(!
$mnb) exit(mysql_error());
  
$max_number mysql_result($mnb0);
?>

Теперь, если GET-параметр number не пуст, значит нам передали предыдующий номер
<?php
  $active 
"$archive.php";
  if(!empty(
$_GET['number']))
  {
    
// Номер файла
    
$num_file $max_number $_GET['number'];
    
$active "$archive".$num_file.".php";
  } 
  echo  
"       <FORM  action=$active method=get> 
     Выберете номер <br><NOBR>"
;
?>

   
 
 автор: ronin   (06.11.2006 в 19:26)   письмо автору
 
   для: cheops   (06.11.2006 в 16:42)
 

 я видимо не так понял - в перечне номеров -пустота.
 <?php
 
include "configuration.php";
     
$active "$archive.php";
  if(!empty(
$_GET['number']))
  {
    
// &#205;&#238;&#236;&#229;&#240; &#244;&#224;&#233;&#235;&#224;
    
$num_file $max_number $_GET['number'];
    
$active "$archive".$num_file.".php";
  }
  echo  
"       <FORM  action=$active method=get>
     Выбрать номер<br><NOBR>"
;

$query "SELECT MAX(news_number) FROM books";
  
$mnb mysql_query($query);
  if(!
$mnb) exit(mysql_error());
  
$max_number mysql_result($mnb0);
if(
$result=mysql_query($query))
{
echo 
'<select name="news_number">';
while(
$catalog mysql_fetch_array($result))
{
  echo 
'<option value="'.$catalog["news_number"].'">'.$catalog["news_number"].'</option>';
}
echo 
'</select>';
}
else
exit(
"".mysql_error());
 
?>
 <input type="submit" value="Вперед">

у меня гиперссылка

<?
include "configuration.php";

$result mysql_query("SELECT MAX(news_number) FROM books WHERE   rubrica = 19"); $num_results mysql_num_rows($result);
$books mysql_num_rows($result);
echo 
"<A HREF=\"book.php?rubrica=19&news_number=".$books['news_number']."\" ><div class='8'>Руководители (".$num_results." )</A>";?>

Выводитвсе все объявления данной рубрики, невзирая на номер, в адресном окне пишет:
http://localhost/znrnew/book.php?rubrica=19&news_number=
Я всетаки непрофиссионал, а любитель, если можно инфу выдавать разжеванной.

   
Rambler's Top100
вверх

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