2017-07-10 8 views
1

検索クエリからの結果にPHPページネーションを追加するにはどうすればよいですか?私はherehereを試しましたが、どのように動作するのか、私のコードでうまくいかないようです。私は前にスクロールに負荷を使用していたページネーションの原因を考える前に、検索クエリを書いています。どのようにページングされた結果を表示させるのですか?検索結果にPHPページネーションを追加する

以下は私のコードsearchresults.phpを表示するためのコードです。

if (isset($_GET["mainSearch"])) 
{ 
    $condition = ''; 
    // $mainSearch = SQLite3::escapeString($_GET['mainSearch']); 
    $keyword = $_GET['mainSearch']; 
    $query = explode(" ", $keyword); 

    foreach ($query as $text) 
    { 
     $condition .= "question LIKE '%".SQLite3::escapeString($text)."%' OR answer LIKE '%".SQLite3::escapeString($text)."%' OR "; 
    } 
    $condition = substr($condition, 0, -4); 


    $order = " ORDER BY quiz_id DESC "; 
    $sql_query = "SELECT * FROM questions WHERE " . $condition . ' '. $order; 
    $sql_query_count = "SELECT COUNT(*) as count FROM questions WHERE " . $condition .' '. $order; 
    $result = $db->query($sql_query); 
    $resultCount = $db->querySingle($sql_query_count); 

    if ($resultCount > 0) 
    { 
    if ($result) 
    { 
     while ($row = $result->fetchArray(SQLITE3_ASSOC)) 
     { 

      $wording = str_replace($text, "<span style='font-weight: bold;'>".$text."</span>", $row['answer']); 

      echo '<div class="quesbox_3"> 
      <div class="questitle"> 
       <h2>'.$row["question"].'</h2> 
      </div> 
      <div class="quesanswer">'.$wording.'</div> 
     </div>'; 
     } 
    } 
    } 
    else 
    { 
     echo "No results found"; 
    } 
} 

私はどのように私は私のsearchresults.phpに改ページを追加するよりスクロール

if (isset($_POST['limit']) && isset($_POST['start'])) { 

$start = $_POST["start"]; 
$limit = $_POST["limit"]; 

$query =<<<EOF 
SELECT * FROM questions ORDER BY quiz_id DESC LIMIT '$start', '$limit'; 
EOF; 

// echo $query; 

$result = $db->query($query); 

while ($row = $result->fetchArray(SQLITE3_ASSOC)) { 
echo '<div class="quesbox_2"> 
    <div class="questitle"> 
     <h2>'.$row["question"].'</h2> 
    </div> 
    <div class="quesanswer">'.$row["answer"].'</div> 
    <div class="quesdatetime"><img src="images/questime.png" alt="export question">'.$row["date"].'</div> 
</div>'; 
} 

} 

になり、ロードするJavaScriptの側面に沿って、これを使用していましたか?

ありがとうございました。

答えて

2

jqueryの

<?php 


if (isset($_GET["mainSearch"])) 
    { 
     $condition = ''; 
     // $mainSearch = SQLite3::escapeString($_GET['mainSearch']); 
     $keyword = $_GET['mainSearch']; 
     $query = explode(" ", $keyword); 
     $perpageview=10; 
     if($_GET["pageno"]){ 
      $page=$_GET["pageno"]; 
    }else{ 
     $page=1; 
    } 
    $frompage = $page*$perpageview-$perpageview; 
     foreach ($query as $text) 
     { 
      $condition .= "question LIKE '%".SQLite3::escapeString($text)."%' OR answer LIKE '%".SQLite3::escapeString($text)."%' OR "; 
     } 
     $condition = substr($condition, 0, -4); 


     $order = " ORDER BY quiz_id DESC "; 
     $sql_query = "SELECT * FROM questions WHERE " . $condition . ' '. $order.' LIMIT '.$frompage.','.$perpageview; 
     $sql_query_count = "SELECT COUNT(*) as count FROM questions WHERE " . $condition .' '. $order; 
     $result = $db->query($sql_query); 
     $resultCount = $db->querySingle($sql_query_count); 
     $pagecount = ceil($resultCount/$perpageview); 
     if ($resultCount > 0) 
     { 
     if ($result) 
     { 
      while ($row = $result->fetchArray(SQLITE3_ASSOC)) 
      { 

       $wording = str_replace($text, "<span style='font-weight: bold;'>".$text."</span>", $row['answer']); 

       echo '<div class="quesbox_3"> 
       <div class="questitle"> 
        <h2>'.$row["question"].'</h2> 
       </div> 
       <div class="quesanswer">'.$wording.'</div> 
      </div>'; 
      } 
      for ($i=1; $i <= $pagecount; $i++) { 
      echo '<a href="url?mainSearch='.$mainSearch.'&pageno='.$i.'">'.$i.'</a>'; 
      } 
     } 
     } 
     else 
     { 
      echo "No results found"; 
     } 
    } 

?>

+0

を使用せずにこのコードを試してみてください私はこれを試してみましたが、私が検索した場合、すべての検索結果がページ番号の側に沿って、同じページに表示されます。クリックしたページ番号に関係なく、同じ結果が表示されます。私は結果が異なるページに共有されていないと思う。どうすればいいですか? @sekaraja – WhiteHox

+0

私は最新のコードを置き換えて、これを試してください – sekaraja

+0

非常に非常にありがとう作品。 – WhiteHox

関連する問題