php - 计算多个表中的行数

标签 php mysql

我正在尝试做一些非常基本的事情,但不太明白这一点。我使用的是 PHP 和 MySQLi (OOP) 而不是 MySQL。我可以使用多个单一的选择语句,然后将每个数字的计数放入一个变量中,但我认为这是低效的。

好的,有几张 table ;

TABLE NAME: UCC_STAFF
id
email
username
password
status

TABLE NAME: UCC_TEMP_STAFF
id
email
username
password
status

TABLE NAME: UCC_TEMP_STUDENTS
id
email
username
password
status

TABLE NAME: UCC_VISITORS
id
email
username
password
status

我想做的是计算每个表中的行数,每行代表一个用户。正如我所解释的;使用一个表很容易,但我想将单个请求的结果合并到一个数组中,而不是将多个语句合并到多个变量中。

期望结果的一个例子是;

$a = results('UCC_STAFF' => '35',
            'UCC_TEMP_STAFF' => '12',
            'UCC_STUDENTS' => '543',
            'UCC_VISITORS'  => '6',);

我想象中的这个样子;

$db_host = "dbhost";
$db_username = "username"; 
$db_pass = "password";
$db_name = "dbname";

$mysqli = new mysqli("$db_host", "$db_username", "$db_pass", "$db_name");

if ($mysqli->connect_errno) {
    printf("Connect failed: %s\n", $mysqli->connect_error);
    exit();
}

$query  = "SELECT * FROM UCC_STAFF;";
$query .= "SELECT * FROM UCC_TEMP_STAFF;";
$query .= "SELECT * FROM UCC_STUDENTS;";
$query .= "SELECT * FROM UCC_VISITORS";

if ($mysqli->multi_query($query)) {

// Results into $results
// How do I do this, what goes here?    

    }

// Print Array
print_r ($results);

最佳答案

您可以执行类似的操作,通过一次查询对多个表中的数据进行计数。

$query  = "SELECT ";
$query .= "(SELECT COUNT(*) FROM UCC_STAFF) AS count_staff, ";
$query .= "(SELECT COUNT(*) FROM UCC_TEMP_STAFF) AS count_temp_staff, ";
$query .= "(SELECT COUNT(*) FROM UCC_TEMP_STUDENTS) AS count_students, ";
$query .= "(SELECT COUNT(*) FROM UCC_VISITORS) AS count_visitors";

关于php - 计算多个表中的行数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14665367/

相关文章:

php - HTTP/1.1 505 不支持 HTTP 版本

php - 复选框仍选中后退按钮,但没有 “checked”属性

php - 如何从 propel 对象集合中获取 "id"的对象?

mysql - 如何更改mysql表中列的字符编码

mysql - 如何加密 jos_users (Joomla) 中的密码列

php - 如何找到第二个字符串并获取其值(重复)

php - 如何将旧的 MySQL 数据库迁移到 Laravel 项目中?

mysql - 如何在包含值列表的数据库字段中搜索值?

php - WordPress $wpdb->选项

php - 锁定访问者直到 mysql 查询完成