我的脚本有个小问题。
我有数据库数据。 但是我需要使用同一表中一个表中的数据。而且我不知道如何使其准确发挥作用,我尝试创建一些功能,但是他们将其写给了我。
$sql = "SELECT header,text,user_id FROM posts";
$result = $con->query($sql);
if ($result->num_rows > 0) {
while($row = $result->fetch_assoc()) {
<? echo $row["text"]; ?>
}
}
此代码有效 但是,当我再次将其放入其中以找出用户名时,它不会
$sql = "SELECT header,text,user_id FROM posts";
$result = $con->query($sql);
if ($result->num_rows > 0) {
while($row = $result->fetch_assoc()) {
<? echo $row["text"]; ?>
$sql = "SELECT name FROM users WHERE id='$row["user_id"]'";
$result = $con->query($sql);
if ($result->num_rows > 0) {
while($row = $result->fetch_assoc()) {
<? echo $row["name"]; ?>
}
}
}
}
这不起作用。我知道如何解决。
有关如何做得更好的教程。
谢谢
答案 0 :(得分:2)
最简单的方法是在第一条语句中联接表:
$sql = "SELECT header,text,user_id,name FROM posts p LEFT JOIN users u ON u.id = p.user_id";
$result = $con->query($sql);
if ($result->num_rows > 0) {
while($row = $result->fetch_assoc()) {
echo $row["text"];
}
}
您还应该了解有关Joins的知识。 正如@TimBiegeleisen所说,使用prepared statements
答案 1 :(得分:0)
我尝试了这个但没有用..
$sql = "SELECT id,header,text,author,u.username as autorname FROM posts p LEFT JOIN users u ON u.username = p.author";
$result = $con->query($sql);
<? echo "" . $row["autorname"]. ""?>
任何数据均不显示