在html中显示来自SQL数据库的数据:返回的数据对象为空

时间:2015-05-26 11:05:13

标签: php jquery html mysql sql

我想从我的SQL数据库中检索数据并在我的HTML页面上使用它。

我有一个像这样的PHP脚本get_score.php

<?php
$con = mysqli_connect( "localhost", "xxx1", "xxx2", "xxx3");
if (mysqli_connect_errno())
{
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
$sql = "SELECT `name`, `score` FROM crossstreet ORDER BY `score` DESC LIMIT 5";
if (!mysqli_query($con, $sql))
{
die('Error: ' . mysqli_error($con));
}
$result = mysqli_query($con, $sql);
while ($row = mysqli_fetch_assoc($result)) {
    $output = ($row["name"]);
}
mysqli_free_result($result);
echo json_encode($result);

mysqli_close($con);
?>

然后我想通过JQuery检索数据。我已经阅读了关于跨源问题,但我检索的数据和html / Jquery在同一台服务器上。

$.get("get_score.php", function( data ) {
  console.log(window[data]);
}, "json" );

返回undefined。如果我将其设为$(data),则会返回与此屏幕截图中的对象类似的对象。 enter image description here

我的错误在哪里;我怎样才能从服务器获取数据以在html中使用?

2 个答案:

答案 0 :(得分:2)

您需要使$output成为一个数组,以便获得所有行。

$output = array();
while ($row = mysqli_fetch_assoc($result)) {
    $output[] = $row['name'];
}

然后你应该回应一下:

echo json_encode($output);

在你的jQuery代码中,你应该console.log(data);

答案 1 :(得分:0)

mysqli_free_result($result);
echo json_encode($result);

我认为这是问题所在。 尝试颠倒顺序。在使用之前,您正在使结果自由。 这样做,而不是上述。

echo json_encode($result);
mysqli_free_result($result);