3

私はこのクエリを持っています:

$result3 = mysql_query("SELECT posts.id, posts.date, posts.title, comments.post, comments.id, comments.date FROM posts, comments WHERE posts.id = comments.post")       
or die(mysql_error());  

while($row2 = mysql_fetch_array( $result3 )) {
    echo $row2['title'];
}

問題は、 posts.id 、 posts.date および comments.id 、 comments.date にあります。$row2['....];試した両方のテーブルのID、日付を取得するにはどうすればよいですか$row2['posts.id'];?

4

5 に答える 5

7

次のように、クエリの列に名前を付けます (これは列エイリアスと呼ばれます)。

SELECT 
    posts.id as postsID, 
    posts.date, 
    posts.title, 
    comments.post, 
    comments.id as CommentsID, 
    comments.date 
FROM 
    jaut_posts, 
    f1_comments 
WHERE 
    jaut_posts.id = f1_comments.post

次に、次を使用できます。

echo $row2['postsID'];
echo $row2['commentsID'];

編集:

多くの一般的な SQL クエリと要求について説明している、私が書いて回答したこの質問も役に立ちます。

于 2012-08-29T11:48:54.530 に答える
2

クエリでを使用asします。次のようなものです。

select post.id as PostId, comment.id as CommentId

その後 :

row["PostId"]
row["CommentId"]
于 2012-08-29T11:49:30.347 に答える
1
while($row2 = mysql_fetch_array( $result3 )) {
  $post_id = $row2[0];
  $posts_date = $row2[1];
  $posts_title = $row2[2];
  $comments_post = $row2[3];
  $comments_id = $row2[4];
  $comments_date = $row2[5];
}
于 2012-08-29T11:49:55.987 に答える
1

変化する

SELECT posts.id, posts.date, posts.title, comments.post, comments.id, comments.date

の中へ

SELECT posts.id AS postsid, posts.date, posts.title, comments.post, comments.id AS commentsid, comments.date

$row2['postsid'];次に、使用できます$row2['commentsid'];

于 2012-08-29T11:50:34.363 に答える
0

エイリアスを作成:

$sql = 'SELECT posts.id AS post_id, comments.id AS comment_id ...';

$row = mysql_fetch_assoc($sql);

echo $row['post_id'];
echo $row['comment_id'];

または、代わりに、インデックスでアクセスできます(mysql_fetch_arrayとにかく使用しているため)

echo $row[0]; // posts.id
于 2012-08-29T11:49:04.703 に答える