簡體   English   中英

輸出子查詢

[英]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。 這是一個子查詢,可以計算出特定學校的分數總和。 子查詢從學生表中選擇去某所學校的所有學生ID(在本例中為“ CCA”),並使用該ID匯總接收到的分數(從結果表中獲得),從而得出特定學校(CCA)的總分。

子查詢僅在sql上運行良好,但無法用php輸出。 我試過了回聲,但沒有任何反應。 這看似簡單,但我尚未找到解決方案,請幫忙!

您所遵循的教程都不完整。 或者您跳過了一堆東西,因為您認為這不是必需的。

代碼中的一個問題是對mysqli_query函數的調用。 該函數的第一個參數應該是連接: $conn

$result = mysqli_query($conn,"SELECT ... ");
                       ^^^^^^

發生錯誤時, mysqli_query應評估為FALSE。 否則,它將評估為TRUE。 該代碼應執行某種檢查,並處理錯誤。 這不一定是編寫此代碼的最佳方法:

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

一旦代碼確定$result是有效結果集的句柄,則代碼可以“獲取”結果。 您可能需要重新訪問本教程,重點是有關從結果集中檢索行的部分。 行的處理通常在循環中執行。

您丟失了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);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM