2014-07-24 2 views
0

AJAX를 사용하여 페이지를 채우는 PHP 파일을 만들었지 만 문제에 대한 해결책을 찾을 수 없습니다.PHP 배열을 AJAX에서 사용할 수 있도록 개선했습니다.

$result = mysql_query("SELECT id, product, picture FROM table1 ORDER BY id DESC"); 

$products = array(); 
while($product = mysql_fetch_array($result, MYSQL_ASSOC)) { 
    $products[] = ($product); 
} 

$json = json_encode($products); 
$output = isset($_GET['callback']) ? "{$_GET['callback']}($json)" : $json; 
echo $output; 

이 인쇄됩니다 :

[{"id":"5","product":"product5","picture":"picture5.jpg"}, 
{"id":"4","product":"product4","picture":"picture4.jpg"}, 
{"id":"3","product":"product3","picture":"picture3.jpg"}, 
{"id":"2","product":"product2","picture":"picture2.jpg"}, 
{"id":"1","product":"product1","picture":"picture1.jpg"}] 

는이 같은 출력 뭔가에 다른 쿼리를 사용하여이 출력의 필드 "IN_STOCK"를 추가 할

은 여기 내 PHP와 그 출력의 :

[{"id":"5","product":"product5","picture":"picture5.jpg","in_stock":"yes"}, 
{"id":"4","product":"product4","picture":"picture4.jpg","in_stock":"no"}, 
{"id":"3","product":"product3","picture":"picture3.jpg","in_stock":"yes"}, 
{"id":"2","product":"product2","picture":"picture2.jpg","in_stock":"yes"}, 
{"id":"1","product":"product1","picture":"picture1.jpg","in_stock":"no"}] 

내 질문은 : 배열의 값을 사용할 수 있습니다.) 다른 테이블에서 검색을 수행하려면이 값을 products 배열에 추가하고 위 출력에서 ​​동일한 "레이아웃"을 유지 하시겠습니까?

편집 :

이 내 테이블입니다 :

TABLE1 

id 
product 
picture 

그리고 두 번째 같은 제품은 사용자에 따라 다른 주식을 가질 수있다

TABLE2 

id 
user 
product_id 
in_stock 

...

+0

질문 할 수는 있지만 SQL 쿼리의 모든 데이터를 검색하지 않는 이유는 무엇입니까? –

+0

예. while 루프 내에서 단일 쿼리를 실행하여 다른 테이블을 만들고 새 쿼리의 배열 키를 수동으로 추가 할 수 있습니다. 하지만 원래 쿼리에 대한 조인이 더 효율적입니다. –

+2

재고가 다른 테이블에있는 경우 JOIN 절을 사용할 수 있습니다. http://dev.mysql.com/doc/refman/5.0/en/join.html – Gordnfreeman

답변

2

예, 다른 qu

mysql_query("SELECT table1.id, table1.product, table1.picture, table2.in_stock 
       FROM table1 
       LEFT JOIN table2 ON (table1.id = table2.product_id 
       AND table2.user = " . intval($_SESSION['user']) . ") 
       ORDER BY table1.id DESC"); 

편집 : 귀하의 코멘트 당 세션에서 사용자에 추가 ERY하지만, 아마도 다음과 같을 것이다 당신이 필요로하는 모든 데이터를 포함하는 첫 번째 쿼리를 변경할 수 더 의미가 있습니다. intval을 사용했는데, 이는 사용자의 ID에 정수를 사용한다고 가정하고 $ _SESSION 값이 어떻게 설정되었는지 알지 못합니다. 사용자 입력의 경우 이스케이프 처리해야합니다.

보조 노트로 mysql_query은 사용되지 않으며 mysqli과 준비된 문구를 살펴 봐야합니다.

+0

죄송합니다.이 두 번째 쿼리는 동적 두 번째 테이블은 로그인 한 사용자에 따라 동일한 제품에 대해 다른 값을 갖습니다. 예 : 사용자 : user1, 제품 : product.id, In_Stock : 예. – suicidebilly

+0

테이블 구조를 표시하면 두 번째처럼 쉽게 첫 번째 쿼리의 세션 값을 사용할 수 있습니다. – dave

+0

그냥 구조로 내 질문을 편집 – suicidebilly

관련 문제