0
我目前正在创建一个菜单项,并且大部分它工作正常,但所提取的信息对于二级子菜单是不正确的(字母)。我已经尝试了很多不同的连接,但只是拉我的一个子菜单项或全部。不确定我现在需要做些什么来改变它的工作方式,而不确定如何更好地解释这个问题。如何从两个表中匹配来自表的外键与另一个主键的查询
至于我表
menu : columns id, name
people : id, people_name, href, menu_id
letters : id, letters_names, href, people_id
我的代码是在这里:
<?php
try{
$pdo = new PDO("mysql:host=localhost;dbname=menu",'root','');
} catch (PDOException $ex) {
echo $ex->getMessag();
}
$sql = "SELECT * FROM menu ORDER BY id";
$stmt = $pdo->prepare($sql);
$stmt->execute();
?>
<!DOCTYPE html>
<html>
<head>
<meta name="author" content="Kayla Lindstrom">
<title>Lindstrom Letters</title>
<!-- <link rel="stylesheet" type="text/css" href="style.css">-->
</head>
<body>
<div id="page">
<ul>
<?php while ($row = $stmt->fetch(PDO::FETCH_OBJ)) {
$sub_sql = "SELECT * FROM people WHERE menu_id=:id";
$sub_stmt = $pdo->prepare($sub_sql);
$sub_stmt->bindParam(':id', $row->id,PDO::PARAM_INT);
$sub_stmt->execute();
?>
<li><a href=""><?php echo $row->name; ?></a>
<?php if($sub_stmt->rowCount()){ ?>
<ul>
<?php while($sub_row = $sub_stmt->fetch(PDO::FETCH_OBJ)) {
$sub2_sql = "SELECT * FROM letters WHERE people_id=:id"; /*Here is where I am stuck.*/
$sub2_stmt = $pdo->prepare($sub2_sql);
$sub2_stmt->bindParam(':id', $row->id,PDO::PARAM_INT);/*and here*/
$sub2_stmt->execute(); ?>
<li><a href="<?php echo $sub_row->href; ?>">
<?php echo $sub_row->people_name;?></a>
<?php if($sub2_stmt->rowCount()){ ?>
<ul>
<?php while($sub2_row = $sub2_stmt->fetch(PDO::FETCH_OBJ)) { ?>
<li><a href="<?php echo $sub2_row->href; ?>">
<?php echo $sub2_row->letters_name;?></a></li>
<?php } ?>
</ul>
<?php } ?>
</li>
<?php } ?>
</ul>
<?php } ?>
</li>
<?php } ?>
</ul>
</div>
</body>
</html>
> _ <总是一次我偶然忽略的小事情。谢谢!有时候我只需要另一双眼睛就能看到我失踪的东西! – kll