2013-03-19 1 views
-1

도움말 및 테이블 mysql을 가입 그들은 모두 공유 주문 IDINNER 메신저 현재이 개 MySQL의 테이블 "순서"와 "order_items"에서 정보가있는 테이블을 만들려고 노력

위해

http://gyazo.com/b5761696c5650d0f24d883fd914f3564.png

order_items로

enter image description here

나는 같은에서 제품 이름이 같은 테이블을 표시 할 루프를 취할 것 행은 어쩌면

enter image description here

내가 내부에이 일을 메신저

을하는 것이로 더 마크에 가입하려면 내가 순간 순간하지만 나던 일에있을 것입니다

$query = "SELECT order.date_bought, order.total_price, order_items.product_name FROM order INNER JOIN order_items ON order.order_id = order_items.order_id WHERE order.student_id = $id ORDER BY order_id DESC"; 

$result = mysql_query($query); 

$num = mysql_num_rows($result); 

$i=0; 

while($i < $num){ 
$date_bought = mysql_result($result,$i,"date_bought"); 

echo $date_bought; 

} 

오류 : mysql_num_rows도가() 매개 변수 (1) 자원이 될 것으로 예상, 부울

을 부여하지만, 그 때문에 꽤 확실 메신저 쿼리

+3

그러나 당신의 테이블은 모두 동일합니다! – mavili

+0

order_items 구조체를 수정하십시오. –

+0

죄송합니다. 이미지가 잘못되었습니다. – user2146226

답변

2

order 예약어, 그것은 탈출 :

SELECT 
    o.order_id, 
    o.date_bought, 
    o.total_price, 
    oi.product_name 
FROM `order` AS o 
INNER JOIN order_items AS oi ON o.order_id = oi.order_id 
WHERE o.student_id = $id 
ORDER BY o.order_id DESC; 

시도를이 이름을 방지하기 위해. 당신이 각 주문에 대해 동일한 행에서 제품 이름을 표시 GROUP_CONCAT 기능을 사용하려면


:

SELECT 
    o.order_id, 
    o.date_bought, 
    o.total_price, 
    GROUP_CONCAT(oi.product_name SEPARATOR ' ') AS ProdcutNames 
FROM `order` AS o 
INNER JOIN order_items AS oi ON o.order_id = oi.order_id 
WHERE o.student_id = $id 
GROUP BY o.order_id, 
     o.date_bought, 
     o.total_price 
ORDER BY o.order_id DESC; 
+0

여전히 오류가 발생합니다. 경고 : mysql_num_rows()는 매개 변수 1이 리소스 일 것으로 예상하고, 부울은 주어진 것입니다. 아마 php가 틀린가요? 또는 무언가가 검색되는 경우 어떻게 테스트 할 수 있습니까? – user2146226

+0

@ user2146226 SQL 오류를 시도하십시오. MySQL 또는 phpadmin에서 직접 테스트 할 수 있습니다. –

+0

완료. 나는 이드를 concatanate시켜야했다, 고맙다. atm 내 루프가 잘못되었으므로 10 억 회 동일한 날짜를 표시합니다. 아픈 경우 테이블에 표시하는 방법을 알아 내려고 나중에 새로운 질문을합니다. 도와 주셔서 감사합니다 – user2146226

0

을 당신은 MySQL의에서 초보자를 참조하십시오. 사용해보기 :

SELECT * FROM order o INNER JOIN order_items oi ON o.order_id = oi.order_id WHERE order.student_id = $id GROUP BY o.order_id ORDER BY o.order_id DESC 

"그룹"은 결과를 복제하지 않습니다.

관련 문제