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

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Сортировка данных

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
mityaj
Отправлено: 05 Июля, 2012 - 09:41:55
Post Id


Новичок


Покинул форум
Сообщений всего: 9
Дата рег-ции: Апр. 2012  


Помог: 0 раз(а)




Есть постраничный вывод данных из бд. Необходимо сделать сортировку по алфавиту и по датам прямо на странице. Как это лучше всего и проще сделать?

PHP:
скопировать код в буфер обмена
  1. $r = $_PAGING->get_page( 'SELECT * FROM material ORDER BY id_number DESC' );
  2. echo '<h2>Все материалы</h2>';
  3. echo '<table cellspacing=0px; class="material_show">';
  4. echo '<tr><td style="height:15px; background-color:#BED2F3"  colspan="6"></td></tr>';
  5. echo '<tr>
  6. <th style="width:25px">Код</th>
  7. <th style="width:60px">Дата</th>
  8. <th style="width:250px">Название</th>
  9. <th style="width:90px">Отдел </th>
  10. <th style="width:190px">Путь</th>
  11. <th style="width:100px">Исполнитель</th></tr>';
  12.  
  13. while($row = $r->fetch_assoc())
  14.  {
  15.         echo '<tr>';
  16.               echo '<td align="center">'.$row['id_number'].'</td>
  17.                    <td align="center">'.$row['date'].'</td>
  18.                    <td>'.$row['name'].'</td>
  19.                                     <td>'.$row['section'].'</td>
  20.                                     <td>'.$row['path'].'</td>
  21.                                         <td>'.$row['executor'].'</td>';
  22.         echo '</tr>';          
  23. }
  24. echo '<tr><td style="height:15px; background-color:#BED2F3"  colspan="6"></td></tr>';
  25. echo '</table>';
 
 Top
Zuldek
Отправлено: 05 Июля, 2012 - 10:58:13
Post Id


Постоянный участник


Покинул форум
Сообщений всего: 2122
Дата рег-ции: Июнь 2010  


Помог: 50 раз(а)




примерно так
CODE (htmlphp):
скопировать код в буфер обмена
  1. ...
  2. if($_GET['sort']=='n')
  3. {
  4.   $order = ", name";
  5. }
  6. elseif($_GET['sort']=='d')
  7. {
  8.   $order = ", date";
  9. }
  10. $r = $_PAGING->get_page( 'SELECT * FROM material ORDER BY id_number'.$order.' DESC' );
  11. ...
  12. <a href="/?sort=n">По имени</a>  <a href="/?sort=d">по дате</a>
 
 Top
arta
Отправлено: 12 Октября, 2015 - 10:47:45
Post Id


Новичок


Покинул форум
Сообщений всего: 11
Дата рег-ции: Сент. 2015  


Помог: 0 раз(а)




Уважаемые пользователи подскажите пожалуйста как мне сделать под выпадающим меню ещё выпадающий список для выбора сортировки по алфавиту и цене вот этого примера http://dizarius[dot]com/arta/gos3.php и вот скрипт этого примера,как мне решить эту проблему?чтобы можно было из выпадающего списка выбрать сортировку отсортировать по алфавиту данные или по цене и после изминения (подбора других данных)я так-же мог проводить эту сортировку,подскажите как это реализовать?
PHP:
скопировать код в буфер обмена
  1.  
  2.  
  3. <?PHP
  4.  
  5. mysql_connect("..........", "..........", "........");
  6. $sql = mysql_query("SET CHARACTER SET cp1251_koi8");
  7. mysql_select_db("База Данных");
  8. $sql = "SELECT `city`, `sleeper`, `bedroom` FROM `users` group by `city`";
  9. $result_select = mysql_query($sql);
  10. //создаем массивы для хранения городов, гостей, спален
  11. $city = array();
  12. $sleeper = array();
  13. $badgoom = array();
  14. // достаем из таблицы столбцы city, sleeper, bedroom и распределяем их по массивам
  15. while($res =  mysql_fetch_object($result_select)){
  16.     $city[] = $res->city;
  17.     $sleeper[] = $res->sleeper;
  18.     $bedroom[] = $res->bedroom;
  19. }
  20. // далее код отвечающий за сортировку в табице вывода
  21. // Значения, полученные из формы для сортировки
  22. $sort = isset($_GET['sort']) ? $_GET['sort'] : 'desc';
  23. $key = isset($_GET['key']) ? $_GET['key'] : 'number';
  24.  
  25. // Разрешённые значения
  26. $key_array = array('number', 'city', 'name', 'sleeper', 'bedroom', 'price');
  27. $sort_array = array('asc','desc');
  28.      
  29. // Часть SQL-запроса - фильтр
  30. $orderby = " ORDER BY $key $sort";
  31.  
  32. // Меняем сортировку для правильного вывода в таблице
  33. $sort = $sort == 'asc' ? 'desc' : 'asc';
  34.  
  35. // далее код отвечающий за выбор из базы. зачем $values, я не понимаю
  36. if(!empty($_POST['bedroom']) && !empty($_POST['city']) && !empty($_POST['sleeper']))
  37. {
  38.     $where = "WHERE `bedroom` = '".$_POST['bedroom']."' and `city`='".$_POST['city']."' and `sleeper`='".$_POST['sleeper']."'";
  39.     $values = null;
  40. }
  41. else
  42. {
  43.     $where = null;
  44.     $values = null;
  45. }
  46.  
  47. $query = "SELECT * FROM `users` $where $orderby";
  48. $result = mysql_query($query) or die(mysql_error());
  49.  
  50. ?>
  51.     <!--далее вывод формы с селектами-->
  52. <h1>Гостинница</h1>
  53.  
  54. <h1 style="background-color:0000ff; padding:40px">
  55.      <form method="post">
  56.          <div style="float:left;margin-right:20px">
  57.             <select style= "width:200px;height:45px" name="city">
  58.              <option>Все города</option>
  59.                 <?PHP foreach($city as $c){
  60.                 if(isset($_POST['city']) && $_POST['city'] == $c){
  61.                 ?>
  62.                 <option value="<?PHP echo $c;?>" selected="selected"><?PHP echo $c;?></option>
  63.                 <?PHP }else{?>
  64.                 <option value="<?PHP echo $c;?>"><?PHP echo $c;?></option>
  65.                 <?PHP }} ?>
  66.             </select>
  67.          </div>
  68.          <div style="float:left;margin-right:20px">
  69.              <select style= "width:200px;height:45px" name="sleeper">
  70.              <option>Все гости</option>
  71.                 <?PHP foreach($sleeper as $s){
  72.                 if(isset($_POST['sleeper']) && $_POST['sleeper'] == $s){
  73.                 ?>
  74.                 <option value="<?PHP echo $s;?>" selected="selected"><?PHP echo $s;?></option>
  75.                 <?PHP }else{ ?>
  76.                 <option value="<?PHP echo $s;?>"><?PHP echo $s;?></option>
  77.                 <?PHP }}?>
  78.             </select>
  79.          </div>
  80.          <div style="float:left;margin-right:20px">
  81.              <select style= "width:200px;height:45px" name="bedroom">
  82.              <option>Все спальни</option>
  83.  
  84.                 <?PHP foreach( $bedroom as $b){
  85.                 if(isset($_POST['bedroom']) && $_POST['bedroom'] == $b){
  86.                 ?>
  87.                 <option value="<?PHP echo $b;?>" selected="selected"><?PHP echo $b;?></option>
  88.                 <?PHP }else{?>
  89.                 <option value="<?PHP echo $b;?>"><?PHP echo $b;?></option>
  90.                 <?PHP }} ?>
  91.              </select>
  92.              <input type="submit" name="sub" style= "background-color:red;width:200px;height:45px" value = "Подобрать">          
  93.          </div>
  94.          </h1>
  95.      </form>
  96. </div>
  97. <div style="clear:both;"></div>
  98. <div style="margin-top:40px;">
  99.     <!-- далее проверяем, если есть в выборке данные выводим таблицу иначе сообщение "По вашему запросу, ничего не найдено."-->
  100.     <?PHP if(mysql_num_rows($result)> 0){?>
  101.     <table align= "center" border = 1>
  102.         <tr>
  103.         <th width='50'><a href="?key=number&sort=<?=$sort . $values?>">Номер</a></th>
  104.         <th width='50'><a href="?key=city&sort=<?=$sort . $values?>">Місто</a></th>
  105.         <th width='50'><a href="?key=name&sort=<?=$sort . $values?>">Назва</a></th>
  106.         <th width='50'><a href="?key=sleeper&sort=<?=$sort . $values?>">Гостей</a></th>
  107.         <th width='50'><a href="?key=bedroom&sort=<?=$sort . $values?>">Спальні</a></th>
  108.         <th width='50'><a href="?key=price&sort=<?=$sort . $values?>">Ціна</a></th>
  109.         </th></tr>
  110.         <? while($row = mysql_fetch_assoc($result)): ?>
  111.             <tr>
  112.                 <td><?=$row['number']?></td>
  113.                 <td><?=$row['city']?></td>
  114.                 <td><?=$row['name']?></td>
  115.                 <td><?=$row['sleeper']?></td>
  116.                 <td><?=$row['bedroom']?></td>
  117.                 <td><?=substr($row['price'],0,30)?></td>
  118.             </tr>
  119.         <? endwhile; ?>
  120.     </table>
  121.     <?PHP }else{?>
  122.     <p>По вашему запросу, ничего не найдено.</p>
  123.     <?PHP }?>
  124.  </div>
  125.  
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Напишите за меня, пожалуйста »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB