0

正是标题所说的。我希望隐藏包含所有搜索查询的表,但我尝试了很多东西,但没有一个有效。例如,if($myData!=null) {proceed with showing the table},但这不起作用。isset()也没有工作。有任何想法吗?

<style>
    ul
    {
        list-style-type: none;
    }

</style>


<html>
    <head>
        <meta  http-equiv="Content-Type" content="text/html;  charset=iso-8859-1">
        <title>Search Chemicals</title>
    </head>
    <p>
    <body>
        <h3>Chemical Information</h3>
        <p>You may search by Catalog number, CASRN, or the chemical name.</p>
        <form  method="post" action="search.php?go"  id="searchform">
            <input  type="text" name="name">
            <input  type="submit" name="submit" value="Search">
        </form>
        <?php
        error_reporting(0);

        if (isset($_POST['submit'])) {

            if (isset($_GET['go'])) {
                if (preg_match("/^[a-zA-Z0-9]+/", $_POST['name'])) {
                    $name   = $_POST['name'];
                    $conn   = mysql_connect("localhost", "Blimeo", "password");
                    $db     = mysql_connect("localhost", "-", "-") or die('I cannot connect to the database  because: ' . mysql_error());
                    //-select  the database to use
                    $mydb   = mysql_select_db("chemicals");
                    //-query  the database table
                    $sql    = "SELECT * FROM products WHERE Catalog LIKE '%" . $name . "%' OR CASRN LIKE '%" . $name . "%' OR Chemical_Name LIKE '%" . $name . "%'";
                    $myData = mysql_query($sql, $conn);
                    echo "<table border=1>
            <tr>
            <th>Catalog</th>
            <th>Image</th>
            <th>CASRN</th>
            <th>Chemical Name</th>
            <th>Quantity 1</th>
            <th>Price 1</th>
            <th>Quantity 2</th>
            <th>Price 2</th>
            <th>Quantity 3</th>
            <th>Price 3</th>
            <th>Quantity 4</th>
            <th>Price 4</th>
            </tr>";
                    while ($record = mysql_fetch_array($myData)) {

                        echo "<tr>";
                        echo "<td>" . $record['Catalog'] . "</td>";
                        echo "<td><img src=\"./img/" . $record['Image'] . "\" alt=\"Chemical\"/></td>";
                        echo "<td>" . $record['CASRN'] . "</td>";
                        echo "<td>" . $record['Chemical_Name'] . "</td>";
                        echo "<td>" . $record['Quantity1'] . "</td>";
                        echo "<td>" . $record['Price1'] . "</td>";
                        echo "<td>" . $record['Quantity2'] . "</td>";
                        echo "<td>" . $record['Price2'] . "</td>";
                        echo "<td>" . $record['Quantity3'] . "</td>";
                        echo "<td>" . $record['Price3'] . "</td>";
                        echo "<td>" . $record['Quantity4'] . "</td>";
                        echo "<td>" . $record['Price4'] . "</td>";
                        echo "</tr>";
                        echo "</form>";
                        echo "<ul>\n";
                        echo "<li>" . "<a  href=\"search.php?id=$ID\">" . $Catalog . " " . $CASRN . " " . $Chemical_Name . "</a></li>\n";
                        echo "</ul>";
                    }
                }
            } else {
                echo "<p>Product not found! Please rephrase your search criteria.</p>";
            }
        }
        ?>
    </body>
</html>
</p>
4

3 回答 3

1

你应该添加mysql_num_rows();

$myData = mysql_query($sql, $conn);
$exists = mysql_num_rows($myData);
if($exists) {
    echo "<table border=1>";
    //..................
    echo "</table>";
} else {
    echo "<p>Product not found! Please rephrase your search criteria.</p>";
}
于 2012-08-30T14:08:21.613 回答
0

好吧,无论搜索查询的结果如何,您似乎都在回显您的表格。您可能应该检查结果集中返回的行数,并且仅在计数大于 0 时才回显表。

于 2012-08-30T14:08:42.233 回答
0

用于<div visibility="hidden">隐藏表格并使用 Javascript 根据搜索查询或其他条件更改可见性。

于 2012-08-30T14:08:50.937 回答