Php 使用分页问题进行搜索
我正在尝试开发一个带有分页功能的网站搜索功能,目前我有“所有文章”的分页功能,但是我似乎无法使用搜索功能实现这一功能 -目前搜索确实会返回结果(不分页),但是对于不符合条件的文章,它会返回一个错误而不是什么都没有?我相信这是由于我使用的计数器功能,但我不知道如何解决这个问题 任何帮助都将不胜感激 搜索功能Php 使用分页问题进行搜索,php,mysql,Php,Mysql,我正在尝试开发一个带有分页功能的网站搜索功能,目前我有“所有文章”的分页功能,但是我似乎无法使用搜索功能实现这一功能 -目前搜索确实会返回结果(不分页),但是对于不符合条件的文章,它会返回一个错误而不是什么都没有?我相信这是由于我使用的计数器功能,但我不知道如何解决这个问题 任何帮助都将不胜感激 搜索功能 function searchPosts($term) { $match = '%' . $term . '%'; global $conn; $sql = &quo
function searchPosts($term)
{
$match = '%' . $term . '%';
global $conn;
$sql = "
SELECT p.*
, u.username
FROM posts AS p
JOIN users AS u
ON p.user_id=u.id
WHERE p.published=?
AND p.title LIKE ?
OR p.body LIKE ?";
$stmt = executeQuery($sql, ['published' => 1, 'title' => $match, 'body' => $match]);
$records = $stmt->get_result()->fetch_all(MYSQLI_ASSOC);
return $records;
}
分页代码
if(isset($_GET['page']))
{
$page = $_GET['page'];
}
else
{
$page = 1;
}
$num_per_page = 05;
$start_from = ($page-1)*05;
//$pr_query = "SELECT * FROM posts WHERE published = 1";
$pr_query = "SELECT posts.*, users.username FROM posts JOIN users ON posts.user_id = users.id WHERE published = 1";
//"SELECT p.*, u.username FROM posts AS p JOIN users AS u ON p.user_id=u.id WHERE p.published=?";
$pr_result = mysqli_query($conn,$pr_query);
$test = $pr_result->fetch_all(MYSQLI_ASSOC);
$totalrecord = mysqli_num_rows($pr_result);
//echo $totalrecord;
$totalpages = ceil($totalrecord/$num_per_page);
//echo $totalpages;
搜索代码和文章循环
//Search Code
$posts = array();
$postsTitle = 'Recent Posts';
if (isset($_POST['search-term'])) {
$postsTitle = "Search Results for " . "'" . $_POST['search-term'] . "'";
$test = searchPosts($_POST['search-term']);
} else{
$posts = getPublishedPosts();
}
//Article Loop
$max = $num_per_page + $start_from;
"max = " . $max;
for($counter = $start_from; $counter < $max; $counter++)
{
if ($counter == $totalrecord) {
break;
}
$p = $test[$counter];
?>
<div class="post">
<img src="<?php echo 'Images/' . $p['image']; ?>" alt="" class="post-image">
<div class="post-preview">
<h2><a href="single.php?id=<?php echo $p['id']; ?>"><?php echo $p['title']; ?></a></h2>
<i class="far fa-user"> <?php echo $p['username']; ?></i>
<i class="far fa-calendar"> <?php echo date('F j, Y', strtotime($p['created_at'])); ?></i>
<p class="preview-text">
<?php echo html_entity_decode(substr($p['body'], 0, 150) . '...') ?>
</p>
<a href="single.php?id=<?php echo $p['id']; ?>" class="btn1">Read More</a>
//搜索代码
$posts=array();
$postsTitle=‘最近的帖子’;
如果(isset($_POST['search-term'])){
$postsTitle=“搜索“.”的结果。$\u POST['Search-term']”;
$test=searchPosts($_POST['search-term']);
}否则{
$posts=getPublishedPosts();
}
//文章循环
$max=$num\u每页+start\u from;
“max=”$最大值;
对于($counter=$start\u from;$counter<$max;$counter++)
{
如果($counter==$totalrecord){
打破
}
$p=$test[$counter];
?>
“alt=”“class=“post image”>
第155行,你的代码中是哪一行?我怀疑哪里…和…或能达到你的预期。建议巧妙地使用括号。