mysqli_fetch_assocを使用して、クエリの結果をページにエコーします。残念ながら、それは私に1対1の関係を与えています。MySQL PHPは会話のすべてのメッセージを親レコードでグループ化して表示します
Listing Name Thread ID Guest Name Sent by UserID Message
Spacious Bedroom 338082922 Daniel 43762688 I can't, I'm sorry. I won't even be around at the end of July.
Spacious Bedroom 338082922 Daniel 98936811 Are you willing to rent it out at the end of july
Spacious Bedroom 338082922 Daniel 43762688 Sorry, no room
Spacious Bedroom 338082922 Daniel 98936811 Hello, I'd like to stay Thanks -Dan
私は、スレッドID一度ゲスト名かつて一度リストの名前を表示し、次の2人のユーザー間の会話を表示したいと思います。ここでは
は、現在表示している方法ですそれ。
私は会話が上場、スレッドとゲストの下にグループ化することにしたいです。
<table>
<tr>
<th style="text-align: left; width: 300px;">Listing Name</th>
<th style="text-align: left; width: 100px;">Thread ID</th>
<th style="text-align: left; width: 100px;">Guest Name</th>
<th style="text-align: left; width: 100px;">Sent by User ID</th>
<th style="text-align: left; width: 300px;">Message</th>
</tr>
<?php while($message = mysqli_fetch_assoc($message_set)) { ?>
<tr>
<td><?php echo htmlentities($message["listingname"]); ?></td><td><?php echo htmlentities($message["thread_id"]); ?></td><td><?php echo htmlentities($message["guest_name"]); ?></td><td><?php echo htmlentities($message["sent_by"]); ?></td><td><?php echo htmlentities($message["msg_body"]); ?></td>
</tr>
<?php } ?>
</table>
私はおそらくテーブルを少し違うように設計しています。そのため、メッセージは外部キーとして「スレッドID」を持つ別のテーブルにあります。たぶん3つのテーブル、1つのリストが複数のスレッドを持つことができる場合。そう:リスト、スレッド、メッセージ。その後、スレッド(および上場)一度、その特定のスレッドのために、すべてのメッセージをつかむことができました。 – cjs1978
ネストされたループを使用する方法や、mysqlを使用して自身にテーブルを結合する方法はありませんか? – sjackson
結果をループしてメッセージを配列に格納し、最終的にその配列の内容を表示することができます(最初の結果行からリスト名などとともに、これらが完全に一致する場合) – cjs1978