是否可以从数据库中获取具有特定值的行数?假设我想显示投票给1的数据库中有多少人。它会说People that voted for guy 1: <number>
(在数据库中,1或2的选择存储为0或1)
我试过
SELECT COUNT(*) FROM vote WHERE choice=1
没用。还有其他方法吗?
修改
完整代码:
$sql = "SELECT COUNT(*) FROM vote WHERE choice=1";
$stmt = $link->prepare($sql);
$result0 = $stmt->num_rows();
echo $result0;
当数据库中有2个特别是
时,我得到0答案 0 :(得分:0)
在您的查询中,select
与谓词choice=1
匹配的行数:
$sql = "SELECT COUNT(*) FROM vote WHERE choice=1";
$stmt = $link->prepare($sql);
然后,您询问该查询的返回行数:
$result0 = $stmt->num_rows();
echo $result0;
但是,由于查询返回了多个行,因此它应该只包含包含该值的1行。您想要的是将查询更改为:
SELECT * FROM vote WHERE choice=1
并且几乎像您一样获取返回的行数,或者检索从原始查询获得的第一行中的值:
$result0 = $stmt->bind_result($result0);
$stmt->fetch();
但请注意:
num_rows
不是函数,它是$stmt
,store_result()
上使用$stmt
方法,然后才能访问num_rows
以获得有意义的结果所以使用num_rows
的代码应该是:
$stmt->store_result();
$result0 = $stmt->num_rows;
echo $result0;
(参见documentation)。
答案 1 :(得分:-2)
我想你可以试试这个:
SELECT COUNT(*)FROM highscores WHERE vote =&#39; 1&#39;