首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >计数多个表的行并单独返回结果?

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

Stack Overflow用户
提问于 2018-10-23 17:24:19
回答 1查看 22关注 0票数 0

我试图计算几个表中的行数,并逐个回显结果。我尝试使用下面的脚本,它返回$table1count,t1c的原始值。它从不返回实际的计数值。我认为语法是错误的,但我在网上找到的所有信息都有8-10年的历史。有人能帮忙吗?

代码语言:javascript
复制
<?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 . ";";

    }
}
?>
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-10-23 18:05:22

$table1count;$table2count;可以在$sql字符串中使用之前,它们需要有值。值是什么并不重要,只要它们是有效MySQL标识符

代码语言:javascript
复制
$table1count = 't1c';
$table2count = 't2c';

我只是使用了一个与变量名类似的字符串,因为我没有创造性。

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

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

代码语言:javascript
复制
echo "table1count:" . $row[$table1count] . "|table2count:". $row[$table2count] . ";";

此外,请确保从SQL字符串中删除该后缀逗号,它将导致SQL语法错误。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52954671

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档