0

私の Web サイトでは、ウォールポスト ("users_wall") とフォロワー ("users_follow") 用のテーブルを使用しています。wallposts テーブルは次のようになります (多かれ少なかれ):

ID    NAME    USER_ID (the id of the wall it's posted on)   CONTENT
1     James     3                                             Hi!
2     Jim       3                                             Hey there!

フォロワー/フォローテーブルは次のようになります。

ID   HEFOLLOWS    THISGUY
1     James         Jim
2     Jim           James

これから作業テーブルのフィードを作成するにはどうすればよいですか? 私は現在フィードを持っていますが、投稿者ではなく、投稿の ID で並べ替える方法が見つかりませんでした。私は次のようになります:

James: Hey (15th)
James: Hi! (13th)

Jim:   Hi! (14th)

私がしたいとき:

James: Hey (15th)
Jim:   Hi! (14th)
James: Hi! (13th)

では、どうすればこれを行うことができますか?一般的な mysql/php 学習 Web サイトに誘導するのではなく、説明してください。

ありがとうございました :)

編集: これは、ニュース フィードの作成方法の基本的なバージョンです。

<?php
$getfollowing = mysql_query("SELECT * FROM users_follow WHERE hefollows = '$username'");
while ($row = mysql_fetch_assoc($getfollowing)){
  $followername = $row['thisguy'];
  $getposts = mysql_query("SELECT * FROM users_wall WHERE name = '$followername' SORT BY id DESC");
  while ($rows = mysql_fetch_assoc($getposts){
    $date = $rows['date']
    (...)
  ?>
  <div class="share">
    <?php echo($nameofposter); ?>
    <br />
    <?php echo($share_content); ?> ( <?php echo($date); ?> )
  </div>
  <?php
  }
  ?>

これにより、次のようになります。

<div class="share">
  James
  <br />
  Hey (15th)
</div>

<div class="share">
  James
  <br />
  Hi! (13th)
</div>

<div class="share">
  Jim
  <br />
  Hi! (14th)
</div>

James がデータベースの最初にあり、共有の ID ではなくフォロワー/フォローでソートされているためです。

4

1 に答える 1

1

日付フィールドを設定するか、タイムスタンプを使用して投稿を時系列に整理する必要があります。

[更新] ああ、問題は、結合ステートメントで実行する必要があるときに、while ループで何かを反復しようとしていることにあると思います。誰かに一般的な PHP ページにリンクしてほしくないのはわかっていますが、これは mysql ページであり、必要なものです。

http://dev.mysql.com/doc/refman/5.0/en/join.html

これを使用しようとするときは、作成したものを元に戻してください。それでも問題が解決しない場合は、トラブルシューティングをお手伝いします.

于 2012-08-08T12:57:59.140 に答える