如何比较不同表中的两列

vq8itlhq  于 2021-06-20  发布在  Mysql
关注(0)|答案(2)|浏览(112)

这个问题在这里已经有答案了

php解析/语法错误;以及如何解决这些问题(18个答案)
两年前关门了。
嗨:)我为自己写了一些代码,我需要比较不同表中的两列。
我有一张table blog_postspostID 我有 table blog_comment 有也有 postID .
我写了这样的开始:

<?php
$stmt2 = $db->prepare('SELECT comment_sender_name, comment_date, comment 
                       FROM blog_posts, blog_comment 
                       WHERE blog_posts.psotID = blog_comment.postID');
$stmt2->execute(array(
    ':comment_sender_name' => $comment_sender_name,
    ':comment_date' => $comment_date,
    ':comment' => $comment
));
if ($row['blog_posts.psotID'] == $row['blog_comment.postID']) {
    echo '<p>' . $comment_sender_name . '</p>';
    echo '<p>' . $comment_date . '</p>';
    echo '<p>' . $comment . '</p>';
} else ($row['blog_posts.psotID'] == '') {
    header('Location: ./');
    exit;
}
?>

这就是我得到的错误:
分析错误:语法错误,第12行的/home/pomarex1/domains/dev.automax-rent.eu/public\u html/comments-loop.php中出现意外的“{”

bihw5rsg

bihw5rsg1#

这是从两个不同的表中获取数据的代码,您可以对它们进行比较。这里我使用了pdo方法

<?php
    require_once('init.php');
    $con = $db->prepare("SELECT * FROM blog_posts");
    $con->execute();
    $con2 = $db->prepare("SELECT * FROM blog_comment");
    $con2->execute();
    while(($post_row = $con->fetch(PDO::FETCH_ASSOC)) && ($comment_row = $con2->fetch(PDO::FETCH_ASSOC))){
            if($post_row['postID'] == $comment_row['postID']){
                echo $post_row['postID'];
        }
    }

?>
d6kp6zgx

d6kp6zgx2#

我可以在您的代码中看到两个错误(如果这不是打字错误):-
在您编写“where blog\u posts.psotid=blog\u comment.posted”的查询中,应该是“blog\u posts.posted”,而不是“blog\u posts.psotid”,因为psotid不是表中的字段。
就像别人说的,你的其他人错了,要么你写
else{头('位置:./');退出;}

else if($row['blog_posts.psotID'] == ''){
    header('Location: ./');
    exit;
}

第三,我建议编写一个内部连接查询,而不是直接调用数据。

相关问题