2013-05-04 68 views
1

好傢伙,我需要以下幫助代碼,如何從拉PHP的MySQL 2個結果與AJAX和JSON

我試圖拉從MySQL PHP 2個不同的結果,使用JSON到阿賈克斯。

這是我目前所擁有的。

我可以拉1個表的信息,但不知道如何拉2個不同的結果。請幫幫我。

PHP文件

$id = $_POST["order"]; 

    $order = mysql_query("SELECT * FROM `orders` WHERE `order_id` = {$id} ORDER BY id DESC"); 

    $test_quote = mysql_query(" 
         SELECT paid 
         FROM `outstanding` 
         WHERE order_id = {$id} 
         "); 
    $array = array(); 

//pulling outstanding if product paid or not      
    if(mysql_num_rows($test_quote) > 0){ 
     $array[] = mysql_fetch_array($test_quote); 
    } 



    //pulling products 
    if (mysql_num_rows($order) > 0){ 

     while($row = mysql_fetch_array($order)){ 

      $array[] = $row; 

     } 



    } else { echo "<div style='font-size:12px;'>No orders yet</div>";} 

    echo json_encode($array); 

其拉1個查詢,但不能從php文件得到另一個查詢

jQuery的

  $.ajax({ 
       type: "POST", 
       url: "order_load.php", 
       data: {order : thisId}, 
       dataType:"json",  
       success: function(data){ 

        $.each(data, function(i, val){ 

         var append2 = '<div class="product">'; 
         append2 +='<div class="view_left2">'; 
         append2 +='<b>Item ID:</b> '; 
         append2 +='#'+val.id; 
         append2 +='</div>'; 
         append2 +='<div class="line"><img src="images/productLine.png" /></div>'; 
         append2 +='<div class="viewleft3">'+val.desc+'</div>'; 
         append2 +='<div class="right_order">'; 
         append2 +='<div class="line"><img src="images/productLine.png" /></div>'; 
         append2 +='<div class="view_right2">'; 
         append2 +='<div class="price3">$'+val.amount+'</div></div><div class="clear"></div></div>'; 
         append2 +='<div class="clear"></div></div>'; 
         $(".view_product2").append(append2); 
        }); 

這是我的JSON輸出:

[{"0":"1","paid":"1"},{"0":"336","id":"336","1":"1","qty":"1","2":"sdfgsdf","desc":"sdfgsdf","3":"yes","gst":"yes","4":"44","price":"44","5":"44.00","amount":"44.00","6":"225","order_id":"225"}] 
+1

請不要使用'mysql_ *'函數來編寫新代碼。他們不再被維護,社區已經開始[棄用流程](http://goo.gl/q0gwD)。看到[紅色框](http://goo.gl/OWwr2)?相反,您應該瞭解[準備好的語句](http://goo.gl/orrj0)並使用[PDO](http://goo.gl/TD3xh)或[MySQLi](http://php.net/ mysqli的)。如果你不能決定哪些,[這篇文章](http://goo.gl/YXyWL)會幫助你。如果你選擇PDO,[這裏是很好的教程](http://goo.gl/b2ATO)。另請參閱[爲什麼我不應該在PHP中使用mysql函數?](http://goo.gl/J5jAo) – Daedalus 2013-05-04 05:49:33

+0

另外,我真的希望這個網站不是活的,因爲它很容易受到注入攻擊。 – Daedalus 2013-05-04 05:49:49

+0

你在這裏挑選這麼小的東西的傢伙,我試圖獲得代碼的幫助,我知道我必須做mysql_real_escape_string。我正在使用普通的MySQL。 – 2013-05-04 05:52:42

回答

1

有sev你的代碼的東西錯誤。首先;你從返回的json中引用一個不存在的json屬性,.amount。我已將其更改爲.price以返回正確的結果。

其次..

您返回的json是一個對象數組。要訪問.paid屬性,您需要引用數組中的第一項,然後才能訪問並設置paid變量..這是您從不執行的操作。

var paid = data[0].paid; // set the paid variable per its placement in the json 

$.each(data, function (i, val) { 
    if (i != 0) { // check to make sure it isn't the first object of the array 
     var append2 = '<div class="product">'; 
     append2 += '<div class="view_left2">'; 
     append2 += '<b>Item ID:</b> '; 
     append2 += '#' + val.id; 
     append2 += '</div>'; 
     append2 += '<div class="line"><img src="images/productLine.png" /></div>'; 
     append2 += '<div class="viewleft3">' + val.desc + '</div>'; 
     append2 += '<div class="right_order">'; 
     append2 += '<div class="line"><img src="images/productLine.png" /></div>'; 
     append2 += '<div class="view_right2">'; 
     append2 += '<div class="price3">$' + val.price + '</div></div><div class="clear"></div></div>'; 
     //          ^use the correct json property to access the value. It is not amount. 
     append2 += '<div class="clear"></div></div>'; 
     $(".view_product2").append(append2); 
    } 
}); 
+0

val.amount是從我的數據庫和它的工作,但我不能得到第二個結果,我想第二個結果在$(「#div」)。html(第二個結果是這裏); – 2013-05-04 06:47:08

+0

@EddyBlackpool隨着你給我的json,沒有第二個結果。更不用說,用你使用的SQL,就不會有..除非是,你給多個記錄相同的訂單ID。沒有桌子結構信息和示例數據,我在這裏黑暗中拍攝。 – Daedalus 2013-05-04 06:48:04

+0

此外,它顯示我未定義所有我的結果 – 2013-05-04 06:49:44