0

私は php/mysql が初めてで、このサイトも初めてなので、よろしくお願いします。4 つの入力フィールドを持つ検索フォームから結果を返す php スクリプトを作成する必要があります。フィールドの任意の組み合わせを検索できるようにするか、データベースからすべてのアイテムを返すようにする必要があります。現在のところ、フォーム ページで [送信] をクリックすると返されるのは空白のページだけです。

これは私がこれまでに持っているものです。最初はすべての要件を取得しようとする 1 つのクエリとして試し、その後、このサイトで実行するために読んだ一連の「if」ステートメントとして試しましたが、空白のページしか表示されません。

<?php
if (isset(
  $_POST['product_description'],$_POST['product_finish'],
  $_POST ['product_minimum_price'], $_POST['product_maximum_price'])) {

    $product_description = ($_POST['product_description']);
    $product_finish = ($_POST['product_finish']);
    $product_minimum_price = ($_POST['product_minimum_price']);
    $product_maximum_price = ($_POST['product_maximum_price']);

    $query = "SELECT ProductDescription, ProductFinish, ProductStandardPrice FROM product_t";
    if (isset($_POST['product_description'])) {
        $query = "SELECT ProductDescription, ProductFinish, ProductStandardPrice
             FROM product_t
             WHERE ProductDescription LIKE '%.$product_description.%'";
    }

    if (isset($_POST['product_finish'])) {
        $query = "SELECT ProductDescription, ProductFinish, ProductStandardPrice
             FROM product_t
             WHERE ProductDescription LIKE '%.$product_finish.%'";
    }

    if (isset($_POST['product_minimum_price'])) {
        $query = "SELECT ProductDescription, ProductFinish, ProductStandardPrice
             FROM product_t
             WHERE ProductStandardPrice >= 'product_minimum_price'";
    }

    if (isset($_POST['product_maximum_price'])) {
        $query = "SELECT ProductDescription, ProductFinish, ProductStandardPrice
             FROM product_t
             WHERE ProductStandardPrice <= 'product_maximum_price'";
    }

    $result = mysql_query($query);
    if($result === FALSE) die(mysql_error());

    echo '<table align="left" cellspacing="1" cellpadding ="5" border="1"><tr><td
    align="left">Product Description</td><td align="left">Product Finish</td><td align="left">
    Product Standard Price</td></tr>';

    while ($row=mysql_fetch_array($result, MYSQL_ASSOC)) {
        echo '<tr><td align="left">' .$row['ProductDescription'].
        '</td><td align="left">'.$row['ProductFinish'].
        '</td><td align="left">'.$row['ProductStandardPrice'].'</td></tr>';
    }

   echo '</table>';
   mysql_close();
}
?>
4

2 に答える 2

0

空白のページが表示される場合は、外側のifステートメントが true と評価されていないためです。句を含めて、else何か他のものをエコーし​​ます。

于 2012-04-23T00:23:49.593 に答える
0

フォーム名のつづりが間違っている可能性があります。ページにそれらの POST 変数のみをエコーさせて、それらにデータを取得していることを再確認する必要があります。

また、データベースへの接続が失われています。データベース接続として PDO を使用することをお勧めします。エラー レポートが大幅に改善されます。

mysql_connect("localhost", "mysql_user", "mysql_password") or
die("Could not connect: " . mysql_error());
mysql_select_db("mydb");

HTH

于 2012-04-23T00:30:54.363 に答える