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]   

> Без описания
arta
Отправлено: 25 Сентября, 2015 - 10:55:45
Post Id


Новичок


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


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




Уважаемые пользователи этого форума,подскажите пожалуйста как мне сделать так чтобы не повторялись города,гости и спальни но в это время я мог сделать подбор по всем трём пунктам например,выбираем какойто город и всех гостей и все спальни получаем результат,это у меня работает а после этого нужно чтобы я открыл гостей выбрал одну цыфру и чтобы мне по выбранному городу вывело только то количество гостей которое я выбрал и всё тоже-самое с спальнями в этом выпадающем меню,подскажите пожалуйста что нужно здесь изменить или дописать чтобы всё работало так как мне нужно?
Вот для примера это меню http://dizarius[dot]com/arta/gos2.php
чуть ниже его скрипт,что здесть не так?

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



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


Покинул форум
Сообщений всего: 2508
Дата рег-ции: Май 2009  
Откуда: Днепропетровск, Украина


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




делайте отдельные выборки
 
 Top
SAD Модератор
Отправлено: 25 Сентября, 2015 - 15:34:02
Post Id



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


Покинул форум
Сообщений всего: 2508
Дата рег-ции: Май 2009  
Откуда: Днепропетровск, Украина


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




не нужно писать мне в почту. все вопросы задавайте тут
 
 Top
arta
Отправлено: 25 Сентября, 2015 - 16:33:21
Post Id


Новичок


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


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




я приношу глубокие извинения,так как на этом форуме с сегоднешнего дня первый раз отправил и не правильно,нужно ещё раз отправлять сообщение то что было отправлено на почту Вам?
 
 Top
SAD Модератор
Отправлено: 25 Сентября, 2015 - 16:50:35
Post Id



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


Покинул форум
Сообщений всего: 2508
Дата рег-ции: Май 2009  
Откуда: Днепропетровск, Украина


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




все пишите тут
 
 Top
arta
Отправлено: 25 Сентября, 2015 - 17:02:17
Post Id


Новичок


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


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




Я в программировании новичок,обучение ведётся ч-з интернет ч-з форумы и видеоуроки,очень нуждаюсь в Вашей помощи,сделайте мне пожалуйста пример как делать отдельные выборки и я по Вашему примеру поменяю свой код,так как,как делать отдельные выборки чтобы всё работало идеально так как нужно я сам принцып понимаю но как это сложить как написать понимаю плохо,извините меня за мою наглость но без Вашей помощи мне не разобраться....
 
 Top
andrewkard
Отправлено: 26 Сентября, 2015 - 18:53:44
Post Id


Участник


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


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




Давайте по порядку.
Первый заход - выводим все записи (если нужно с пагинацией).
При выборе города посылаете AJAX запрос на сервер, и меняете в списках гостей и спальни, которые относятся только к нему. И аналогично по всем спискам, в принципе. При выборе нескольких, тут должно быть ясно:
CODE (SQL):
скопировать код в буфер обмена
  1.  
  2. SELECT * FROM TABLE WHERE city = $city_id AND room = $room_num
  3.  

точно не знаю, как у Вас реализовано.
 
 Top
arta
Отправлено: 26 Сентября, 2015 - 19:46:36
Post Id


Новичок


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


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




вот здесь врядли что получится так как я учил только html php+mysql и досихпор у меня ведётся как Вы видете обучение с ajax-ом не когда не сталкивался и хотел продолжить то до чего дошел не затронув не чего другого не разобравшись в этом....
(Добавление)
ещё хотел Вас спросить Вы говорите не знаю как реализавано этого по примеру и по коду не видно?
 
 Top
andrewkard
Отправлено: 26 Сентября, 2015 - 20:08:27
Post Id


Участник


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


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




Может с AJAХ я и загнул, можно и без. Выбираете город, нажимаете кнопку и отсылаете запрос на сервер, который отдает Вам инф-ю только по этому городу, т.е. какие есть комнаты, гости. По этим данным стройте новые списки. Аналогично по другим спискам.
arta пишет:
ещё хотел Вас спросить Вы говорите не знаю как реализавано этого по примеру и по коду не видно?

да, сначала и не смотрел Ваш код, я Вам общие советы даю.
Теперь вижу, что Вы все это запихнули в таблицу users, что как-то не совсем.
arta пишет:
я учил только html php+mysql

может Вам еще рано, но почитайте по 1,2,3 нормальные формы БД, лучше отдельные сущности хранить в отдельных таблицах: города в городах, гостиницы в гостиницах, номера в номерах. Не понял, что такое гости...
 
 Top
arta
Отправлено: 27 Сентября, 2015 - 09:36:10
Post Id


Новичок


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


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




С этим разделом я чуть знаком,принцып его работы понятен но,примеры были показанны в World-Exel а мне нужно всё это описать в скрипте,как я знаком с этими формами это так,Первая форма в ней главное в рассмотре Строка,Столбцы и Ячейки использование их по назначенею,Во второй форме самым главным является ключ(key) и главное то что в этой форме ключ всегда не заменим,В третей форме смысл заключается в том чтобы превести к нормальному виду остальные столбцы которые не ключевые,вот так я для себя знаю этот раздел но,как всё это реализовать чуть не понятно....

(Отредактировано автором: 27 Сентября, 2015 - 09:41:36)

 
 Top
andrewkard
Отправлено: 27 Сентября, 2015 - 13:50:01
Post Id


Участник


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


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




arta
В общем чуть подправил Ваш код:
Спойлер (Отобразить)

Опции в селектах лучше формировать с числовыми ключами. Для сущностей город, наименование сделать отдельные таблицы, что бы данные не дублировались и при запросе объединять таблицы
 
 Top
arta
Отправлено: 27 Сентября, 2015 - 18:27:42
Post Id


Новичок


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


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




За Вашу работу в моём коде я Вам очень благодарен это для меня ещё один шаг в перёд теперь буду разбиратся с Вашим кодом пока не пойму как всё и ч-з что так работает не куда не перехожу,после понятия почему так работает код буду двигатся дальше и за это я Вам очень благодарен за Вашу помощь,приношу глубокие извинения что Вы за меня написали код а по готовому коду я провожу учение и продвигаюсь в перёд,за это извените пожалуйста и ещё раз огромное Вам спасибо...
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« SQL и Архитектура БД »


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



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

 
Powered by ExBB FM 1.0 RC1. InvisionExBB