0

私のテーブルには4つの列があります。「isbn、著者、タイトル、価格」. 4つのフィールドすべてを組み合わせてそのうちの1つを検索したい。例: 著者 "kayle" が同じ価格 ($50) でタイトルが異なる 4 冊の本を書いた場合、検索ページで author:kayle を選択して検索をヒットすると、すべての本がすべて異なるか同じ価格である可能性がありますとタイトル。次に、author:kayle と price:$50 を同時に選択して、Enter キーを押します。そのため、kayle によって書かれた 50 ドルの価格の本のみが表示され、4 行のテーブルに表示されます。

私はそれを結合しようとしましたが、2番目のステップの検索クエリに固執しました。これが私のコードです。誰かが私がやりたいことを理解している場合は、共有してください。これが私のコードです:

<form method="post" action="search_form.php">
<input type="hidden" name="submitted" value="true"/>
<table border="1">
<tr>
    <td style="padding:3px 10px; font-weight:bold;">ISBN</td>
    <td style="padding:3px;">
    <input type="hidden" name="category_isbn" id="category_isbn" value="isbn"/>
    : <select name='criteria_isbn' id="criteria_isbn" onchange="ajaxFunction()">
        <option selected="selected">- Select -</option>
    <?php
        $order = "SELECT isbn FROM books" or die (mysql_error());
        $result = mysql_query($order);  
        while($data = mysql_fetch_array($result))
        {
         echo ("<option> $data[isbn] </option>");
        }
    ?>
    </select>
    </td>
    <td style="padding:3px 10px; font-weight:bold;">Author</td>
    <td style="padding:3px;">
    <input type="hidden" name="category_author" id="category_author" value="author"/>
    : <select name='criteria_author' id="criteria_author" onchange="ajaxFunction()">
        <option selected="selected">- Select -</option>
    <?php
        $order = "SELECT author FROM books" or die (mysql_error());
        $result = mysql_query($order);  
        while($data = mysql_fetch_array($result))
        {
         echo ("<option> $data[author] </option>");
        }
    ?>
    </select>
    </td>
    <td style="padding:3px 10px; font-weight:bold;">Title</td>
    <td style="padding:3px;">
    <input type="hidden" name="category_title" id="category_title" value="title"/>
    : <select name='criteria_title' id="criteria_title" onchange="ajaxFunction()">
        <option selected="selected">- Select -</option>
    <?php
        $order = "SELECT title FROM books" or die (mysql_error());
        $result = mysql_query($order);  
        while($data = mysql_fetch_array($result))
        {
         echo ("<option> $data[title] </option>");
        }
    ?>
    </select>
    </td>
    <td><input type="submit" /></td>
</tr>
</table>
</form>
<?php
if(isset($_POST['submitted']))
{
    $category_isbn = $_POST['category_isbn'];
    $criteria_isbn = $_POST['criteria_isbn'];
    $query = "SELECT * FROM books WHERE $category_isbn LIKE '%".$criteria_isbn."%'";
    $result = mysql_query($query) or die(mysql_error());
    $num_rows = mysql_num_rows($result);

    if(isset($_POST['criteria_isbn']))
    {
        $category_author = $_POST['category_author'];
        $criteria_author = $_POST['criteria_author'];
        $query = "SELECT * FROM books WHERE $category_author LIKE '%".$criteria_author."%'";
        $result = mysql_query($query) or die(mysql_error());
        $num_rows = mysql_num_rows($result);

        if(isset($_POST['criteria_author']))
        {
            $category_title = $_POST['category_title'];
            $criteria_title = $_POST['criteria_title'];
            $query = "SELECT * FROM books WHERE $category_title LIKE '%".$criteria_title."%'";
            $result = mysql_query($query) or die(mysql_error());
            $num_rows = mysql_num_rows($result);

            echo "$num_rows results found";
            echo "<table border= 1>";
            echo "<tr> <th>ISBN</th> <th>AUTHOR</th> <th>TITLE</th> <th>PRICE</th> </tr>";
                while($row = mysql_fetch_array($result))
                {
                    echo "<tr><td>";
                    echo $row['isbn'];
                    echo "</td><td>";
                    echo $row['author'];
                    echo "</td><td>";
                    echo $row['title'];
                    echo "</td><td>";
                    echo $row['price'];
                    echo "</td></tr>";
                }
            echo "</table>";
        }
    }
}
?>

前もって感謝します。

4

1 に答える 1

1

これを試して

最初の検索用

   select* from table where author="kayle";

2回目の検索用

   select * from table where author="kayle" and price="50";
于 2012-07-09T12:21:43.917 に答える