2010-10-18 95 views
2

我必須將從MySQL表中獲取的數據作爲JSON返回到php文件中。這裏是我的代碼連接到mysql &從它獲取數據。現在我怎麼能把它作爲JSON返回。如何將從MySQL獲取的數據作爲JSON返回到php文件?

<?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); 
    ?> 

下面是我必須實現的完整堆棧。對於第3步,我使用用戶輸入動態地呈現列表,儘管它不使用任何引擎,而是直接使用輸入值,所以我必須在看到JSON數據後才能看到它。我把堆放好,這樣你們可以好好地看到我可能幫助我時必須做的事情。

  1. 用戶加載HTML網頁
  2. 的頁面,從AJAX請求並獲得期權作爲JSON(也許是它在數據庫中已存在,否則會產生一個新的選項)
  3. 的JSON使用JS模板引擎(在我們的例子PURE)
  4. 用戶變化的東西
  5. 相同JSON被修改,並派出由POST到服務器呈現
  6. 服務器讀取JSON,並將其存儲在數據庫中(你會寫數據t你的文件)。然後回到步驟4,等待另一個用戶更改。

回答

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

除非你像我一樣使用Symfony的舊版本(爲了你的緣故,我希望不會!)你的回答是json_encode Zend和CodeIgniter有其他簡單的方法。

如果你沒有足夠的幸運來訪問它,你可以通過foreach循環手動構建它。

可以使用JSONlint