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. alsio - 15 Февраля, 2013 - 13:33:52 - перейти к сообщению
Отрывок из view.php :
PHP:
скопировать код в буфер обмена
  1. <? // Составляем запрос для извлечения данных таблицы
  2. $query = "SELECT * FROM $table ORDER BY id DESC";
  3.  
  4. // Выполняем запрос. Если произойдет ошибка - вывести ее
  5. $res = mysql_query($query) or die(mysql_error()); ?>
  6.  
  7. <table width="1570" border="0" cellspacing="1" cellpadding="5" bgcolor="#005b7f">
  8.   <tr class="tablebar">
  9.     <td width="60">№ расписки</td>
  10.     <td width="60">Дата приема</td>
  11.     <td width="70">Статус</td>
  12.   </tr>
  13.   <? while ($row = mysql_fetch_array($res)) { ?>
  14.   <tbody class="table">
  15.   <tr>
  16.     <td valign="top"><b><? echo ("<a name=\"upd\" href=\"update_data.php?upd=".$row["id"]."\"> ".$row["id"]." "); ?></a></b></td>
  17.     <td valign="top"><? echo (" ".$row["creatdate"]." "); ?></td>
  18.     <td valign="top"><? echo (" ".$row["status"]." "); ?></td>
  19.   </tr>
  20.   </tbody>
  21. <? } ?>
  22. </table>


В таблицу выводятся все данные из БД по id, согласно 1,2 строчкам кода.

Как сделать следующее: В шапке таблицы под заголовком делаем поля для ввода (№ расписки-текстовое; дата приема-календарик; статус-селект). В соответствии с выбором в этих полях формируются данные для вывода в таблицу. Т.е. этакая сортировка данных по столбцам.

Подобное на сайте exist.ru для примера:
2. alsio - 18 Февраля, 2013 - 14:37:07 - перейти к сообщению
Молчание знатоков непонятно.

Подскажите хоть, как вообще выборка делается? По умолчанию - понятно - 1,2 строчки кода. А как менять эту строку:
PHP:
скопировать код в буфер обмена
  1. $query = "SELECT * FROM $table ORDER BY id DESC";

допустим на
PHP:
скопировать код в буфер обмена
  1. $query = "SELECT * FROM $table ORDER BY status DESC";


Типа на странице вывода сделать в начале форму с запросом вида сортировки.

Как?
3. DelphinPRO - 18 Февраля, 2013 - 16:12:57 - перейти к сообщению
CODE (html):
скопировать код в буфер обмена
  1. <tr class="tablebar">
  2.     <td width="60"><a href="?orderby=id">№ расписки</a></td>
  3.     <td width="60"><a href="?orderby=date">Дата приема</a></td>
  4.     <td width="70"><a href="?orderby=status">Статус</a></td>
  5. </tr>


в php проверяете переменную $_GET['orderby']:

PHP:
скопировать код в буфер обмена
  1. $orderby = isset($_GET['orderby']) ? $_GET['orderby'] : 'id';
  2. $query = "SELECT * FROM $table ORDER BY $orderby DESC";


SQL-инъекции сами прикройте

 

Powered by ExBB FM 1.0 RC1