Php 计数不适用于我的通知

Php count cannot work for my notification

当我回显 ''.$count.'' 时显示 11101101。但我想总计 8 或 7 等。请问我的代码有什么问题。

我也试过 $count = mysqli_num_rows($u); 但结果是一样的。

我的代码:

    $g = mysqli_query($dbh,"SELECT id FROM update WHERE from_id`='".$b."' OR `to_id`='".$session->id."'") or die(mysqli_error($dbh));
    while ($rows = mysqli_fetch_assoc($g)) {
    $ids[]= $rows['id'];
}   
foreach ( $ids as $id ){
    $u = mysqli_query($dbh,"SELECT id FROM updateside WHERE `id`='".$id."' AND `view` = '0'") or die(mysqli_error($dbh));
    $count = mysqli_affected_rows($dbh);
    while ($rows = mysqli_fetch_assoc($u)) {
    $nid= $rows['id'];
} 

echo ''.$count.'';

} 

你可以简单地使用

$count=$u->num_rows;

echo $count;

我认为您的问题只是格式错误。这里为什么要用''
尝试简单地写:

echo $count;

将总计数分配给这样的变量:

假设 mysqli_num_rows 需要查询结果 $u 作为参数。

$total = 0;    

foreach ( $ids as $id ){
    $u = mysqli_query($dbh,"SELECT id FROM updateside WHERE `id`='".$id."' AND `view` = '0'") or die(mysqli_error($dbh));
    $count = mysqli_num_rows($u);
    $count = ($count == "") ? 0 : $count;
    $total = $total + $count;
    while ($rows = mysqli_fetch_assoc($u)) {
        $nid= $rows['id'];
    }
} 

echo $total;

您需要像这样稍微更改您的代码

foreach ( $ids as $id ){
    $u = mysqli_query($dbh,"SELECT id FROM updateside WHERE `id`='".$id."' AND `view` = '0'") or die(mysqli_error($dbh));
    while ($rows = mysqli_fetch_assoc($u)) {
        $nid= $rows['id'];
    }
    echo mysqli_num_rows($u);
}

如果您需要在所有 foreach 语句之后回显,请使用此

$count=0;
foreach ( $ids as $id ){
    $u = mysqli_query($dbh,"SELECT id FROM updateside WHERE `id`='".$id."' AND `view` = '0'") or die(mysqli_error($dbh));
    while ($rows = mysqli_fetch_assoc($u)) {
        $nid= $rows['id'];
    }
    $count = $count + mysqli_num_rows($u);
}
echo $count;