2012-06-30 89 views
-1

即時嘗試了一些新的東西,我正在使用PHP和Ajax來檢索多個數據到加載的HTML頁面的MySQL數據庫。我怎樣才能從MySQL與PHP jquery和Ajax多個值?

HTML:

<div id="name">Mark</div> 
<br/> 
<input id="realcost" value=""></input> 
<p id="size"></p> 
<div id="#desc">description</div> 

的Jquery:

function get() { 
$.getJSON('data.php', { 
    name: $("#name").text() 
}, function(data) { 
    $("input#realcost").val(data.cost); 
    $("p#size").text(data.size); 
    $("#desc").text(data.details); 
    'json' 
}); 
} 
get(); 

什麼劑量會從名稱的文本將它傳遞給data.php並檢索值#realcost,#size和#desc

PHP:

<?php 
mysql_connect("localhost", "username", "password"); 
$name = mysqul_real_escape_string ($_POST['name']); 
$cost = mysql_qery ("SELECT cost FROM list.itemlist WHERE name='$name'"); 
$size = mysql_qery ("SELECT size FROM list.itemlist WHERE name='$name'"); 
$details = mysql_qery ("SELECT details FROM list.itemlist WHERE name='$name'"); 
echo json_encode(array("cost" => $cost, "size" => $size, "details" => $details)); 

?> 

不知道爲什麼我無法檢索到這些感覺的數據。

+1

你有一個錯字。 'mysql_qery'應該是'mysql_query' – Engineer

+1

那可能是因爲你得到致命的php錯誤? 檢查您的功能名稱的拼寫:'mysql_query','mysqul_real_escape_string' - >'mysql_real_escape_string' –

+1

jQuery函數中的字符串「json」存在語法錯誤。它放錯了。 – Samson

回答

2

試試這個

<?php 
mysql_connect("localhost", "username", "password"); 
$name = mysql_real_escape_string ($_POST['name']); 
$query = "SELECT cost, size, details FROM list.itemlist where name='$name'"); 
$row = mysql_fetch_assoc(mysql_query($query)); 

echo json_encode(array("cost" => $row['cost'], "size" => $row['size'], "details" => $row['details'])); 

?> 
1

因爲您正在使用錯誤的函數'mysql_qery'。

看到這個:

ini_set("display_errors", true); 
mysql_connect("localhost", "username", "password"); 
$name = mysql_real_escape_string ($_POST['name']); 
$cost = mysql_query ("SELECT cost FROM list.itemlist WHERE name='$name'"); 
$size = mysql_query ("SELECT size FROM list.itemlist WHERE name='$name'"); 
$details = mysql_query ("SELECT details FROM list.itemlist WHERE name='$name'"); 
echo json_encode(array("cost" => $cost, "size" => $size, "details" => $details)); 

使用這種線,以保證錯誤會被顯示:

ini_set("display_errors", true); 

然後使用螢火蟲(附加組件Mozilla Firefox的),看你的PHP文件的輸出並檢查錯誤。

您在獲取數據方面存在一些錯誤。
看到這個功能,也許幫助...:

function getAllDATA($user, $pass, $host, $name = '') 
{ 
    $conn = mysql_connect($user, $pass, $host); 

    if (!$conn) 
     return false; 

    //@mysql_query("SET NAMES 'utf8' "); if you are using utf8 data 

    $dbName = "DatabaseName"); 
    if (!mysql_select_db($dbname)) 
     return false; 


    $data = array(); 

    $q = "SELECT cost FROM list.itemlist WHERE name='$name'"; 

    //echo $q; 

    $result = mysql_query($q); 

    //echo mysql_error(); 

    while($row = mysql_fetch_assoc($result)) 
     $data[] = $row; 

    mysql_close($conn); 

    self::$data = $data; 

    return $data; 
} 
+0

你沒有修復所有的拼寫錯誤。 –

+0

您還有一個語法錯誤「mysqul_real_escape_string」 – Kris

+0

@d_inevitable是的,tnx很多... –

2

有與該代碼這麼多的錯誤,這是很難看到哪裏開始。

但是,假設你在php文件中修復了你的語法錯誤,你實際上需要在進行sql查詢之後檢索行,例如$name_row = mysql_fetch_assoc($name);

我建議切換到PDO或mysqli。

當然,你可以在短短一個查詢的所有信息......