我试图获得的值小于我的最后一个分页值,但我仍然得到空数组,即使那里应该有值。是我的语法是导致这个还是我称错了?提前谢谢。
<?php
include("connect.php"); //connect to database
//create query
$get_messages_query = $db->prepare("
SELECT * FROM `blogposts`
WHERE `postid` < ?
ORDER BY `postid` DESC
LIMIT 5
");
//Homepage should have last 5 blog posts this will take the
//last 5 entered into the database and put them into an
//array
$one = 1;
$zero = 0;
$lastpage = $_GET['id'];
$pageback = $lastpage - 1;
$pageforward = $lastpage + 1;
$get_messages_query->execute(array($_POST['idid']));
while($row = $get_messages_query->fetch())
{
if($row['comments'] == $one){
$id = $row['postid'];
$blog_post_history .=
'<div class="post" id="post">
<h1>' . $row['title'] .' </h1>
<h2>Written by: ' . $row['author'] . '</h2>
<p>'. $row['content'] . '</p>
<a href="addcomment.php?id='. $row['postid'] .'">Add Comment</a>
<a href="showcomments.php?id='. $row['postid'] . '">Show Comments</a>
<br>
<br>
</div>';
}
else{
$id - $row['postid'];
$blog_post_history .=
'<div class="post" id="post">
<h1>'. $row['title'] .' </h1>
<h2>Written by: ' . $row['author'] . '</h2>
<p>'. $row['content'] . '</p>
<a href="viewblog.php?id='. $row['postid'] .'">View Blog</a>
<br>
<br>
</div>';
}
}
答案 0 :(得分:0)
确保$_POST['idid']
包含您认为它的整数值。例如,如果您不匹配POST参数的名称,或者该值是字符串而不是数字,那么您可能正在搜索postid < 0
启用MySQL general query log,您可以在执行时查看最终的SQL(包括动态参数)。这是一种简单的方法来验证SQL是否正在运行您期望的那样。
当然,只在数据库的开发或暂存实例上执行此操作,因为在生产站点上启用常规查询日志会对性能产生很大影响。
还要在mysql客户端中测试查询,看看结果是否符合您的认为。你说“应该”是数据,但是值得用直接查询进行双重检查,即在不涉及PHP / PDO的情况下进行测试。