是否需要从服务器检索数据的SQL数据库?

时间:2014-12-14 21:07:34

标签: php ajax json mysqli xmlhttprequest

抱歉,我是网络开发的新手。我最近一直在玩一些JSON对象,并且已经在W3school网站上使用了一些例子 - ' http://www.w3schools.com/json/json_example.asp。'

该示例从MYSQLi db中检索数据并将其注入JSON对象。我一直在使用这个例子创建一个动态网站,但我的问题是我不确定你是否需要数据库来存储数据。可以直接从服务器检索JSON对象吗?

服务器的响应被解析为JSON对象。即var = JSON.parse(响应)

<!DOCTYPE html>

<html>

<head>

<title>XMLHTTPREQUESTEXAMPLE</title>

</head>

<body>

<p id="id01"></p>

<script>

var xmlhttp = new XMLHttpRequest();

var url = "//http:URL";

xmlhttp.onreadystatechange=function() {

    if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {

        myFunction(xmlhttp.responseText);

    }else{

                    document.getElementById("id01").innerHTML = "Server not responding";

                }

}

xmlhttp.open("GET", url, true);

xmlhttp.send();



function myFunction(response) {

    var arr = JSON.parse(response);

    var i;

    var out = "<table><tr><th>Name</th><th>Job Title</th><th>Room No</th><th>Tel Ext</th><th>Email</th></tr>";



    for(i = 0; i < arr.length; i++) {

        out += "<tr><td>" + 

        arr[i].Name +

        "</td><td>" +

        arr[i].JobTitle +

        "</td><td>" +

        arr[i].RoomNo +

        "</td></tr>"

                                arr[i].TelExt +

        "</td></tr>"

                                arr[i].Email +

        "</td></tr>";

    }

    out += "</table>"

    document.getElementById("id01").innerHTML = out;

}

</script>

</body>

</html>

来自W3学校站点的服务器上的示例php脚本。     

$conn = new mysqli("myServer", "myUser", "myPassword", "Northwind");

$result = $conn->query("SELECT CompanyName, City, Country FROM Customers");

$outp = "[";
while($rs = $result->fetch_array(MYSQLI_ASSOC)) {
    if ($outp != "[") {$outp .= ",";}
    $outp .= '{"Name":"'  . $rs["CompanyName"] . '",';
    $outp .= '"City":"'   . $rs["City"]        . '",';
    $outp .= '"Country":"'. $rs["Country"]     . '"}'; 
}
$outp .="]";

$conn->close();

echo($outp);
?>

3 个答案:

答案 0 :(得分:0)

我认为最合适的问题是,#34;此类数据/应用程序需要数据库吗?&#34;或者,&#34;我应该将db用于此类应用吗?&#34;从技术上讲,不,你不需要一个数据库来存储和检索来自服务器的信息,但是根据你想要实现的目标,数据库可能是最明智的解决方案。

答案 1 :(得分:0)

你试过json_encode($value)吗? http://php.net/manual/en/function.json-encode.php

这将数组编码为json对象,当然 - 您可以将json数据存储在任何类型的文件中,而不仅仅存储在数据库中

答案 2 :(得分:0)

该示例使用MySQL数据库来检索数据,但您可以简单地回显您自己的数据,以便使用JSON示例来测试您的AJAX:

<?php

$array = array(
"Key" => "value",
"Foo" => "Bar"
);

$jsonData = json_encode($array);

echo ($jsonData);

?>

然后,您可以通过执行以下操作检索Javascript myFunction中的值:

arr.Foo; //would return Bar

数据库仅用于存储长期数据,本教程的功能部分不需要它。