输出子查询
Outputting a sub-query
<!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。这是一个子查询,用于计算特定学校的分数总和。子查询从学生 table 中选择所有去特定学校的学生 ID,在本例中为 'CCA',并使用 ID 来总结分数(从结果 table) 收到,应该给出特定学校 (CCA) 的总分。
子查询单独在 sql 上运行良好,但我无法使用 php 输出它。我试过回应,但没有任何反应。这看起来很简单,但我还没有找到解决办法,请帮忙!
要么您遵循的教程非常不完整。或者你跳过了一堆东西,因为你认为没有必要。
代码中的一个问题是对 mysqli_query
函数的调用。该函数的第一个参数应该是连接:$conn
.
$result = mysqli_query($conn,"SELECT ... ");
^^^^^^
当发生错误时,mysqli_query
应评估为 FALSE。否则,它将评估为 TRUE。代码应该执行某种检查,并处理错误。这不一定是最好的编码方式:
if(!$result) {
die("query execution failed");
}
一旦代码确定 $result
是有效结果集的句柄,代码便可以 "fetch" 结果。您可能想重新访问教程,重点关注有关从结果集中检索行的部分。行的处理通常在循环中执行。
您在 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);
<!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。这是一个子查询,用于计算特定学校的分数总和。子查询从学生 table 中选择所有去特定学校的学生 ID,在本例中为 'CCA',并使用 ID 来总结分数(从结果 table) 收到,应该给出特定学校 (CCA) 的总分。
子查询单独在 sql 上运行良好,但我无法使用 php 输出它。我试过回应,但没有任何反应。这看起来很简单,但我还没有找到解决办法,请帮忙!
要么您遵循的教程非常不完整。或者你跳过了一堆东西,因为你认为没有必要。
代码中的一个问题是对 mysqli_query
函数的调用。该函数的第一个参数应该是连接:$conn
.
$result = mysqli_query($conn,"SELECT ... ");
^^^^^^
当发生错误时,mysqli_query
应评估为 FALSE。否则,它将评估为 TRUE。代码应该执行某种检查,并处理错误。这不一定是最好的编码方式:
if(!$result) {
die("query execution failed");
}
一旦代码确定 $result
是有效结果集的句柄,代码便可以 "fetch" 结果。您可能想重新访问教程,重点关注有关从结果集中检索行的部分。行的处理通常在循环中执行。
您在 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);