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

Форум MySQL

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

 

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

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

тема: сортировка по рубрике
 
 автор: ronin   (04.04.2006 в 17:10)   письмо автору
 
 

у меня таблица, откуда нужно вывести информацию на страницу, отсортированную по рубрикам., т.е. помогите как вывести инфу, если рубрика - это рубрика то записи соответствующие рубрике - вперед.

CREATE TABLE 'books' (
'customerid' varchar(13) NOT NULL default '',
'name' text,
'rubrica' int(10) default NULL,
'para' float(4,2) default NULL,
'firma' varchar(10) NOT NULL default '',
'datum' datetime default NULL,
PRIMARY KEY ('customerid')
) ENGINE=MyISAM DEFAULT CHARSET=cp1251;
Это вывод - знаю, что неправильно, но как правильно?


$result = mysql_query("SELECT rubrica, DATE_FORMAT(datum,\"%d-%m-%Y\") As putdate, name, para, firma  FROM books WHERE rubrica ='".$_POST['rubrica']."' ORDER BY datum DESC, customerid DESC LIMIT $start, $num");  

и ввод

$query = "insert into books ( name,para,firma,datum, rubrica ) values
('".$name."', '".$para."', '".$firma."', NOW(), '".$rubrica."'  )";

   
 
 автор: Лёлик   (04.04.2006 в 18:07)   письмо автору
 
   для: ronin   (04.04.2006 в 17:10)
 

чего-то не оченб понятен вопрос (по крайней мере мне)... сформулируйте его почетче...

   
 
 автор: ronin   (04.04.2006 в 18:28)   письмо автору
 
   для: Лёлик   (04.04.2006 в 18:07)
 

у меня 12 рубрик - они соответствуют полю rubrica в таблице, имеется страница вывода информации, где информация должна выводится строго соответствующая вызванной рубрике, к примеру, если мониторы, то только мониторы, как мне прописать Where или нужно создать отдельную таблицу рубрик, но как их соединить?
плюс страница вывода вызывается ссылкой

<?
include "configuration.php";
$result mysql_query("SELECT * FROM books WHERE rubrica = 3");

$num_results mysql_num_rows($result);
echo 
"<A HREF=\"book.php\" ><font COLOR=\"#ffffff\" size=4>мониторы (".$num_results." )</A>";?>

WHERE WHERE rubrica = 3это я пытаюсь придумать механизм отбора по рубрике, т.е. каждая ссылка, отдельный номер WHERE rubrica = n

   
 
 автор: Лёлик   (04.04.2006 в 19:02)   письмо автору
 
   для: ronin   (04.04.2006 в 18:28)
 

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

   
 
 автор: cheops   (04.04.2006 в 22:11)   письмо автору
 
   для: ronin   (04.04.2006 в 18:28)
 

Хм... а вы передавайте первичный ключ таблицы
<? 
include "configuration.php"
$result mysql_query("SELECT * FROM books WHERE rubrica = 3"); 

$num_results mysql_num_rows($result); 
$books mysql_num_rows($result); 
echo 
"<A HREF=\"book.php?customerid=".$books['customerid']."\" ><font COLOR=\"#ffffff\" size=4>мониторы (".$num_results." )</A>";?>

   
 
 автор: ronin   (05.04.2006 в 13:41)   письмо автору
 
   для: cheops   (04.04.2006 в 22:11)
 

Хеопс! - спасибо! работает! но вот не работает ввод и вывод

$result = mysql_query("SELECT name, para, firma, DATE_FORMAT(datum,\"%d-%m-%Y\") As putdate FROM books WHERE rubrica ='".$_POST['rubrica']."' ORDER BY datum DESC, customerid DESC LIMIT $start, $num");                            


это ввод

$query = "insert into books ( name,para,firma,datum, rubrica ) values
('".$name."', '".$para."', '".$firma."', '".$rubrica."', NOW() )";
 $result = mysql_query($query);
  if ($result)
      echo  mysql_affected_rows().' данные веденны.';
      else   echo 'хрень'

вот как раз "хрень" и вывсвечивается

   
 
 автор: ronin   (06.04.2006 в 15:51)   письмо автору
 
   для: ronin   (05.04.2006 в 13:41)
 

Люди! Help!

   
 
 автор: cheops   (07.04.2006 в 00:14)   письмо автору
 
   для: ronin   (05.04.2006 в 13:41)
 

Вместо
 else   echo 'хрень'

поместите
 else   echo mysql_error();

   
 
 автор: ronin   (07.04.2006 в 10:53)   письмо автору
 
   для: cheops   (07.04.2006 в 00:14)
 

при вводе информации надпись:
Duplicate entry '' for key 1
P.S я лопух не знаю как, но у меня поле customerid - не было auto-increment!!!, т.е ввод впорядке, а вот вывод ничего не пишет, т.е страница выводиться как надо но без данных из мускула

   
 
 автор: Trianon   (07.04.2006 в 10:59)   письмо автору
 
   для: ronin   (07.04.2006 в 10:53)
 

Покажите, пожалуйста, фрагмент с выводом. У Вас только запрос виден.

   
 
 автор: ronin   (07.04.2006 в 11:35)   письмо автору
 
   для: Trianon   (07.04.2006 в 10:59)
 


$num = 10;
$page = $_GET['page'];
$result = mysql_query("SELECT * FROM books  WHERE  rubrica ='".$_POST['rubrica']."'");
$posts = mysql_num_rows($result);?>




$result = mysql_query("SELECT customerid, DATE_FORMAT(datum,\"%d-%m-%Y\") As putdate, name, para, firma  FROM books WHERE rubrica ='".$_POST['rubrica']."' ORDER BY datum DESC, customerid DESC LIMIT $start, $num");   


плюс в адресной строке пишется:
http://localhost/comp/book.php?customerid=
это видимо связано с тем, как идет ссылка я слепо переписал как написал хеопс, но как это вписать в код вывода не знаю

   
 
 автор: Trianon   (07.04.2006 в 12:11)   письмо автору
 
   для: ronin   (07.04.2006 в 11:35)
 

За этим:
<?
$result 
mysql_query("SELECT customerid, DATE_FORMAT(datum,\"%d-%m-%Y\") As putdate, name, para, firma  FROM books WHERE rubrica ='".$_POST['rubrica']."' ORDER BY datum DESC, customerid DESC LIMIT $start$num");    
?>

Должно следовать что-то такое:

<?
    
if($result == 0)
        die(
"error in SELECT on "__FILE__ ':'__LINE__ );
    echo 
"<table border=1><tr>
      <td>customerid</td>
      <td>putdate</td>
      <td>name</td>
      <td>para</td>
      <td>firma</td></tr>\r\n"
;
    while((
$row mysql_fetch_assoc($result)) != 0)
    {
        echo 
"<tr>";
        echo 
"<td>".htmlspecialchars($row['customerid'])."</td>";
        echo 
"<td>".htmlspecialchars($row['putdate'   ])."</td>";
        echo 
"<td>".htmlspecialchars($row['name'      ])."</td>";
        echo 
"<td>".htmlspecialchars($row['para'      ])."</td>";
        echo 
"<td>".htmlspecialchars($row['firma'     ])."</td>";
        echo 
"</tr>\r\n";
    }
    echo 
"</table>
?>

   
 
 автор: ronin   (07.04.2006 в 12:39)   письмо автору
 
   для: Trianon   (07.04.2006 в 12:11)
 


<? 
$result 
mysql_query("SELECT customerid, DATE_FORMAT(datum,\"%d-%m-%Y\") As putdate, name, para, firma  FROM books WHERE rubrica ='".$_POST['rubrica']."' ORDER BY datum DESC, customerid DESC LIMIT $start$num");     
$i=1;

  
?>
  </td></tr>
    </table>
<table border="0"  bgcolor="" width= 100%>

<?
  $style
[0]='blue';
  
$style[1]='yellow';
  
$nstyle=0;

  while(
$postrow mysql_fetch_array($result) )
     {  echo 
"<tr class=$style[$nstyle]>"

      
?>

<td width= 20%>
<? echo '<br>' .$postrow['putdate'].'</br>' ?>
</div></td>
<td width= 45%>
<?echo '<br>'.$postrow['name'].'</br>'  ?></div></td>
<td width= 15%>
<?echo '<br>'.$postrow['para'].'</br>' ?></div></td>
 <td width= 20%>
<?echo '<br>'.$postrow['firma'].'</br>'?></div></td>
   <?   $nstyle=1-$nstyle;
     }
      echo 
"</tr>";

?></table>


у меня большой код, тут код чередования цвета поля при выводе , а там еще код (он не указан) генерирования допольнительных страниц, если строк вывода больше 10

плюс в адресной строке пишется:
http://localhost/comp/book.php?customerid=
это видимо связано с тем, как идет ссылка я слепо переписал как написал хеопс, но как это вписать в код вывода не знаю, видимо там должен отражаться номер страницы???

   
 
 автор: Trianon   (07.04.2006 в 12:44)   письмо автору
 
   для: ronin   (07.04.2006 в 12:39)
 

И как? не работает?

Навскидку. Вывод закрывающего (/TR) находится за циклом.
Нужно поменять местами строки:

      echo "</tr>"; 
     } 

   
 
 автор: Trianon   (07.04.2006 в 12:48)   письмо автору
 
   для: ronin   (07.04.2006 в 12:39)
 

>плюс в адресной строке пишется:
>http://localhost/comp/book.php?customerid=

В адресной строке пишется то, как был вызван этот скрипт.

>это видимо связано с тем, как идет ссылка я слепо переписал
>как написал хеопс, но как это вписать в код вывода не знаю,
>видимо там должен отражаться номер страницы???

Что именно вписать и куда?
Или у Вас эта ссылка формируется неправильно?

   
 
 автор: ronin   (07.04.2006 в 13:00)   письмо автору
 
   для: Trianon   (07.04.2006 в 12:48)
 

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

автор: cheops (04.04.2006 в 22:11) письмо автору
Хм... а вы передавайте первичный ключ таблицы

<? 
include "configuration.php"
$result mysql_query("SELECT * FROM books WHERE rubrica = 3"); 

$num_results mysql_num_rows($result); 
$books mysql_num_rows($result); 
echo 
"<A HREF=\"book.php?customerid=".$books['customerid']."\" ><font COLOR=\"#ffffff\" size=4>мониторы (".$num_results." )</A>";?>  

   
 
 автор: ronin   (07.04.2006 в 17:47)   письмо автору
 
   для: ronin   (07.04.2006 в 13:00)
 

ПАМАГИТЕ! тчк УМИРАЮ...help

   
Rambler's Top100
вверх

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