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

ラジオボタンPHPSQLで検索をフィルタリングする

    フォームにラジオボタンを追加するだけです。

    <form name="form1"  dir="rtl" method="post" action="searchresults.php">
    <label for="search"> search </label>
    <input name="search" type="text" size="40" maxlength="50" placeholder="you can search">
    <input type="radio" name="search_type" value="job_name" checked="checked">Job<br>
    <input type="radio" name="search_type" value="family">Family<br>
    <input type="radio" name="search_type" value="name">Name
    <input type="submit" name="submit" value="search"/> <br/>
    </form>
    

    そして、SQLクエリでpostフィールドと値を使用します。 mysqlは減価償却されているため、mysqliを使用する必要があり、インジェクション攻撃を防ぐために入力をエスケープすることが不可欠です。

    $field = mysql_real_escape_string($_POST['search_type']);
    $value = mysql_real_escape_string($_POST['search']);
    $sql = "SELECT tablesite.name,
              tablesite.family,
              job_list.job_name,
       FROM  $db_table
       INNER JOIN relation
       on tablesite.id_user=relation.user_id
       INNER JOIN job_list
       on relation.job_id=job_list.job_id 
       WHERE 
       $field LIKE '%".$value."%'";
     $dbresult=mysql_query($sql,$con);
    

    クエリを実行する前に検索値を検証し、各行をループする前に結果を確認することもできます。




    1. ネストされたCASTが機能しない

    2. ユーザー定義変数を使用した列エイリアスの指定

    3. PostgreSQLが時々悪いクエリプランを選択しないようにする

    4. 異なるデータベース間で列を選択します