0

HTML、CSS、PHP、MySQl を使ってブログのようなシステムを作っています。このサイトは 3 つのテーブルで構成されています。

ユーザー ( id、ユーザー名、パスワード、電子メール)
投稿 ( postid、タイトル、投稿)
コメント ( postidid、コメント、コメント ID) 投稿からの postid とユーザーからの id。

特定の投稿にコメントを残したすべてのコメントとユーザーのユーザー名を表示しようとしています。

phpmyadmin でこのクエリを使用する場合: SELECT user.username, comments.comment FROM user INNER JOIN コメントを user.id=comments.id where 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;

?>

助けてくれてありがとう:)

4

3 に答える 3

2

クエリを実行していません。

$rs = mysql_query($query_comments);
$info = mysql_fetch_array($rs);
于 2013-03-28T13:50:12.187 に答える
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");
于 2013-03-28T13:23:09.037 に答える
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");

(テーブル エイリアスは 1 文字である必要はないので、意味を失うことなく、"ManufacturerSuppliedPartsListData_Feb01" などのテーブル名を "mpl" などに短縮すると便利です。または、"Customers" がある場合"c" の代わりに "credit" を使用することもできます (例: "cust" や "cred")。

于 2013-03-28T13:26:11.947 に答える