2011-10-21 2 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

"키워드"양식 입력에 "value"속성을 추가하십시오. 이런 식으로 뭔가 : 당신의 형태가 출력 될 때 사용할 수 있도록

또한
<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

관련 문제