我正在玩mysql数据库,更具体地说是第一次使用关系表,我正在寻找一些指导。结构如下:
数据库:DV501(包含3个表(现在))
models01(保留每个车型并给他们一个id)
- model_id
- model_name
int01(保留零件,名称,价格等......)
- id
- part_no
- part_name
- part_cost
- part_total
等...
camry01(用作models01和int01中适合此车的部件之间的关系表)
- id
- model_id
- part_id
对于网页,我有一个带有包含汽车模型的下拉列表的表单,下拉列表中的每个汽车都有一个与数据库中的model_id相对应的值。凯美瑞的值为'1',model_id为'1',卡罗拉的值为'2',model_id为'2',等等......
当您提交表单时,它会将所选值存储在$ _SESSION ['selected_car']变量中以便稍后访问。
(这是我陷入困境的地方)
在提交表单后加载下一页时,它应该只显示表'int01'中适合存储在会话变量中的汽车的部分。
我正在使用下面的语句来工作,但是你可以看到我告诉它使用camry01表,因为我想动态地使用存储在$ _SESSION ['selected_car']中的值来选择正确的模型,并显示适合它的部分。
<?php
$servername = "localhost";
$username = "root";
$password = "root";
$dbname = "DV501";
// Create connection
$conn = mysqli_connect($servername, $username, $password, $dbname);
// Check connection
if (!$conn) {
die("Connection failed: " . mysqli_connect_error());
}
$sql = "SELECT camry01.model_id, camry01.part_id, int01.part_name, int01.part_no, int01.part_total
FROM camry01
LEFT JOIN int01 ON (int01.id = camry01.part_id)
WHERE (camry01.model_id = '1');";
$result = mysqli_query($conn, $sql);
if (mysqli_num_rows($result) > 0) {
// output data of each row
while($row = mysqli_fetch_assoc($result)) {
echo $_SESSION['selected_car'] . " - " . $row['part_name'] . " - Price: " . $row['part_total'] . "<br/>";
}
}
else {
echo "0 results";
}
mysqli_close($conn);
?>
非常感谢任何帮助。
答案 0 :(得分:0)
您可以从SESSION获取变量名称并将其绑定在查询中,以便您可以获取所需的结果。
$stmt = $conn->prepare("SELECT camry01.model_id, camry01.part_id, int01.part_name, int01.part_no, int01.part_total
FROM camry01 LEFT JOIN int01 ON (int01.id = camry01.part_id) WHERE (camry01.model_id = ?)");
$stmt->bind_param("i", $_SESSION[‘selected_car’]);
$stmt->execute();
$stmt->close();
$conn->close();