我正在尝试根据具有限制功能的特定条件查找数据库中表中的行数,以便我可以计算在表中某行之后匹配条件的行数。 / p>
因此我创建了我的php查询:
$q = $db->query("SELECT u.*, f.* FROM updates U LEFT JOIN friends f ON f.fid = u.userid WHERE f.uid = '$userid' ORDER BY u.up_id DESC LIMIT $limitID, 9999999");
$nr = $q->num_rows;
然而,即使$limitID
之后数据库中有更多行,它也表示没有行。
如果我试试这个:
$q = $db->query("SELECT u.*, f.* FROM updates U LEFT JOIN friends f ON f.fid = u.userid WHERE f.uid = '$userid' ORDER BY u.up_id DESC LIMIT $limitID");
$nr = $q->num_rows;
然后它可以工作,但它不会在$limitID
之后计算。任何丑闻?
答案 0 :(得分:1)
根据你的查询,它应该是
$sql = "SELECT count(*) FROM updates U
LEFT JOIN friends f ON f.fid = u.userid WHERE f.uid = ?";
// getting stuff using prepared statements
$row = $res->fetch_row();
$num = $row[0] - $limitID;
但我怀疑它真的是你需要的。
答案 1 :(得分:-2)
使用你的常识告诉我,我设法找到了我的问题的答案,所以这里是:
$limitID = $upid;
$sql = "SELECT count(*) FROM updates u
LEFT JOIN friends f ON f.fid = u.userid WHERE
(f.uid = '$userid' AND u.up_id > '$limitID')";
$res = $db->query($sql);
$row = $res->fetch_row();
$num = $row[0];
if($num == 0){
// do nothing
} else {
echo "<span class='newPosts'>" .$num. " New Post"
. (($num>1)?'s':' ') . "</span>";
}
完美运作