在mySQL中连接多个表

时间:2013-03-20 23:22:41

标签: php mysql

好的,我在mySQL上并不擅长。 我在这里要做的是加入2个表: 1. users 2. comments 我正在尝试建立一个评论系统,它应该从users表中提取用户名和个人资料图片,并从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

我该如何解决?感谢。

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

3 个答案:

答案 0 :(得分:3)

看看`符号,它们应该是这样的:

`table`.`column`

而不是:

`table.column`

答案 1 :(得分: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`以及几乎每个你做错的位置

答案 2 :(得分:0)

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

  

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

看起来后者发生了。发生错误,mysql_query调用返回false。