2016-04-14 16 views
0

Belirli bir kursu aradıktan sonra sonuçlar doğru şekilde görüntüleniyor, ancak sayfayı değiştirdiğimde tüm mevcut sonuçları görüntülemeye geri dönüyor. Arama terimi sonuçlarını nasıl saklarım?PHP Pagination, arama terimini kaldırır ve tüm sonuçları görüntülemeye geri döner, düzeltilsin mi?

İşte kod

<?php 

$con = mysqli_connect("localhost", "root", "root", "courses"); 

// $total = mysqli_query($con, "SELECT count(title) as total")->fetch()['total']); 


if(isset($_GET['searchword'])){ 
$searchword = $_GET['searchword']; 
} 
else { 
$searchword = ""; 
} 

$result = mysqli_query($con, "SELECT count(title) FROM course WHERE title LIKE '$searchword%'"); 
$row = mysqli_fetch_row($result); 

// Total rows. 
$rowstotal = $row[0]; 

//pages 
$page = isset($_GET['page']) ? (int)$_GET['page'] : 1; 
$perPage = isset($_GET['per-page']) && $_GET['per-page'] <= 100 ? (int)$_GET['per-page'] : 10; 

$start = ($page > 1) ? ($page * $perPage) - $perPage : 0; 

$pages = $rowstotal/$perPage; 

$sql = "SELECT * FROM course WHERE title LIKE '%$searchword%' ORDER BY title ASC LIMIT {$start},{$perPage}"; 

$query = mysqli_query($con, $sql); 

$resultsText = "$rowstotal results"; 

$resultsList = ''; 

while($row = mysqli_fetch_array($query, MYSQLI_ASSOC)){ 
    $courseId = $row["id"]; 
    $courseAward = $row["award"]; 
    $courseName = $row["title"]; 
    $courseDetails = $row["summary"]; 
    $resultsList .= '<a href="course-page.php?id='.$courseId.'">'.$courseAward.' '.$courseName.'</a> <br>'.$courseDetails.'<br/>'; 
} 

mysqli_close($con); 

?> 







    <!DOCTYPE html> 
    <html lang="en"> 
    <head> 
    <title>Courses</title> 
    <link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css" rel="stylesheet"> 
    <link rel="stylesheet" type="text/css" href="style.css"> 
    </head> 
    <body> 

    <nav class="navbar navbar-default navbar-static-top navbar-inverse"> 
     <div class="container"> 
     <div class="navbar-header"> 
      <a class="navbar-brand" href="#"> 
      <img alt="Napier" src=""> 
      </a> 
     </div> 
     </div> 
    </nav> 

    <div class="container"> 

     <!-- Search --> 
     <form method="GET"> 
      <input type="text" class="form-control" name="searchword" placeholder="Search" value="<?php echo $searchword ?>" style="width:30%;"><br> 
     </form> 

     <!-- Results --> 
     <div class="results"> 
      <p></p> 
      <p>Showing <?php echo $perPage; ?> of <?php echo $resultsText; ?></p> 
      <p id="content"><?php echo $resultsList; ?></p> 
     </div> 
     <div class="pagination"> 
      <?php for($x = 1; $x <= $pages; $x++): ?> 
       <a href="?page=<?php echo $x; ?>&per-page=<?php echo $perPage; ?>"<?php if($page === $x) { echo ' class="selected"'; } ?>><?php echo $x; ?></a> 
      <?php endfor; ?> 
     </div> 


    </div> 

    <script type="text/javascript" src="https://code.jquery.com/jquery-1.12.3.min.js"></script> 

    </body> 
</html> 
+1

Onun url veya oturum aracılığıyla biriyle, diğer sayfalara arama terimini ayrıştırmak gerekir. –

cevap

3

Sayfanız bağlantılar searchword parametresini korumak değil bu. Bu değiştirme: Buna

<a href="?page=<?php echo $x; ?>&per-page=<?php echo $perPage; ?>"<?php if($page === $x) { echo ' class="selected"'; } ?>><?php echo $x; ?></a> 

:

<a href="?page=<?php echo $x; ?>&per-page=<?php echo $perPage; ?>&searchword=<?php echo $searchword; ?>"<?php if($page === $x) { echo ' class="selected"'; } ?>><?php echo $x; ?></a> 
+1

Ayrıca muhtemelen kodunuzun siteler arası komut dosyasına karşı savunmasız olduğunu unutmayın. – Chris

İlgili konular