[英]Count rows in while loop
我想while
环路信息到SELECT
语句,则COUNT
的结果。 我尝试了至少10种不同的“解决方案”,但均无效果。 我只会得到0、1或什么都没有。 这是我最近的尝试:
$query35 = "SELECT * FROM movies WHERE userID = $memberID";
$result35 = $db->query($query35);
while ($row35 = $result35->fetchAll(PDO::FETCH_ASSOC)) {
$movie = $row35['movie'];
$query36 = "SELECT COUNT(*) AS similar FROM movies WHERE userID = '$profileID' && movie = '$movie'";
$result36 = $db->query($query36);
$row36->fetchObject;
$similar = $row36['similar'];
echo $similar;
}
如果您要做的只是计算每次脚本执行循环运行的次数,那么这样做就很简单。 见下文:
$count = 0;
while($row35 = $result35->fetch(PDO::FETCH_ASSOC)){
//Do all your loop stuff.
$count++;
}
var_dump($count);
重要的是要注意,您需要在循环外声明$ count变量。
另外,您要么需要将fetchAll与foreach循环一起使用,要么将fetch与while循环一起使用,但不要将它们混合使用。
也是良好实践的秘诀。 尝试尽可能避免使用循环执行任何类型的数据库查询,随着循环变大,您可能会遇到严重的性能问题。
$row36->fetchObject;
似乎是空对象,我认为应该是
$row36 = $result36->fetchObject();
不知道你在做什么。 但至少尝试:
$query35 = "SELECT * FROM movies WHERE userID = $memberID";
$result35 = $db->query($query35);
if ($row35 = $result35->fetchAll(PDO::FETCH_ASSOC))
foreach ($row35 as $row) {
print_r($row);
}
或者可能
$query35 = "SELECT * FROM movies WHERE userID = $memberID";
$result35 = $db->query($query35);
while ($row = $result35->fetch(PDO::FETCH_ASSOC)) {
print_r($row);
$movie = $row['movie'];
$query36 = "SELECT COUNT(*) AS similar FROM movies WHERE userID = '$profileID' && movie = '$movie'";
$result36 = $db->query($query36);
$obj = $result36->fetchObject();
$similar = $obj->similar;
echo $similar;
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.