php在多个输入搜索表单上返回空白页面

时间:2012-04-23 00:14:39

标签: php mysql

我是php / mysql的新手,也是该网站的新手,所以非常感谢您的帮助。我需要创建一个php脚本,它将返回带有四个输入字段的搜索表单的结果。它必须是这样才能搜索任何字段组合,或者根本不搜索任何字段组合,这将返回数据库中的所有项目。截至目前,当我在表单页面上单击“提交”时返回的所有内容都是空白页。

这是我到目前为止所拥有的。我尝试将其作为一个查询,试图捕获所有要求,然后作为一系列“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();
}
?>

2 个答案:

答案 0 :(得分:0)

如果你得到一个空白页面,那是因为你的外if语句没有评估为真。包含else子句并回显其他内容。

答案 1 :(得分:0)

你有一个拼写错误的表单名称,你应该让页面只回显那些POST变量来仔细检查你是否正在向他们获取数据。

另外,你错过了与数据库的连接,我建议使用PDO作为你的数据库连接,你会得到更好的错误报告。

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

HTH