我正在尝试将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;
}
答案 0 :(得分:0)
如果您要做的只是计算每个脚本执行循环的次数,那么这很简单。见下文:
$count = 0;
while($row35 = $result35->fetch(PDO::FETCH_ASSOC)){
//Do all your loop stuff.
$count++;
}
var_dump($count);
重要,请注意您的$ count变量需要在循环之外声明。
此外,您需要将fetchAll与foreach循环一起使用,或者使用带有while循环的fetch,但不要混用它们。
也是良好做法的提示。尽量避免使用循环执行任何类型的数据库查询,随着循环变大,可能会遇到严重的性能问题。
答案 1 :(得分:0)
$row36->fetchObject;
似乎是null对象,我认为它应该是
$row36 = $result36->fetchObject();
答案 2 :(得分:0)
不确定你在做什么。但至少尝试:
$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;
}