我想知道一个特定数字在特定列中出现了多少次(可能是0次(。我在$contact_client_ID中设置了号码,然后执行下面的SELECT查询。
$sql = "SELECT * FROM t_contacts WHERE contact_client_ID ='$contact_client_ID'";
$result=(mysqli_query($link, $sql));
$count_result= mysqli_num_rows($result);
echo "contact client ID $contact_client_ID xxxxx $count_result";
它不是包含我想要的数字的$count_result,而是包含一个由我想要的号码和contact_client_ID连接在一起的结果,而且在下面的任何代码中,该结果似乎都不能用作数字。
因此,如果$contact_client_ID=50,并且表中出现了2次,那么我得到的输出是:
联系客户ID 50 xxxxx 250
我看了各地的手册和例子(包括这里(,看不出我做错了什么。
有多种方法可以做到这一点,更准确地说,您可以选择在PHP中进行计数,或者让SQL服务器进行计数并返回数字:
- 在PHP中执行:
它需要的是:-获取所有数据-生成计数器变量;-循环通过数据,每个循环增加计数器+1
对于较小的表,您可以使用PHP,对于较大的表,我建议在SQL上进行操作,因为PHP要计算它,必须获取所有数据。
$counter=0;
$query = "SELECT * FROM t_contacts WHERE contact_client_ID ='$contact_client_ID";
$res = $con->query($query);
while ($row = $res->fetch_assoc()) {
$counter++;
}
- 在SQL中执行
现在更聪明的方法是在SQL服务器上执行,因为它可以更好地处理负载;
我想说/u/Adaleni写的内容与我使用的内容非常接近:
$sql = "SELECT count(contact_client_ID) as total FROM t_contacts WHERE contact_client_ID ='$contact_client_ID'";
$result=mysqli_query($link, $sql);
$count_result= mysqli_fetch_row(result);
echo "contact client ID $contact_client_ID xxxxx $count_result[0]['total']";
让我们来描述一下他的所作所为:
我们在SQL中使用COUNT((函数,这使服务器计算contact_client_ID的出现次数,然后(在结果中(生成一个名为"total"的新变量
我们执行查询并得到结果
我们使用mysqli_fetch_rowm这个函数获取作为枚举数组的结果行
然后我们访问该数组(因为我们知道它只有1项,所以我们访问了索引0(,并打印我们在步骤1中生成的变量total-$count_result[0]['total']
试试这个
/*选择查询返回结果集*/
if ($result = $mysqli->query("SELECT * FROM t_contacts WHERE contact_client_ID ='$contact_client_ID")) {
printf("Select returned %d rows.n", $result->num_rows);