好的,我在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
修改为table
。column
,但是,它没有显示任何错误,但它没有从数据库中提取任何信息。
答案 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。