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

テーブルを非表示にするために使用<div visibility="hidden">し、Javascript を使用して検索クエリまたはその他の条件に基づいて表示を変更します。

于 2012-08-30T14:08:50.937 に答える
0

検索クエリの結果に関係なく、テーブルをエコーアウトしているようです。おそらく、結果セットで返される行数を確認し、カウントが > 0 の場合にのみテーブルをエコーアウトする必要があります。

于 2012-08-30T14:08:42.233 に答える