【问题标题】:Outputting a sub-query输出子查询
【发布时间】:2016-01-29 22:21:29
【问题描述】:
<!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 将其输出。我试过回显,但没有任何反应。这可能看起来很简单,但我还没有找到解决方案,请帮忙!

【问题讨论】:

  • 您使用的是 SQL 服务器?好像您使用的是 mysql,这些是不同的数据库。 mysql != sql server.
  • 您是否尝试过获取数据?您的echo 尝试在哪里?
  • $result = mysqli_query($myQuery); 您从未连接过,并且您缺少输出该代码的代码。
  • @chris85 OP 没有使用mysql_ 他们只是没有连接到他们的查询。我会给出一个答案,但其余的对我来说有点不清楚。我会传递这个。

标签: php mysql mysqli output


【解决方案1】:

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

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

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

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

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

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

【讨论】:

  • 其实我自己更喜欢这个解释 ;-)
【解决方案2】:

你在 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);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-01-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-12-11
    • 2012-01-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多