我正在使用PHP和MySQL的网站上工作,但我最近遇到了一个非常烦人的问题,我似乎无法修复。我有一个MySQL查询来读取数据库中的每个帖子,但是一旦我添加一个“WHERE”语句,它只能读取一个帖子,当删除WHERE语句时,它可以全部读取它们。
我正在使用的代码如下:
的index.php
<?php
include 'includes/conn.php';
if(isset($_GET['p']) && isset($_GET['pg']))
{
if(is_numeric($_GET['p'])){
$id = $_GET['p'];
}else{
header("Location: /");
exit();
}
}else{
$page = 1;
}
$post_count = $conn->query("SELECT Title FROM Posts WHERE Page='Home'");
$per_page = 10;
$pages = ceil($post_count->num_rows/$per_page);
if($page <= 0)
$start = 0;
else
$start = $page * $per_page - $per_page;
$prev = $page - 1;
$next = $page + 1;
$query = $conn->prepare("SELECT Title, Body FROM posts WHERE Page='Home' ORDER BY ID desc LIMIT $start, $per_page");
$query->execute();
$query->bind_result($title, $body);
while($query->fetch())
{
echo '<div class="post">' .
'<h2>' . nl2br($title) . '</h2>' .
'<p>' . nl2br($body) . '</p><br /><br />' .
'</div>';
}
if($prev > 0)
{
$prevlink = "/?p=" . $prev;
?>
<center><a href="<?php echo $prevlink;?>">Previous</a></center>
<?php
}
if($page < $pages)
{
$nextlink = "/?p=" . $next;
echo '<center><a href="'.$nextlink.'">Next</a></center>';
}
?>
Conn.php:
<?php
$dbhost = "localhost";
$db = "mw";
$dbuser = "root";
$dbpass = "root";
$conn = new mysqli($dbhost, $dbuser, $dbpass, $db) or die('Could not connect: ' . mysql_error());
?>
表格布局如下:
输出是这样的:
使用WHERE:http://i.stack.imgur.com/0L8Bj.png
没有WHERE:http://i.stack.imgur.com/UxcqX.png
如果有人能够指出我的错误 - 并告诉我如何解决它 - 那就太棒了
答案 0 :(得分:2)
添加
echo "SELECT Title, Body FROM posts WHERE Page='Home' ORDER BY ID desc LIMIT $start, $per_page";
获取输出并直接在数据库中使用它(例如CLI或phpMyAdmin)。如果您直接查询数据库,并且仍然只给出一个结果,那么唯一的答案是只有一行有一个列Page =“Home”。或许第二行的列有前导/尾随空格?
编辑:根据你的评论,领先/尾随空格就是这样!