0

このコードで問題が発生しています。ユーザーが選択ドロップ メニューから [すべて表示] を選択した場合、テーブル行からすべてのデータを取得したいだけです。

セレクトメニューはこちら!

したがって、このメニューはこのテーブルからデータを取得しますが、彼がすべてを選択した場合、オプション値の間にエコーするのに適したコードは何ですか:)

<b>speciality:</b>  <select id="main_mav" name="speciality">
<option value="none">Select speciality:</option>
<option value=""> All specialities </option>
<?php

        $result = mysql_query('SELECT speciality FROM visits') or die(mysql_error());
        while ($row = mysql_fetch_assoc($result)) {
                echo '<option value="'.$row['speciality'].'">'.$row['speciality'].'</option>';
        }
?>
</select><br />

それが送信フォームです!

if ($region=="All regions" ){


              $region=$_POST['""'];  
            }
            else ( $region=$_POST['region']);

            $date1 =$_POST['from_date'];
            $date2 = $_POST['to_date'];
            $product=$_POST['product'];
            $speciality=$_POST['speciality'];
            $type=$_POST['visit_type'];

sql="SELECT id, customer_name, seller_1_name, seller_2_name FROM visits Where (speciality ='$speciality') AND (visit_type ='$type') AND (product ='$product') AND (region ='$region') AND (visit_date BETWEEN '$date1' AND '$date2')";
$result=mysql_query($sql); ## This line is new.
$num=mysql_numrows($result);
$row = mysql_fetch_array($result);

ユーザーが「ドロップメニューにすべて表示」を選択した場合に入力する正しいコードは何ですか?!

4

2 に答える 2

2

mysql_real_escape_string少なくとも!を使用して、入力をサニタイズする必要があります。

実際の質問に進みます。$speciality空かどうかを確認し、(speciality ='$speciality')条件なしで別のクエリを生成します。

于 2012-05-11T23:07:55.870 に答える
0

あなたの HTML は「専門分野」を参照し、PHP は「地域」を参照していたので、私は「地域」に固執するつもりですが、ここにアイデアがあります。

    if ($region=="All regions" ){
        $sql = 'SELECT id, customer_name, seller_1_name, seller_2_name, FROM visits';
    } else {
        $region     = mysql_real_escape_string($_POST['region']);
        $date1      = mysql_real_escape_string($_POST['from_date']);
        $date2      = mysql_real_escape_string($_POST['to_date']);
        $product    = mysql_real_escape_string($_POST['product']);
        $speciality = mysql_real_escape_string($_POST['speciality']);
        $type       = mysql_real_escape_string($_POST['visit_type']);
        $sql        = "SELECT id, customer_name, seller_1_name, seller_2_name FROM visits Where (speciality ='$speciality') AND (visit_type ='$type') AND (product ='$product') AND (region ='$region') AND (visit_date BETWEEN '$date1' AND '$date2')";
    }

$result = mysql_query($sql); ## This line is new.
$num    = mysql_numrows($result);
$row    = mysql_fetch_array($result);
于 2012-05-11T23:10:59.740 に答える