2013-06-28 2 views
0

У меня есть три таблицы:Looping строки с таблицами отношения MySQL

дверей

ID | Name | Price | etc.

Панель

ID | Name

двери Отношения

door_id | panel_id

Я хотел бы, чтобы сформировать таблицу HTML/PHP с одной строки для каждой двери, которая показывает панель, связанную с ней:

Список двери

Name | Price | Panel | etc.

У меня возникли проблемы с написанием запроса MySQL для этого. Как мне следует запрашивать эту информацию из базы данных? Благодаря!

Что я пробовал:

<?php 
$catalog_query = mysqli_query($con,"SELECT * FROM door"); 


$panel_query = mysqli_query($con,"SELECT door.name as door, panel_profile.name as panel FROM door_relationship 
INNER JOIN door 
    ON door_relationship.doorid = door.door_id 
INNER JOIN panel_profile 
    ON door_relationship.panel_id = panel_profile.panel_id 
INNER JOIN door"); 


while($row = mysqli_fetch_array($catalog_query) and $row2 = mysqli_fetch_array($panel_query)) 
{ 
echo '<tr> 
      <td>' . $row['door'] . '</td> 
      <td>' . $row['description'] . '</td> 
      <td>' . $row['sqft_price'] . '</td> 
      <td>' . $row['door_price'] . '</td> 
      <td>' . $row2['panel'] . '</td> 
      <td>' . $row['joint'] . '</td> 
      <td>' . $row['collection'] . '</td> 
      <td>' . $row['min_sqft'] . '</td> 
      <td>' . $row['min_width'] . '</td> 
      <td>' . $row['min_height'] . '</td> 
      <td>' . $row['max_width'] . '</td> 
      <td>' . $row['max_height'] . '</td> 
     </tr>' 
     ; 
} 
?> 
+0

Вставить SQL вы пытаетесь – user20232359723568423357842364

ответ

0
SELECT d.Name, d.Price, p.Name, etc 

FROM Door d, Panel p, Door-Relationship DR 

WHERE d.id = dr.door_id and p.id = dr.panel_id; 
+0

Пожалуйста, не используйте синтаксис старого стиля, используйте ANSI join sy ntax. – Barmar

1

Это может помочь (не проверено):

SELECT 
    door.id AS door_id, 
    door.name AS door_name, 
    door.price AS door_price, 
    door.etc AS door_etc, 
    panel.id AS panel_id, 
    panel.name AS panel_name 
FROM door, panel 
INNER JOIN door_relationship 
    ON door_relationship.door_id = door_id 
    AND door_relationship.panel_id = panel_id 
+0

Как это получить имя панели, если таблица панели не вызывается? – izharbuen

+0

Извините - исправлено. , –

1

запрос должен быть:

select d.name doorName, p.name panelName, otherFields from Door d, Panel p, Door-Relationship r where p.id = r.panel_id and d.id = r.door_id group by d.id order by d.id asc