2013-05-04 2 views
1

안녕 얘들 아, PHP MySQL의에서이 개 결과를 당깁니다.어떻게 AJAX 및 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)를 참조하십시오. 대신 [prepared statements] (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

+0

또한이 웹 사이트가 사출 공격에 취약하기 때문에 실제 웹 사이트가 아니기를 바랍니다. – Daedalus

+0

여러분은 여기에 작은 것들을 집어 넣었습니다. 코드에 대한 도움을 얻으 려하고 mysql_real_escape_string을해야한다는 것을 알고 있습니다. 나는 정상적인 MySQL을 사용하고있다. –

답변

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 (두 번째 결과는 두 번째 결과입니다. 이리); –

+0

@EddyBlackpool 당신이 준 json으로, 두 번째 결과가 없습니다. 말할 것도없이, 사용했던 SQL을 사용하면, 여러 레코드에 동일한 주문 ID를 부여하지 않는 한 거기에는 없을 것입니다.테이블 구조 정보와 예제 데이터가 없으면 여기 어두운 곳에서 촬영하고 있습니다. – Daedalus

+0

또한 내 결과에 대해 정의되지 않은 내용을 보여줍니다. –

관련 문제