在PHP中分页期间查询丢失重要信息

时间:2015-06-25 00:56:56

标签: php html mysql pagination

我刚为我的网页创建了一个分页,它从我的mysql数据库中获取数据。我的查询有一个WHERE子句,它接受一个php变量,当它用作关键字时。这是一个摘录:

SELECT name, category_id, subcategory, image, price, stock FROM home_products WHERE name LIKE '%$search%'
    UNION
    SELECT name, category_id, subcategory, image, price, stock FROM kitchen_products WHERE name LIKE '%$search%'

页面的链接(例如,第1页,第2页等)显示在页面上,但每当我点击它们时,页面显示错误$search变量(where子句中的关键字)不能被发现。我已经尝试在分页的链接末尾添加“搜索”变量,但它并没有真正做任何有用的事情(分页结果中的页数列表增加,这只会导致更多问题)。以下是输出分页的代码摘录:

echo "<a href='pagination.php?page=1'>".'|<'."</a> "; // Goto 1st page

for ($i=1; $i<=$total_pages; $i++) { 
    echo "<a href='results.php?search='".$_GET['search']."'&page=".$i."'>".$i."</a> "; 
};

echo "<a href='results.php?page=$total_pages'>".'>|'."</a> "; // Goto last page `

我做错了吗?提前谢谢

1 个答案:

答案 0 :(得分:0)

您可以在这里查看的内容:

  • 你的第一页链接转到pagination.php,尽管其他人去了results.php。看起来不应该这样
  • 您的第一页和最后一页没有附加搜索变量,就像循环中的页面
  • 一样
  • 如果从循环中生成的任何页面都说无法找到“搜索”,那么也许你正在混合提交方法(例如,你期待$ _POST ['搜索'],但通过'搜索' $ _GET中的参数)