MYSQLI SELECT with Limit not working


MYSQLI SELECT with Limit not working

我试图找到数据库中表中的行数,这取决于具有限制功能的某些条件,以便我可以计算表中某一行后匹配条件的行数。

因此,我创建了我的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之后不算数。udeas吗?

根据你的查询,应该是

$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;

但我怀疑这是不是你真正需要的。

运用你的常识告诉我,我设法找到了我的问题的答案,所以它是:

$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>";
}

作品完美的