1

好吧,我不太擅长 mySQL。我在这里要做的是加入 2 个表: 1. users 2. comments 我正在尝试创建一个评论系统,它应该从表中提取用户名和个人资料图片,并从users表中提取评论和 date_posted comments

这是我的查询:

$mem_query = mysql_query("SELECT `comments`.`comment_id` AS `comments_id`, `users`.`user_id` AS `users_id`, `users`.`username`,`users`.`profile_pic`,`comments`.`txt_content`,`comments`.`date_posted` FROM `comments` INNER JOIN `users` ON `users`.`user_id` = `comments`.`user_id` WHERE `comments`.`post_id` = '$post_id'");

我想使用 while 循环运行查询:

while($run_mem = mysql_fetch_array($mem_query)){
    $comment_id = $run_mem['comments_id'];
    $txt_content = $run_mem['comments.txt_content'];
    $profile_pic = $run_mem['users.profile_pic'];

?>
    //Run all the comments depending upon the post_id.
<?php
        }
?>

截至目前,它给了我这个错误: - 这在我的第二次更新后没有显示。

Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given in C:\xampp\htdocs\simpleblog\view.php on line 73

我如何解决它?谢谢。

PS:我知道 'mysql_query' 在 PHP 中已被弃用。我稍后会改变它。PS 2:我将查询从 固定table.columntablecolumn,但是,它没有显示任何错误,但没有从数据库中提取任何信息。

4

3 回答 3

3

查看 ` 符号,它们应该如下所示:

`table`.`column`

并不是:

`table.column`
于 2013-03-20T23:30:43.900 回答
2

您的查询中有一个很大的语法错误:

SELECT `comments.comment_id` AS `comments_id`, `users.user_id` AS `users_id`, `users.username`,`users.profile_pic`,`comments.txt_content`,`comments.date_posted` FROM `comments` INNER JOIN `users` ON `users.user_id` = `comments.user_id` WHERE `comments.post_id` = '$post_id'

应该

SELECT `comments`.`comment_id` AS `comments_id`, `users`.`user_id` AS `users_id`, `users`.`username`,`users`.`profile_pic`,`comments`.`txt_content`,`comments`.`date_posted` FROM `comments` INNER JOIN `users` ON `users`.`user_id` = `comments`.`user_id` WHERE `comments`.`post_id` = '$post_id'

你写了这个:`comments.user_id` 但它必须是这个:`comments`.`user_id` 并且几乎在你做错的每个位置

于 2013-03-20T23:30:20.797 回答
0

http://www.php.net/manual/en/function.mysql-query.php

对于 SELECT、SHOW、DESCRIBE、EXPLAIN 和其他返回结果集的语句,mysql_query() 成功时返回资源,错误时返回 FALSE。

似乎发生了后者。发生错误,mysql_query 调用返回 false。

于 2013-03-20T23:27:56.337 回答