我正在尝试做一些非常基本的事情,但不太明白这一点。我使用的是 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/