0

上記の正しい専門用語を使用したかどうかはわかりませんが、私がやろうとしていることは次のとおりです... $author に (mySQL ユーザーテーブルから) ユーザー名を出力させるにはどうすればよいですか?投稿の author_id は、ユーザー ID と一致しますか?

<?php 
include "inc/mysql-connect.php"; 
$DynamicFeed = "";
$sql = mysql_query("SELECT * FROM posts ORDER BY id DESC LIMIT 20");
$postCount = mysql_num_rows($sql); // count the output amount
if ($postCount > 0) {
  while($row = mysql_fetch_array($sql)){ 
    $id = $row["id"];
    $title = $row["title"];
    $post = $row["post"];
    $author_id = $row["author_id"];
    $author = $row["author_id"];
    $type = $row["type"];
    $date_posted = $row["date_posted"];
    $DynamicFeed .= "<div class=\"item\"><img class=\"img-type\" align=\"left\"       src=\"img/$type.jpg\"> <p><a href=\"droplet.php?id=$id\"><b>$title</b></a><br />by <a    href=\"profile.php?id=$author_id\">$author</a> on $date_posted<br /><br /> $post</p>    </div>";
}
} else {
$DynamicFeed = "It would appear that there ar'nt any Droplets here...";
}
?> 
4

3 に答える 3

1
mysql_query("SELECT posts.*, users.username FROM posts JOIN users ON author_id = users.id ORDER BY posts.id DESC LIMIT 20");
于 2013-08-20T09:03:05.787 に答える
0

私が正しく理解していれば、ユーザーテーブルを結合して、(while サイクルではなく) クエリで直接これを行う必要があります。

SELECT * FROM posts LEFT JOIN <user-table> ON <user-table>.id=author_id ORDER BY id DESC LIMIT 20"

次に、データを $row 配列で直接取得します。両方のテーブルに同じ列名がある場合は、エイリアスを追加する必要がある場合があります。

于 2013-08-20T09:06:46.663 に答える