2017-07-01 67 views
0

我对PHP和SQL比较新,我为自己的页面创建了一个简单的博客工具,并且我一直在关注如何创建注释部分。 我有2个表 一般情况下,它包含了博客文章和其他信息 意见,其中包含注释使用PHP从2个表中选择数据

$servername = "localhost"; 
$username = "root"; 
$password = "password"; 
$dbname = "blog"; 
$conn = new mysqli($servername, $username, $password, $dbname); 
if ($conn->connect_error){ 
    die ("connection failed: " . $conn->connect_error); 
} 
$sql = "SELECT * FROM general WHERE hidden = 'false' ORDER BY id DESC"; 
$result = $conn->query($sql); 
if ($result->num_rows > 0){ 
    while ($row = $result->fetch_assoc()){ 
    echo "<div class='blogpost'> 
      <div class='blogbody'></div>"; 

    //I need to do a query into the comments table at this point to find 
    //all comments matching the criteria to be matched with the post here. 
    echo "<div class='comments'></div></div>"; 
    } 
} 
else{ 
    echo "no posts"; 
} 

我设法得到了相关博客文章的工作,但只要我尝试第二次查询中加入

$conn2 = new mysqli($servername, $username, $password, $dbname); 
if ($conn2->connect_error){ 
    die ("connection failed: " . $conn2->connect_error); 
} 
$sql2 = "SELECT * FROM comments WHERE $row["parent"] ORDER BY id DESC"; 
$result2 = $conn2->query($sql2); 
if ($result2->num_rows > 0){ 
    while ($row2 = $result2->fetch_assoc()){ 

    } 
} 
else{ 
    echo "no comments"; 
} 

这一切都只是打破。我无法投入循环,在开始加载其他帖子之前获取特定帖子的所有评论。

我该如何继续解决这个问题?我可能需要的任何代码示例中的注释一点spoonfeeding,

+0

这就是它打破:'其中$行[ “父母”] ORDER'。将其更改为'WHERE parent = {$ row ['parent']} ORDER'。我现在假设列名称为“parent” - 将其更改为实际的名称。 [它是引用语法错误的引号] – Jeff

+0

,但是为了简化阅读'加入' – Jeff

+0

和__allways__检查错误。在PHP和数据库(mysqli_error) – Jeff

回答

0

您可以使用后的主键,并且可以在注释表可以作为一个外键,这样就可以轻松地查询与将显示所有针对该特定职位的评论。那么该查询将是这样的:

$postid=$row['post_id']; 

$ SQL2 = “SELECT * FROM评论WHERE POST_ID = '$帖子ID' ORDER BY POST_ID DESC”;

0

更改第二个查询以解决问题。

WHERE $row["parent"] ORDER. Change that to WHERE parent={$row['parent']} ORDER 

感谢Jeff提供了这个答案