2 SQL从数据库获取

时间:2019-02-01 02:30:34

标签: php sql

我的脚本有个小问题。

我有数据库数据。 但是我需要使用同一表中一个表中的数据。而且我不知道如何使其准确发挥作用,我尝试创建一些功能,但是他们将其写给了我。

$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"]; ?>
   } 
  }    
}
}

这不起作用。我知道如何解决。

有关如何做得更好的教程。

谢谢

2 个答案:

答案 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"]. ""?>

任何数据均不显示