我有一個搜索功能,當時搜索結果將顯示10。用戶可以查看下一個或前10個搜索結果。結果顯示不同的主題,其中搜索到的單詞將被發現。一切都像我想要的那樣工作。如何鏈接到搜索結果中的主題的正確頁面?
問題是當我希望用戶能夠點擊一個結果並最終在該主題的正確頁面上。例如,必須在第2頁上查看某個主題中的第14個帖子(在主題頁上的SQL查詢中使用LIMIT 10,10
)。我在鏈接中發送LIMIT
參數作爲$ _GET。
如何在按發佈日期排序時從特定主題的總數中檢索結果中每個主題的行號?一切都始終按此順序顯示。我想用$nr = $nr-1; //and then
$limit = floor($nr/10) * 10;
上,這個數字將能夠在搜索結果中的鏈接發送正確LIMIT
參數。
這裏的PDO用來獲取搜索結果:
$query = 'SELECT t.topic_id, t.topic_cat, t.topic_subject, p.post_content, p.post_id, UNIX_TIMESTAMP(p.post_date) AS post_date
FROM posts p
LEFT JOIN topics t ON p.post_topic = t.topic_id
WHERE p.post_content LIKE :search OR t.topic_subject LIKE :search ORDER BY UNIX_TIMESTAMP(p.post_date) DESC LIMIT :start, :size';
$statement = $db->prepare($query);
$statement->bindValue(':search', '%'.$search.'%');
$statement->bindValue(':start', $start2, PDO::PARAM_INT);
$statement->bindValue(':size', $pagesize, PDO::PARAM_INT);
$statement->execute();
while ($row = $statement->fetch(PDO::FETCH_ASSOC)) {
$array[$row['topic_subject']][] = $row['post_id'];
$nr = count($array[$row['topic_subject']]) - 1;
echo '<div class="search_result"><div class="search_topic"><a href="topic_view.php?id=' . $row['topic_id'] . '&cat_id=' . $row['topic_cat'] . '
&start=' . floor($nr/10) * 10 . '#anchor_' . $row['post_id'] . '">' . $row['topic_subject'] . '</a><span style="float:right;color:#696969">'
. date("M d, Y",$row['post_date']) . '</span></div><div class="search_post">' . $row['post_content'] . '</div></div>';
}
} $statement->closeCursor();
它是start
參數的鏈接,我莫名其妙地需要在查詢搶,所以我沒有做一個新的數據庫調用對於while loop
中的每個post_id
。
我不明白的問題。你有行號,你想知道它將在哪一頁上? – Tchoupi
我有搜索結果中顯示的每個帖子的ID(每個結果的標題都是主題),但爲了能夠將用戶發送到該主題的正確頁面,我需要知道要在哪個數字中使用LIMIT子句。 – NewInTheBusiness