2011-10-21 153 views
1

我有一個搜索表單,並將搜索結果顯示在與搜索表單相同的頁面上。因此,在進行搜索之前,所有可能的結果都是可見的。一旦將關鍵字輸入到表單中,結果只是包含關鍵字的結果。我希望表單顯示顯示結果時輸入到表單中的關鍵字。我嘗試過多種方法,而我最近的嘗試是進入表單的各個部分,但沒有運氣。我搜索了多個教程網站,但沒有找到要解決的特定請求。顯示結果時,您可以幫助我將搜索條件保留在搜索框中嗎?這裏是我使用的代碼:使用PHP顯示結果時在搜索框中顯示搜索條件

<html> 
    <body> 
    <?php error_reporting (E_ALL^E_NOTICE); ?> 
    <?php 
     function getRecords($query) { 
     $con = mysql_connect("localhost", "movie", "moviepw"); 
     if (!$con) 
     { 
     die('Could not connect: ' . mysql_error()); 
     } 
     mysql_select_db("movies", $con); 

     $result = mysql_query($query); 
     return $result; 
    } 

    function buildQuery() { 

    $keyword = $_GET['keyword']; 
    $sql = "SELECT * from table1 WHERE (movie_title LIKE '%$keyword%' 
        OR movie_description LIKE '%$keyword%')"; 
    return $sql; 
    } ?> 

    <form action="movie_form.php" method=get> 
    <fieldset> 
    <legend>Movies</legend> 
    <label for="keyword">Search</label> 
    <input id="keyword" name="keyword" /> 
    <input type=submit name=submit value=Search /> 
    <? echo $keyword ?> 
    </fieldset> 
    </form> 

    <? 
     $query = buildQuery(); 
     $records = getRecords($query); 

    while($row = mysql_fetch_array($records)){ ?> 
    <table> 
     <tbody> 
     <table border='1'> 
     <tr> 
     <td><?= $row['movie_title']; ?></td> 
     <td><?= $row['movie_rating']; ?></td> 
     <td><img src="<?= $row['movie_image'];?>"></td> 
     <td><?= $row['movie_description']; ?></td> 
     <td><a href="movie_form.php">Return to Search</a></td> 
     </tr> 
     <? } ?> 
     </tbody> 
    </table> 
</body> 
</html> 

回答

0

添加的「值」屬性的「關鍵詞」的形式輸入。事情是這樣的:

<input id="keyword" name="keyword" value="<?php echo "$keyword"; ?>"/> 

此外,移動$關鍵字的設置出了BuildQuery對於()方法,因此,這將是可用的,當你的形式輸出。您可以在error_reporting設置後正確設置:

<?php error_reporting (E_ALL^E_NOTICE); 
     $keyword = rtrim($_GET['keyword']); 
?> 

最後,此代碼易受sql注入的影響。看看這個: How can I prevent SQL injection in PHP?

+0

謝謝,埃裏克。我在那裏添加了它,但是我仍然沒有得到搜索條件來繼續在搜索框中顯示。 – CherylAnnCE

+0

另外,感謝注射信息! – CherylAnnCE

+0

我看到了問題。 $關鍵字是在buildQuery方法中設置的,因此在輸出表單時它不可用。我修改了我的答案以反映這一點。另外,我收緊了線。嘗試這些修訂;這個對我有用。 – Eric