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

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

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

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

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

textual
Листинг программы
<?php
    error_reporting(E_ALL);
     
 mysql_connect("...........", "..........", ".........");
$sql = mysql_query("SET CHARACTER SET cp1251_koi8");
mysql_select_db(".............");    
    // если есть $_POST, формируем WHERE для запроса
      $where = '';
    if (!empty($_POST['bedroom'])){
        if ($_POST['bedroom'] != 'Все спальни'){
            $where .= (empty($where)?'':' and ')."`bedroom` = '".$_POST['bedroom']."'ORDER BY bedroom ASC ";
    
        }
    }
    if (!empty($_POST['city'])){
        if ($_POST['city'] != 'Все города'){
         $where .= (empty($where)?'':' and ')."`city` = '".$_POST['city']."'ORDER BY city ASC ";
 
        }
     
    }
    if (!empty($_POST['sleeper'])){
        if ($_POST['sleeper'] != 'Все гости'){
            $where .= (empty($where)?'':' and ')."`sleeper` = '".$_POST['sleeper']."'ORDER BY sleeper ASC ";
 
        }
    }
  
$sql = "SELECT * FROM `users`". (empty($where)?'':'WHERE'.$where);
    
    $result = mysql_query($sql);
    while($res =  mysql_fetch_object($result)){
        $city[] = $res->city;
        $sleeper[] = $res->sleeper;
        $bedroom[] = $res->bedroom;
        $number[] = $res->number;
        $name[] = $res->name;
        $price[] = $res->price;
    }
    ?>
    
<!--далее вывод формы с селектами-->
    <h1>Гостинница</h1>
    <h1 style="background-color:0000ff; padding:40px">
        <form method="post">
            <div style="float:left;margin-right:20px">
                <select style= "width:200px;height:45px" name="city">
                    <option>Все города</option>
                    <?PHP
                        $city_sel = array_unique($city);
                        foreach($city_sel as $c){
                        if(isset($_POST['city']) && $_POST['city'] == $c){
                            ?>
                            <option value="<?PHP echo $c;?>" selected="selected"><?PHP echo $c;?></option>
                        <?PHP }else{?>
                            <option value="<?PHP echo $c;?>"><?PHP echo $c;?></option>
                        <?PHP }} ?>
                </select>
            </div>
            <div style="float:left;margin-right:20px">
                <select style= "width:200px;height:45px" name="sleeper">
                    <option>Все гости</option>
                 <?PHP
                        $sleeper_sel = array_unique($sleeper);
                        foreach($sleeper_sel as $s){
                        if(isset($_POST['sleeper']) && $_POST['sleeper'] == $s){
                            ?>
                            <option value="<?PHP echo $s;?>" selected="selected"><?PHP echo $s;?></option>
                        <?PHP }else{ ?>
                            <option value="<?PHP echo $s;?>"><?PHP echo $s;?></option>
                        <?PHP }}?>
                </select>
            </div>
            <div style="float:left;margin-right:20px">
                <select style= "width:200px;height:45px" name="bedroom">
                    <option>Все спальни</option>
     
                    <?PHP
                        $bedroom_sel = array_unique($bedroom);
                        foreach( $bedroom_sel as $b){
                        if(isset($_POST['bedroom']) && $_POST['bedroom'] == $b){
                            ?>
                            <option value="<?PHP echo $b;?>" selected="selected"><?PHP echo $b;?></option>
                        <?PHP }else{?>
                            <option value="<?PHP echo $b;?>"><?PHP echo $b;?></option>
                        <?PHP }} ?>
                </select>
<input type="submit" name="sub" style= "background-color:red;width:200px;height:45px" value = "Подобрать">  
</div>
</select>
    </h1>
    </form>
    </div>  
    
<?
// Подключение к MySQL
$con = mysql_connect("..........","...........","............");
if (!$con)
    die('Could not connect: ' . mysql_error());
mysql_select_db(".............", $con);
$sql = mysql_query("SET CHARACTER SET cp1251_koi8");
 
$bed = "";
if(isset($_GET['bedroom']))
$bedrooms = "&bedroom=".$_GET['bedroom'];
// Значения, полученные из формы
$sort = isset($_GET['sort']) ? $_GET['sort'] : 'desc';
$key = isset($_GET['key']) ? $_GET['key'] : 'number';
 
// Разрешённые значения
$key_array = array('number', 'city', 'name', 'sleeper', 'bedroom', 'price');
$sort_array = array('asc','desc');
 
// Если указаны неправильные данные - выход
if(!in_array($key, $key_array) or !in_array($sort, $sort_array))
 
    exit('Неверный формат запроса!');
if(isset($_GET['price']) and (empty($_GET['v1']) or empty($_GET['v2'])))
    exit('Пустой запрос!');
    
// Часть SQL-запроса - фильтр
$orderby = " ORDER BY $key $sort";
 
// Если кол-во лет заполнено - вводим его в mysql-запрос и добавляем в фильтры таблицы
if(!empty($_GET['v1']) and !empty($_GET['v2']))
{
    $where = 'WHERE `bedroom` BETWEEN ' . $_GET['v1'] . ' AND ' . $_GET['v2'];
    $values = '&v1=' . $_GET['v1'] .'&v2=' . $_GET['v2'];
}
  elseif(!empty($_GET['bedroom']))
 
{
    $where = 'WHERE `bedroom` = "' . $_GET['bedroom'] . '"';
    $values = null;
}
 
 else
{
    $where = null;
    $values = null;
}
// Запрос к БД
$query = "";
 
$query ="SELECT * from `users` $where $orderby";
 
$result = mysql_query($query) or die(mysql_error());
 
// Меняем сортировку для правильного вывода в таблице
$sort = $sort == 'asc' ? 'desc' : 'asc';
?>
 
 
<?php
header("Content-Values: text/html; SET CHARACTER SET cp1251_koi8");
error_reporting(E_ALL);
 
$SQLHost    =   ".........";
$SQLDB  =      "...........";
$SQLUser    =   "...............";
$SQLPassw   =   "...............";
     
mysql_connect($SQLHost, $SQLUser, $SQLPassw);
$sql = mysql_query("SET CHARACTER SET cp1251_koi8");
mysql_select_db($SQLDB);
 
if ( empty($_GET['orderby']) ) {
    $orderby = 'number';
} else {
    $orderby = $_GET['orderby'];
}
 
if ( empty($_GET['sortvalues']) ) {
    $sortValues = 'ASC';
    $sqlQuery = "SELECT * FROM users ORDER BY " . $orderby . " " . $sortValues . "";
 
} else if ( $_GET['sortvalues'] == 'ASC' ) {
    $sortValues = 'ASC';
    $sqlQuery = "SELECT * FROM users ORDER BY " . $orderby . " " . $sortValues . "";
} else if ( $_GET['sortvalues'] == 'DESC' ) {
    $sortValues = 'DESC';
    $sqlQuery = "SELECT * FROM users ORDER BY " . $orderby . " " . $sortValues . "";
}
 
$result = mysql_query($sqlQuery);
$dataArray = array();
$i=0;
while ($res =  mysql_fetch_array($result)) {
    $dataArray[$i]['number'] = $res['number'];
    $dataArray[$i]['city'] = $res['city'];
    $dataArray[$i]['name'] = $res['name'];
    $dataArray[$i]['sleeper'] = $res['sleeper'];
    $dataArray[$i]['bedroom'] = $res['bedroom'];
    $dataArray[$i]['price'] = $res['price'];
    $i++;
}
 
 
$sortValues = ($sortValues == 'ASC') ? $sortValues = 'DESC' : $sortValues = 'ASC';
 
?>   
 
</div>
    <br />
    <a href="?">Сортировка по умолчанию ( по номеру|по возрастанию )</a>
    <br />
    <a href="?orderby=number&sortvalues=<?php echo $sortValues?>">По номеру</a>
    <br />
    <a href="?orderby=price&sortvalues=<?php echo $sortValues?>">По цене</a>
    <br />
<div style="clear:both;"></div>
<div style="margin-top:40px;">
 <!-- далее проверяем, если есть в выборке данные выводим таблицу иначе сообщение "По вашему запросу, ничего не найдено."-->
        <?PHP if($city){?>
            <table align= "center" border = 1>
                        <tr>
                        <th width="50"><a href="?orderby=number&sorttype=<?php echo $sortType?>">Номер</a></th>
                        <th width='50'><a href="?orderby=city&sorttype=<?php echo $sortType?>">Місто</a></th>
                        <th width='50'><a href="?orderby=name&sorttype=<?php echo $sortType?>">Назва</a></th>
                        <th width='50'><a href="?orderby=sleeper&sorttype=<?php echo $sortType?>">Гостей</a></th>
                        <th width='50'><a href="?orderby=bedroom&sorttype=<?php echo $sortType?>">Спальні</a></th>
                        <th width='50'><a href="?orderby=price&sorttype=<?php echo $sortType?>">Ціна</a></th>
                    </tr>
                        <?php foreach ( $dataArray as $num=>$numArray ) { ?>
                    <tr>
                        <td><?php echo $dataArray[$num]['number']?></td>
                        <td><?php echo $dataArray[$num]['city']?></td>
                        <td><?php echo $dataArray[$num]['name']?></td>
                        <td><?php echo $dataArray[$num]['sleeper']?></td>
                        <td><?php echo $dataArray[$num]['bedroom']?></td>
                        <td><?php echo $dataArray[$num]['price']?></td>
                    </tr>
                    <?php } ?>
                       
            </table>
        <?PHP } else {?>
            <p>По вашему запросу, ничего не найдено.</p>
        <?PHP }?>
    </div>

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


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

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

10   голосов , оценка 4.1 из 5
Похожие ответы