PHP MySQL - whileループで返された複数の選択クエリ

私は次のコードを歴史的にはうまくいきましたが、今度はもう一度情報を収集してwhileループ(つまり$ row2)に戻すために3番目のselect文を追加したいと考えています。 これを行う方法はありますか、それを動作させるためにコードを完全に再ハッシュする必要がありますか?

いかなる助けや指導も感謝して受け取ります。現在のコードは以下の通りです:

mysql_select_db("jbsrint", $con);
$result = mysql_query("SELECT *, DATE_FORMAT(Date_Registered, '%d-%m-%Y') AS Date_Registered, DATE_FORMAT(Date_Last_MOT, '%d-%m-%Y') AS Date_Last_MOT,      DATE_FORMAT(Date_Last_Tax, '%d-%m-%Y') AS Date_Last_Tax FROM Veh_List ORDER BY ID DESC");
$DUE_DATES = mysql_query("SELECT *, DATE_FORMAT(MOT_DUE_DATE, '%d-%m-%Y') AS MOT_DUE_DATE, DATE_FORMAT(Date_Tax_Due, '%d-%m-%Y') AS Date_Tax_Due FROM due_dates ORDER BY ID DESC");
echo "<table border='1'>
<tr>
<th>Vehicle Reg</th>
<th>Vehicle Make</th>
<th>Vehicle Model</th>
<th>Vehicle Colour</th>
<th>Date Registered</th>
<th>Date Of Last MOT</th>
<th>MOT Due</th>
<th>Date Of Last Tax</th>
<th>Tax Due</th>
<th>Vehicle Driver</th>
<th>Vehicle Driver Tel</th>
</tr>";
while($row = mysql_fetch_array($result) and $row1 = mysql_fetch_array($DUE_DATES))
{
  echo "<tr>";
  echo "<td class=\"td1\">" . $row['Vehicle_Reg'] . "</td>";
  echo "<td >" . $row['Vehicle_Make'] . "</td>";
  echo "<td class=\"td1\">" . $row['Vehicle_Model'] . "</td>";
  echo "<td>" . $row['Vehicle_Colour'] . "</td>";
  echo "<td class=\"td1\">" . $row['Date_Registered'] . "</td>";
  echo "<td>" . $row['Date_Last_MOT'] . "</td>";
  echo "<td class=\"td1\">" . $row1['MOT_DUE_DATE'] . "</td>"; 
  echo "<td>" . $row['Date_Last_Tax'] . "</td>";
  echo "<td class=\"td1\">" . $row1['Date_Tax_Due'] . "</td>";
  echo "<td>" . $row['Vehicle_Driver'] . "</td>";
  echo "<td class=\"td1\">" . $row['Vehicle_Driver_Tel'] . "</td>";
}

echo "</tr>";
echo "</table>";
mysql_close($con);
?>
0

2 答え

各テーブルに対して個別のクエリを使用しないでください。代わりに、 JOIN を使用して、単一のクエリで複数のテーブルから関連するデータを取得する必要があります。

SELECT
    veh_List.col1,
    veh_List.col2,
    due_dates.col3,
    ...etc...
FROM veh_List 
JOIN due_dates ON veh_List.id = due_dates.id
-- add more joins here if you need data from more tables
ORDER BY veh_List.id DESC

INOER JOIN OUTER JOIN の違いを理解するなど、 JOIN キーワードとこれが提供するさまざまな可能性について学ぶ必要があります。

1
追加された
完璧なマーク...
追加された 著者 Fahim Parkar,

私は単純に別のステートメントを追加して、同じ方法で組み合わせることができると信じていますが、コードを変更してSQLクエリを1つにマージすることをお勧めします。

また、あなたのデータベース設計を見て - 期日と登録された車の間に1対1の関係はありますか?もしそうなら、なぜ2つのテーブルを一緒にマージしないのですか? (もちろん、選択クエリで使用している列のみが表示されます)。

さらに、レコードを突き合わせるために注文に頼るのはちょっと危険なようです。

0
追加された
PHP - 日本のコミュニティ [ja]
PHP - 日本のコミュニティ [ja]
4 参加者の

このグループではPHPについて話します。 パートナー:kotaeta.com