我正在使用HTML,CSS,PHP和MySQl创建类似于系统的博客。 该网站由三个表组成。
用户( ID ,用户名,密码,电子邮件)
帖子( postid ,标题,帖子)
评论( postid , id ,评论,commentid)postid来自帖子和来自用户的ID。
我正在尝试显示所有评论以及将其留给某个帖子的用户用户名。
当我在phpmyadmin中使用此查询时: SELECT user.username,comments.comment FROM user INNER JOIN对user.id = comments.id的评论,其中postid = 1
它显示了我需要的东西。
当我将它添加到php时,我会得到一个空白页面。
<?php
//echo "1";
session_start();
$connect = mysql_connect('localhost', 'root', 'root') or die("Couldn't connect");
mysql_select_db("com541blog") or die("Couldn't connect to database");
//echo "2";
//$postid = $_GET['type'];
$_SESSION['postid'] = $postid;
//echo "3";
$query_comments = mysql_query("SELECT user.username as username, comments.comment as comment FROM user INNER JOIN comments on user.id=comments.id WHERE postid='1'");
$info = mysql_fetch_array($query_comments);
$username = $info['username'];
$comment = $info['comment'];
echo $username;
echo $comment;
?>
提前感谢您的帮助:)
答案 0 :(得分:2)
您没有执行任何查询。
$rs = mysql_query($query_comments);
$info = mysql_fetch_array($rs);
答案 1 :(得分:1)
您需要在PHP中指定mysql_query
...否则您的查询将无法执行
喜欢:
$query_comments = mysql_query("SELECT user.username, comments.comment FROM user INNER JOIN comments on user.id=comments.id where where postid=1");
答案 2 :(得分:1)
你的第一行有一个我怀疑的错误,即在'connect'的末尾附近缺少'c'。
include("db_connet.php");
应为include("db_connect.php");
此外,缺少分号;
。这样:
$query_comments = ("SELECT user.username, comments.comment
FROM user INNER JOIN comments on user.id=comments.id
where postid=1")
应阅读:
$query_comments = ("SELECT user.username, comments.comment
FROM user INNER JOIN comments on user.id=comments.id
where postid=1");
另外,使用表名(例如user.username
)对每个列名进行限定也不错。但您可能更喜欢使用表别名的以下更简洁的语法:
$query_comments = ("SELECT u.username, c.comment
FROM user u INNER JOIN comments c on u.id = c.id
where c.postid = 1");
(注意表别名不需要是单个字母,因此可以方便地将表名称(例如“ManufacturerSuppliedPartsListData_Feb01”)减少到例如“mpl”,而不会失去其意义。或者,例如,如果你有“客户”和“信用”而不仅仅是“c”,您可以使用例如“cust”和“cred”)