使用php显示我数据库中的相关记录

时间:2012-12-22 07:01:00

标签: php html mysql

我想根据其他表中的外键显示与特定主键相关的记录。如何使用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中所有数据的页面。我希望在table1table2中显示与table1中的数据相关的数据,当我创建数据库时,他们已经彼此建立了关系。我的问题只是显示与table1相关的记录。我想显示plate#1的记录,plate#2的其他记录,依此类推。

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