[英]How to display value against foreign key from parent table?
我有2個桌子制造商和汽車。
制造商有2列該表的make_id和make.make_id用作外鍵
在cars table.cars表中有3列car_id,make_id,price。
現在,我想在maker表中顯示針對make_id的值。 現在它不顯示值,僅顯示id。
<?php
$conn=mysqli_connect("localhost","root","","practice");
if($conn-> connect_error){
die("Connection field:". $conn-> connection_error);
}$sql="SELECT car_id,make_id,price from cars ";
$result=$conn->query($sql);
if($result->num_rows>0){
while($row=$result->fetch_assoc()){
echo"<tr><td>".$row["car_id"]."</td><td>".$row["make_id"]."</td>
<td>".$row["price"]."</td></tr>";
}
echo"</table>";
}else {
echo"0 result";
}
$conn->close();
?>
將查詢更改為此:
$sql = "SELECT c.car_id, m.make, c.price
FROM cars AS c JOIN makers AS m ON c.make_id = m.make_id ORDER BY c.car_id";
您正在使用通過外鍵連接的兩個表(汽車和制造商)。 因此,您必須使用JOIN查詢從兩個表中選擇列,並將cars表上的外鍵映射到maker表上的主鍵(在您的情況下,cars表上的make_id和maker表上的make_id)都匹配使用ON關鍵字。
您的新代碼現在應如下所示:
<?php
$conn = mysqli_connect("localhost", "root", "", "practice");
if ($conn->connect_error) {
die("Connection field:" . $conn->connection_error);
}
$sql = "SELECT c.car_id, m.make, c.price FROM cars AS c JOIN makers AS m ON c.make_id = m.make_id ORDER BY c.car_id";
$result = $conn->query($sql);
if ($result->num_rows > 0) {
while ($row = $result->fetch_assoc()) {
echo "<tr><td>" . $row["car_id"] . "</td><td>" . $row["make"] . "</td> // Notice that I changed $row['make_id'] to $row['make']
<td>" . $row["price"] . "</td></tr>";
}
echo "</table>";
} else {
echo "0 result";
}
$conn->close();
?>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.