输出子查询

时间:2016-01-29 22:21:29

标签: php mysql mysqli output

<!DOCTYPE html>
<html>
<?php
// Connecting to SQL server
$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "super_athletics";

// Creates connection
$conn = mysqli_connect($servername, $username, $password, $dbname);
// Check connection
if (!$conn) {
die("Connection failed: " . mysqli_connect_error());
} else {
    echo "Connected!";
}
echo "<br>";

// Sums upp all the points recieved by each student for specific school
$myQuery = "SELECT SUM(result_studpoints) AS total FROM result WHERE stud_id IN (SELECT stud_id FROM students WHERE stud_school = 'CCA')";
$result = mysqli_query($myQuery);

mysqli_close($conn);
?>
</html>

我遇到上述代码的问题是我无法输出$ myQuery。这是一个子查询,计算出特定学校的积分总和。子查询从学生表中选择所有前往特定学校的学生ID,在本例中为“CCA”,并使用id来总结从所收到的分数(从结果表中获得),这应该给出特定学校(CCA)的总积分。

子查询在sql上运行良好但我不能用php输出它。我试过回声但没有出现。这看似简单,但我还没有找到解决方案,请帮忙!

2 个答案:

答案 0 :(得分:2)

你所遵循的教程都不完整。或者你跳过了一堆东西,因为你认为没有必要。

代码中的一个问题是调用mysqli_query函数。该函数的第一个参数应该是连接:$conn

$result = mysqli_query($conn,"SELECT ... ");
                       ^^^^^^
发生错误时,

mysqli_query应评估为FALSE。否则,它将评估为TRUE。代码应该执行某种检查,并处理错误。这不一定是编码的最佳方式:

  if(!$result) {
    die("query execution failed");
  }

一旦代码确定$result是有效结果集的句柄,代码就可以“获取”结果。您可能希望重新阅读本教程,重点关注从结果集中检索行的部分。行的处理通常在循环中执行。

答案 1 :(得分:0)

你错过了mysqli_query中的连接而你没有获取数据

// Sums upp all the points recieved by each student for specific school
$myQuery = "SELECT SUM(result_studpoints) AS total FROM result WHERE stud_id IN (SELECT stud_id FROM students WHERE stud_school = 'CCA')";
$result = mysqli_query( $conn, $myQuery);
$data = mysqli_fetch_assoc( $result );
echo $data[ 'total' ];
mysqli_close($conn);