Выполнить запрос с несколькими условиями - MySQL

Узнай цену своей работы

Формулировка задачи:

Здравствуйте. Подскажите пожалуйста почему не хочет работать вот такой код:
Листинг программы
  1. $strSQL = "SELECT * FROM baza WHERE srok > '3' AND WHERE summ > '5' ORDER BY sgp";
Читал в примерах должен код работать, причем без второй части запроса отлично работает

Решение задачи: «Выполнить запрос с несколькими условиями»

textual
Листинг программы
  1. <?php
  2.     error_reporting(E_ALL);
  3.      
  4.  mysql_connect("...........", "..........", ".........");
  5. $sql = mysql_query("SET CHARACTER SET cp1251_koi8");
  6. mysql_select_db(".............");    
  7.     // если есть $_POST, формируем WHERE для запроса
  8.       $where = '';
  9.     if (!empty($_POST['bedroom'])){
  10.         if ($_POST['bedroom'] != 'Все спальни'){
  11.             $where .= (empty($where)?'':' and ')."`bedroom` = '".$_POST['bedroom']."'ORDER BY bedroom ASC ";
  12.    
  13.         }
  14.     }
  15.     if (!empty($_POST['city'])){
  16.         if ($_POST['city'] != 'Все города'){
  17.          $where .= (empty($where)?'':' and ')."`city` = '".$_POST['city']."'ORDER BY city ASC ";
  18.  
  19.         }
  20.      
  21.     }
  22.     if (!empty($_POST['sleeper'])){
  23.         if ($_POST['sleeper'] != 'Все гости'){
  24.             $where .= (empty($where)?'':' and ')."`sleeper` = '".$_POST['sleeper']."'ORDER BY sleeper ASC ";
  25.  
  26.         }
  27.     }
  28.  
  29. $sql = "SELECT * FROM `users`". (empty($where)?'':'WHERE'.$where);
  30.    
  31.     $result = mysql_query($sql);
  32.     while($res =  mysql_fetch_object($result)){
  33.         $city[] = $res->city;
  34.         $sleeper[] = $res->sleeper;
  35.         $bedroom[] = $res->bedroom;
  36.         $number[] = $res->number;
  37.         $name[] = $res->name;
  38.         $price[] = $res->price;
  39.     }
  40.     ?>
  41.    
  42. <!--далее вывод формы с селектами-->
  43.     <h1>Гостинница</h1>
  44.     <h1 style="background-color:0000ff; padding:40px">
  45.         <form method="post">
  46.             <div style="float:left;margin-right:20px">
  47.                 <select style= "width:200px;height:45px" name="city">
  48.                     <option>Все города</option>
  49.                     <?PHP
  50.                         $city_sel = array_unique($city);
  51.                         foreach($city_sel as $c){
  52.                         if(isset($_POST['city']) && $_POST['city'] == $c){
  53.                             ?>
  54.                             <option value="<?PHP echo $c;?>" selected="selected"><?PHP echo $c;?></option>
  55.                         <?PHP }else{?>
  56.                             <option value="<?PHP echo $c;?>"><?PHP echo $c;?></option>
  57.                         <?PHP }} ?>
  58.                 </select>
  59.             </div>
  60.             <div style="float:left;margin-right:20px">
  61.                 <select style= "width:200px;height:45px" name="sleeper">
  62.                     <option>Все гости</option>
  63.                  <?PHP
  64.                         $sleeper_sel = array_unique($sleeper);
  65.                         foreach($sleeper_sel as $s){
  66.                         if(isset($_POST['sleeper']) && $_POST['sleeper'] == $s){
  67.                             ?>
  68.                             <option value="<?PHP echo $s;?>" selected="selected"><?PHP echo $s;?></option>
  69.                         <?PHP }else{ ?>
  70.                             <option value="<?PHP echo $s;?>"><?PHP echo $s;?></option>
  71.                         <?PHP }}?>
  72.                 </select>
  73.             </div>
  74.             <div style="float:left;margin-right:20px">
  75.                 <select style= "width:200px;height:45px" name="bedroom">
  76.                     <option>Все спальни</option>
  77.      
  78.                     <?PHP
  79.                         $bedroom_sel = array_unique($bedroom);
  80.                         foreach( $bedroom_sel as $b){
  81.                         if(isset($_POST['bedroom']) && $_POST['bedroom'] == $b){
  82.                             ?>
  83.                             <option value="<?PHP echo $b;?>" selected="selected"><?PHP echo $b;?></option>
  84.                         <?PHP }else{?>
  85.                             <option value="<?PHP echo $b;?>"><?PHP echo $b;?></option>
  86.                         <?PHP }} ?>
  87.                 </select>
  88. <input type="submit" name="sub" style= "background-color:red;width:200px;height:45px" value = "Подобрать"> 
  89. </div>
  90. </select>
  91.     </h1>
  92.     </form>
  93.     </div> 
  94.    
  95. <?
  96. // Подключение к MySQL
  97. $con = mysql_connect("..........","...........","............");
  98. if (!$con)
  99.     die('Could not connect: ' . mysql_error());
  100. mysql_select_db(".............", $con);
  101. $sql = mysql_query("SET CHARACTER SET cp1251_koi8");
  102.  
  103. $bed = "";
  104. if(isset($_GET['bedroom']))
  105. $bedrooms = "&bedroom=".$_GET['bedroom'];
  106. // Значения, полученные из формы
  107. $sort = isset($_GET['sort']) ? $_GET['sort'] : 'desc';
  108. $key = isset($_GET['key']) ? $_GET['key'] : 'number';
  109.  
  110. // Разрешённые значения
  111. $key_array = array('number', 'city', 'name', 'sleeper', 'bedroom', 'price');
  112. $sort_array = array('asc','desc');
  113.  
  114. // Если указаны неправильные данные - выход
  115. if(!in_array($key, $key_array) or !in_array($sort, $sort_array))
  116.  
  117.     exit('Неверный формат запроса!');
  118. if(isset($_GET['price']) and (empty($_GET['v1']) or empty($_GET['v2'])))
  119.     exit('Пустой запрос!');
  120.    
  121. // Часть SQL-запроса - фильтр
  122. $orderby = " ORDER BY $key $sort";
  123.  
  124. // Если кол-во лет заполнено - вводим его в mysql-запрос и добавляем в фильтры таблицы
  125. if(!empty($_GET['v1']) and !empty($_GET['v2']))
  126. {
  127.     $where = 'WHERE `bedroom` BETWEEN ' . $_GET['v1'] . ' AND ' . $_GET['v2'];
  128.     $values = '&v1=' . $_GET['v1'] .'&v2=' . $_GET['v2'];
  129. }
  130.   elseif(!empty($_GET['bedroom']))
  131.  
  132. {
  133.     $where = 'WHERE `bedroom` = "' . $_GET['bedroom'] . '"';
  134.     $values = null;
  135. }
  136.  
  137.  else
  138. {
  139.     $where = null;
  140.     $values = null;
  141. }
  142. // Запрос к БД
  143. $query = "";
  144.  
  145. $query ="SELECT * from `users` $where $orderby";
  146.  
  147. $result = mysql_query($query) or die(mysql_error());
  148.  
  149. // Меняем сортировку для правильного вывода в таблице
  150. $sort = $sort == 'asc' ? 'desc' : 'asc';
  151. ?>
  152.  
  153.  
  154. <?php
  155. header("Content-Values: text/html; SET CHARACTER SET cp1251_koi8");
  156. error_reporting(E_ALL);
  157.  
  158. $SQLHost    =   ".........";
  159. $SQLDB  =      "...........";
  160. $SQLUser    =   "...............";
  161. $SQLPassw   =   "...............";
  162.      
  163. mysql_connect($SQLHost, $SQLUser, $SQLPassw);
  164. $sql = mysql_query("SET CHARACTER SET cp1251_koi8");
  165. mysql_select_db($SQLDB);
  166.  
  167. if ( empty($_GET['orderby']) ) {
  168.     $orderby = 'number';
  169. } else {
  170.     $orderby = $_GET['orderby'];
  171. }
  172.  
  173. if ( empty($_GET['sortvalues']) ) {
  174.     $sortValues = 'ASC';
  175.     $sqlQuery = "SELECT * FROM users ORDER BY " . $orderby . " " . $sortValues . "";
  176.  
  177. } else if ( $_GET['sortvalues'] == 'ASC' ) {
  178.     $sortValues = 'ASC';
  179.     $sqlQuery = "SELECT * FROM users ORDER BY " . $orderby . " " . $sortValues . "";
  180. } else if ( $_GET['sortvalues'] == 'DESC' ) {
  181.     $sortValues = 'DESC';
  182.     $sqlQuery = "SELECT * FROM users ORDER BY " . $orderby . " " . $sortValues . "";
  183. }
  184.  
  185. $result = mysql_query($sqlQuery);
  186. $dataArray = array();
  187. $i=0;
  188. while ($res =  mysql_fetch_array($result)) {
  189.     $dataArray[$i]['number'] = $res['number'];
  190.     $dataArray[$i]['city'] = $res['city'];
  191.     $dataArray[$i]['name'] = $res['name'];
  192.     $dataArray[$i]['sleeper'] = $res['sleeper'];
  193.     $dataArray[$i]['bedroom'] = $res['bedroom'];
  194.     $dataArray[$i]['price'] = $res['price'];
  195.     $i++;
  196. }
  197.  
  198.  
  199. $sortValues = ($sortValues == 'ASC') ? $sortValues = 'DESC' : $sortValues = 'ASC';
  200.  
  201. ?>   
  202.  
  203. </div>
  204.     <br />
  205.     <a href="?">Сортировка по умолчанию ( по номеру|по возрастанию )</a>
  206.     <br />
  207.     <a href="?orderby=number&sortvalues=<?php echo $sortValues?>">По номеру</a>
  208.     <br />
  209.     <a href="?orderby=price&sortvalues=<?php echo $sortValues?>">По цене</a>
  210.     <br />
  211. <div style="clear:both;"></div>
  212. <div style="margin-top:40px;">
  213.  <!-- далее проверяем, если есть в выборке данные выводим таблицу иначе сообщение "По вашему запросу, ничего не найдено."-->
  214.         <?PHP if($city){?>
  215.             <table align= "center" border = 1>
  216.                         <tr>
  217.                         <th width="50"><a href="?orderby=number&sorttype=<?php echo $sortType?>">Номер</a></th>
  218.                         <th width='50'><a href="?orderby=city&sorttype=<?php echo $sortType?>">Місто</a></th>
  219.                         <th width='50'><a href="?orderby=name&sorttype=<?php echo $sortType?>">Назва</a></th>
  220.                         <th width='50'><a href="?orderby=sleeper&sorttype=<?php echo $sortType?>">Гостей</a></th>
  221.                         <th width='50'><a href="?orderby=bedroom&sorttype=<?php echo $sortType?>">Спальні</a></th>
  222.                         <th width='50'><a href="?orderby=price&sorttype=<?php echo $sortType?>">Ціна</a></th>
  223.                     </tr>
  224.                         <?php foreach ( $dataArray as $num=>$numArray ) { ?>
  225.                     <tr>
  226.                         <td><?php echo $dataArray[$num]['number']?></td>
  227.                         <td><?php echo $dataArray[$num]['city']?></td>
  228.                         <td><?php echo $dataArray[$num]['name']?></td>
  229.                         <td><?php echo $dataArray[$num]['sleeper']?></td>
  230.                         <td><?php echo $dataArray[$num]['bedroom']?></td>
  231.                         <td><?php echo $dataArray[$num]['price']?></td>
  232.                     </tr>
  233.                     <?php } ?>
  234.                        
  235.             </table>
  236.         <?PHP } else {?>
  237.             <p>По вашему запросу, ничего не найдено.</p>
  238.         <?PHP }?>
  239.     </div>

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

10   голосов , оценка 4.1 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы