如何将从MySQL获取的数据作为JSON返回到php文件?

时间:2010-10-18 20:22:46

标签: php mysql ajax json combobox

我必须将从MySQL表中获取的数据作为JSON返回到php文件中。这是我的代码连接到mysql&从中获取数据。我现在怎么能把它作为JSON返回。

<?php
    $username = "user";
    $password = "********";
    $hostname = "localhost";    
    $dbh = mysql_connect($hostname, $username, $password) 
        or die("Unable to connect to MySQL");
    print "Connected to MySQL<br>";
    $selected = mysql_select_db("spec",$dbh) 
        or die("Could not select first_test");
    //$rows = array();  

    $query = "SELECT * FROM user_spec"; 
    $result=mysql_query($query);

    //mysql_close($dbh);
    ?>

Under是我必须实现的完整堆栈。对于第3步,我使用用户输入动态呈现列表,虽然它不使用任何引擎但直接使用输入值,所以我必须看到它在获取JSON数据后如何操作。我把堆叠放在一起,以便人们可以在可能帮助我时亲切地看到我必须做的事情。

  1. 用户加载HTML页面
  2. 页面进行ajax调用并将选项作为JSON获取(它已存在于数据库中,或者生成了新的选项集)
  3. 使用JS模板引擎(在我们的例子中为PURE)呈现json
  4. 用户更改内容
  5. 修改了相同的JSON并通过POST将其发送到服务器
  6. 服务器读取该JSON并将其存储在数据库中(您可以将数据写入您的文件)。然后返回到步骤4,等待另一个用户更改。

3 个答案:

答案 0 :(得分:3)

鉴于只返回了一行user_spec,您可以使用内置的json_encode函数:

<?php
$username = "user";
$password = "********";
$hostname = "localhost";    
$dbh = mysql_connect($hostname, $username, $password) 
    or die("Unable to connect to MySQL");

//print "Connected to MySQL<br>";

$selected = mysql_select_db("spec",$dbh) 
    or die("Could not select first_test");

$query = "SELECT * FROM user_spec"; 
$result=mysql_query($query);

echo json_encode(mysql_fetch_assoc($result));

?>

应该做的伎俩。

即使您使用的是旧版本的PHP,也可以在json_encode PHP手册页面的用户注释中找到合适的函数,以便在其中使用。

答案 1 :(得分:2)

我认为您所寻找的是json_encode

答案 2 :(得分:1)

除非你像我一样使用一个痛苦的旧版Symfony(为了你的缘故,我希望不是!)你的答案是json_encode Zend和CodeIgniter有类似的其他简单方法。

如果你没有足够的幸运能够访问它,你可以通过foreach循环手动构建它。

您可以使用JSONlint

检查您的JSON字符串