在mysql中从两个不同的表中选择SELECT但得到不同的答案

时间:2018-04-13 03:16:28

标签: php mysql database mysqli rows

我的代码中遇到了一个问题,我开始迷路了。我的编码显示了MySQL and website display中的不同结果。

这是我的代码,我在MySQL database,中查询它获取total of student + employer = 1341。但是当我用PHP编写时,它在网站上显示总数为1。为什么会这样?有关信息,下面的代码都是MySQL中的功能,但没有在网站上显示正确的金额。

我错过了什么吗?我还在学习正确的查询方式。

第一个代码:

<?php
session_start();
$conn = new mysqli ('localhost', 'root', '', 'dashboard');

$stddboard = $conn ->query ("SELECT (SELECT COUNT(*) FROM student) + (SELECT 
COUNT(*) FROM employer) FROM dual");
$totstddboard = mysqli_num_rows($stddboard);
?>

<?php echo mysqli_num_rows($stddboard) ?>

第二个代码:

<?php
session_start();
$conn = new mysqli ('localhost', 'root', '', 'dashboard');

$stddboard = $conn ->query ("SELECT  ( (SELECT COUNT(*) FROM student) + 
      (SELECT COUNT(*) FROM employer) 
     ) AS 'Column' ");
$totstddboard = mysqli_num_rows($stddboard);
?>

<?php echo mysqli_num_rows($stddboard) ?>

1 个答案:

答案 0 :(得分:1)

mysqli_num_rows返回返回的行数。 count()函数返回1行,其中包含匹配行的计数。所以你真正需要做的是fetch你的结果对象。对于代码块1,您可以使用:

<?php
session_start();
$conn = new mysqli ('localhost', 'root', '', 'dashboard');

$stddboard = $conn ->query ("SELECT (SELECT COUNT(*) FROM student) + (SELECT 
COUNT(*) FROM employer) as da_count FROM dual");
$row = $result->fetch_array(MYSQLI_ASSOC);
$totstddboard = $row['da_count'];
echo $totstddboard;
?>