[英]PHP for loop on sql results
我目前正在為一個學校項目工作。 我有2個SQL表和一個連接兩個表。 表1包含人員,表2包含卡。 連接表包含一個主鍵和2個值。 價值是一個人的主鍵,另一個是汽車的主鍵。 這張桌子將人與汽車連接起來。 這樣,我可以在PHP中創建一個表格,在其中可以看到誰擁有汽車。
這可以正常工作,但是每個擁有多輛汽車的人都會顯示多次。 因此,例如:第一個人同時擁有第一和第二輛汽車。 現在,該表顯示了2個人的名字,並在其名字后面顯示了汽車。 我希望只顯示一張表,上面有這些人的名字,然后在后面有一輛或多輛汽車。
以下是我現在設置方式的示例:
$query = "SELECT firstname, lastname, car FROM people, cars, connecttabel
WHERE connecttabel.personnumber = people.personnumer
AND connecttabel.carnumber = cars.carnumber";
$result = mysqli_query($database, $query)
or die ("error");
echo "<table>";
while($record=mysqli_fetch_array($result))
{$firstname = $record['firstname'];
等等。 使用變量,我填寫表格。
有誰知道如何在這里幫助我? 我認為應該使用for循環來完成,但是最近3個小時我一直在嘗試,但無法完成。
我假設您的查詢返回的內容如下:
| first_name | last_name | car |
+------------------------------------------+
| John | Doe | Mustang |
| John | Doe | Camaro |
| John | Doe | SL55 |
| Jane | Deo | Prius |
| Jane | Deo | Renegade|
如果您只想要每個人擁有的汽車數量,則可以嘗試:
SELECT firstname, lastname, COUNT(car) FROM people, cars, connecttabel
WHERE connecttabel.personnumber = people.personnumer
AND connecttabel.carnumber = cars.carnumber GROUP BY firstname, lastname;
這將為您提供:
| first_name | last_name |COUNT(car)|
+-------------------------------------------+
| John | Doe | 3 |
| Jane | Deo | 2 |
但是如果您想要類似...
| first_name | last_name | car_list |
---------------------------------------------------------+
| John | Doe | Mustang, Camaro, SL55 |
| Jane | Deo | Renegade, Prius |
您可以使用Group Concat :
SELECT firstname, lastname, GROUP_CONCAT(DISTINCT car ORDER BY car) AS car_list FROM people, cars, connecttabel
WHERE connecttabel.personnumber = people.personnumer
AND connecttabel.carnumber = cars.carnumber GROUP BY firstname, lastname
$query = "SELECT firstname, lastname, car FROM people, cars, connecttabel
WHERE connecttabel.personnumber = people.personnumer
AND connecttabel.carnumber = cars.carnumber Group by people.id";
$result = mysqli_query($database, $query)
or die ("error");
echo "<table>";
while($record=mysqli_fetch_array($result))
{$firstname = $record['firstname'];
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.