0

肉のパッケージ検索フォームを作成しています。ユーザーは、複数のフォームとドロップダウン ボックスを使用してさまざまなパッケージを検索できます。私は多くの問題を抱えていましたが、現在はほとんどがソートされています。ドロップダウンボックスの「任意」検索と、すべての結果を表示する空のテキストボックスの問題だけを作成する必要があります。

現在、ユーザーが検索を送信するとき、他のテキスト ボックスに入力している可能性がありますが、フォームの 1 つを空のままにすると、すべての結果が自動的に表示されます。検索が送信され、ボックスが空の場合、コードはそのフォームを無視し、その中に情報があるものだけをチェックするようにしたいのです。

これが私のテストコードです(現在の最終フォームコードではありません):

<body>
<?php
$con = mysql_connect("localhost", "root", "");
mysql_select_db("delyn_db", $con);

if (!$con)
{
    die("Could not connect: " . mysql_error());
}

$descrip = mysql_real_escape_string($_POST['descrip']);

$sql = "SELECT * FROM delyn WHERE description LIKE '%" . $descrip . "%'";

$r_query = mysql_query($sql);

if ($descrip === "")
{
    echo 'Null value';
}

while ($row = mysql_fetch_array($r_query))
{
    echo '<br /> Description: ' . $row['description'];
}

?>
</body>

誰でもこれを止める方法について何か考えがありますか?

編集: 申し訳ありませんが、ここに私の HTML と検索ボックスがあります。上記のphpは、値が送信される場所です。

<body>
    <form action="form5null.php" method="post">
        <label for="description">Description:</label> <input type="text" name="descrip">
        <br>
        <label for="trayheight">Trayheight:</label> <input type="text" name="height">
        <br>
        <label for="traywidth">Traywidth:</label> <input type="text" name="width">
        <br>
        <label for="traydepth">Traydepth:</label> <input type="text" name="depth">
        <br>
        <label for="trayrange">Trayrange:</label> <select name="trayrange">
            <option value="BBQ">
                BBQ
            </option>

            <option value="Dessert">
                Dessert
            </option>

            <option value="Display">
                Display
            </option>

            <option value="Meat">
                Meat
            </option>

            <option value="Microwave">
                Microwave
            </option>

            <option value="Party">
                Party
            </option>

            <option value="Salad/Wet Pasta">
                Salad/Wet Pasta
            </option>

            <option value="Snacks">
                Snacks
            </option>

            <option value="Standard">
                Standard
            </option>
        </select> <label for="traytype">Traytype:</label> <select name="traytype">
            <option value="Open">
                Open
            </option>

            <option value="Cavitised">
                Cavitised
            </option>

            <option value="Lid">
                Lid
            </option>

            <option value="Tray">
                Tray
            </option>

            <option value="Coallition">
                Coallition
            </option>

            <option value="Bowl">
                Bowl
            </option>

            <option value="Hinge pack">
                Open
            </option>

            <option value="Pot">
                Pot
            </option>

            <option value="Base &amp; Lid">
                Base and Lid
            </option>

            <option value="Rectangular">
                Rectangular
            </option>

            <option value="Specalist">
                Specialist
            </option>
        </select>
        <br>
        <label for="trayshape">Trayshape:</label> <select name="trayshape">
            <option value="Rectangular">
                Rectangular
            </option>

            <option value="Oval">
                Oval
            </option>

            <option value="Square">
                Square
            </option>

            <option value="Insert">
                Insert
            </option>

            <option value="Round">
                Round
            </option>

            <option value="Open">
                Open
            </option>
        </select>
        <br />
        <input type="submit" value="Submit">
    </form>
</body>
4

2 に答える 2

0

すべてのドロップダウンの最初のオプションとして、以下を追加します。

<option value="*">All</option> 

次に、ここで重複する質問で提供したSQLを使用します。

ドロップダウンをクリックした場合、SQLに特定の検索値を無視させますか?

DirkNachbarも良い答えを出しました。

于 2012-10-09T13:53:55.380 に答える
0

値が空白/null (PHP に適した方) かどうかを確認し、何も入力されていない場合はクエリを実行しないようにして、SQL クエリを制限しようとしましたか?

例 (疑似コード)

if(box1.HasText || box2.HasText || box3.HasText)
{
    RunTheSqlForForm1();
}
于 2012-10-09T10:25:32.883 に答える