sql >> データベース >  >> RDS >> Mysql

複数の条件を使用したPHPMySQL検索

    これらの変数を使用する代わりに、「。=」演算子を使用する必要があります。

    /*      $t1 = '';
            $t2 = '';
            $t3 = '';
            $t4 = '';
            $t5 = '';
    */
            $q = "SELECT * FROM `property` WHERE `status`='1' ";
    
    // You need to enclose all **OR** logical tests in parenthesis.
    // Moreover most of the usages of isset function are useless,
    // as your are initializing many variables
    
            if($keyword && !empty($keyword)){
                $q .= " AND (`p_title` LIKE '%".$keyword."%' OR `address` LIKE '%".$keyword."%' OR `area` LIKE '%".$keyword."%')";
            }
            if($prop_for && !empty($prop_for)){
    // If you are using double quotes you really don't need  handle to concatenation.
            $q .= " AND `p_for`='$prop_for'";
            }
            if($state && !empty($state)){
                $q .= " AND `state`='$state'";
            }
            if($ptype && !empty($ptype)){
                $q .= " AND `p_category`='$ptype'";
            }
            //min only
            if($min_price && !empty($min_price)){
                $q .= " AND `price` >= '".$min_price."'";
            }
            //max only
            if($max_price && !empty($max_price)){
                $q .= " AND `price` <= '$max_price'";
            }
    
    // When you are not using OFFSET keyword,
    //the first number after LIMIT keyword should be the number of records
                    $q .= " ORDER BY `posted_date` DESC LIMIT $per_page , $start;";
                    $sql = $mysqli->query($q);
    


    1. Railsモデルで複数のPostgreSQLスキーマを使用する

    2. OracleSQLの条件付きランキング

    3. ドロップダウン値に応じてテキストボックスに自動入力

    4. SqliteまたはMySql?決める方法は?