计算多个表的行并单独返回结果?

  • 本文关键字:单独 返回 结果 计算 php sql
  • 更新时间 :
  • 英文 :


我正在尝试计算几个表中的行数并单独回显结果。我尝试使用以下脚本,它返回 $table 1count, t1c 的原始值。它从不返回实际计数值。我认为语法是错误的,但我在网上找到的所有信息都是 8-10 年前的。谁能帮忙?

<?php
$servername = "localhost";
$username = "root";
$password = "root";
$dbName = "database";
$table1count = 't1c';
$table2count = 't2c';
$conn = new mysqli ($servername, $username, $password, $dbName);
if(!$conn){
die("Connection failed. ". mysqli_connect_error());
}
$sql  = "SELECT ";
$sql .= "(SELECT COUNT(*) FROM table1) AS $table1count, ";
$sql .= "(SELECT COUNT(*) FROM table2) AS $table2count; ";
$result = mysqli_query($conn ,$sql);
if(mysqli_num_rows($result) > 0) {
while($row = mysqli_fetch_assoc($result)){
echo "table1count:" . $table1count . "|table2count:". $table2count . ";";
}
}
?>

$table1count;$table2count;需要有值才能在$sql字符串中使用。这些值是什么并不重要,只要它们是有效的MySQL标识符。

$table1count = 't1c';
$table2count = 't2c';

我只是使用了赋值一个类似于变量名称的字符串,因为我没有创造力。

这些字符串将与查询一起传递给 MySQL,它们用作计数查询结果的别名。别名将与查询结果一起返回,因此它们将是$row = mysqli_fetch_assoc($result)返回的$row数组中的键。

您可以使用echo语句中的数组键访问$row中的计数值。

echo "table1count:" . $row[$table1count] . "|table2count:". $row[$table2count] . ";";

另外,请务必从 SQL 字符串中删除尾随逗号,这将导致 SQL 语法错误。