私はphp/sqlで、ユーザーが販売したいアイテムを投稿できるWebアプリケーションを開発しています(ebayのようなものです)。非会員がアイテムについてコメントしたり、アイテムについて質問したりできるようにしたい.
私の問題は、Facebook の壁が機能するのと同じように、各アイテムとそのアイテムに関するコメント/クエリを表示したいということです。
各項目に「コメントを追加」(もしあれば) したい。コメント テーブルは、列 item_id を介してアイテム テーブルにリンクされています。そして、items テーブルは列 user_id を介して users テーブルにリンクされています。アイテムの詳細を表示するアイテム テーブルと結合されたユーザー テーブルを残しました。結合された 3 つのテーブルがあるように、コメント テーブルも結合しようとしました。
各テーブルに複数のエントリがあるにもかかわらず、コメントが表示されず、1 つの項目しか表示されないため、これは失敗します。これが私が使用しているコードです。
$database->query
('
SELECT sale.*, query.*, users.id AS userid, users.username as user
FROM sale
LEFT JOIN users ON sale.user_id = users.id
LEFT JOIN query on sale.id = query.item_id
where category = "$category" ORDER BY sale.id DESC
');
$show = " "; //variable to hold items and comments
if ($database->count() == 0) {
// Show this message if there are no items
$show .= "<li class='noitems'>There are currently no items to display.</li>" ;
} else {
$show .= "<li>";
while ( $items = $database->statement->fetch(PDO::FETCH_ASSOC) )
{
$show .= "
//show item details in html
";
while( $query = $database->statement->fetch(PDO::FETCH_ASSOC) )
{
$show .= "
//show queries below item details
";
}
$show .= "</li>" ;
}