我想根据其他表中的外键显示与特定主键相关的记录。如何使用php?
在其他表中显示该主键的记录例如:
table1
primary key 1: plate#1
primary key 2: plate#2
primary key 3: plate#3
table2
primary key 1: destination|route|revenue|plate# 1
primary key 2: destination|route|revenue|plate# 3
table3
primary key 1: diesel price|number of liters|plate# 1
primary key 2: diesel price|number of liters|plate# 3
我已经创建了一个显示table1
中所有数据的页面。我希望在table1
和table2
中显示与table1
中的数据相关的数据,当我创建数据库时,他们已经彼此建立了关系。我的问题只是显示与table1
相关的记录。我想显示plate#1
的记录,plate#2
的其他记录,依此类推。
答案 0 :(得分:0)
您可能希望联系表格以获得最终结果。 Join允许您基本上将表合并在一起,并根据选择获得单个结果。谷歌php mysql连接表,看看一些例子。这是给你的一个:Join Tables
答案 1 :(得分:0)
这是一个粗略的例子:
<?php
$truck_id = mysql_real_escape_string($_GET['truck_id']);
$sql_PK = "SELECT * FROM table1 WHERE id = '{$truck_id}'";
$res_PK = mysql_query($sql_PK);
$row_PK = mysql_fetch_assoc($res_PK);
$truck_plate = $row_PK['plate'];
$truck_plate = mysql_real_escape_string($truck_plate);
$sql = "SELECT table2.plate, table2.destination, table2.route, table3.plate, table3.diesel_price, table3.num_of_liters FROM table2, table3 WHERE table2.plate = table3.plate AND table2.plate = '{$truck_plate}'";
$res = mysql_query($sql) or die(mysql_error());
$row = mysql_fetch_array($res);
// this will give you the details from the following
//TABLE2
// plate
// destination
// route
//TABLE3
// plate
// diesel_price
// num_of_liters
?>
要记住几件重要的事情。首先是习惯于在数据库中没有空格的情况下命名字段,而是使用_代替。所以柴油价格是diesel_price等。其次是确保你保护自己免受我在这里使用mysql_real_escape_string
所示的任何注射所以当有人点击truckdetails.php?plate = mrtchi时,它会根据牌号查询数据库:mrtchi