-3

ここに画像の説明を入力

このメッセージ システムを開始しました。上の画像では、Danny が 3 つのメッセージを送信し、Bibby が 2 つのメッセージを送信したことがわかります。でも名前は一度だけ表示したいので、基本的に名前はカテゴリーみたいなもので、名前をクリックするとその人からのメッセージが全部出てくるのでは?

前もって感謝します

4

3 に答える 3

3

データベースから一意のレコードを取得するには、2 つの方法があると思います。

一つは、DISTINCT

SELECT DISTINCT Name
FROM tableName

もう1つの方法は、GROUP BY

SELECT Name
FROM tableName
GROUP BY Name
于 2013-02-24T13:53:46.920 に答える
0

これを試して

  $sql = mysql_query("SELECT * dm WHERE torn='$session_rand' GROUP BY fromuser ");
  $count = mysql_num_rows($sql); 
  while($row = mysql_fetch_array($sql))
  { $sendername = $row["fromuser"]; 
    echo '<div class="eachuser" style="background-color:#FFF; margin-bottom:1px;  padding:7px; font-size:12px; text-align:center;"> ' .$sendername. ' </div>'; }
  • なぜあなたはclass="eachuser"インナースタイルを持っているのですか?

それらを置く

   background-color:#FFF; margin-bottom:1px;  padding:7px; font-size:12px; text-align:center;

クラスでeachuserそれらをdiv内から削除します

于 2013-02-24T14:15:36.510 に答える
-1

おそらくやりたいこと (データベース クエリを変更する @JW. の例に従いたくない場合) は、既に表示されている名前を格納するための配列を作成し、結果セットをループします。

// the result set coming from the database - all senders
$senders = array('danny', 'danny', 'danny', 'bibby', 'bibby', 'danny', 'bibby');
// the empty array to store the already displayed senders
$displayed = array();

// loop through each sender
foreach($senders as $sender) {
   // if the sender is not in the array (therefore not yet displayed)
   if(!in_array($sender, $displayed) {
      echo $sender . "<br />";
      $displayed[] = $sender;
   }
}

このループは、各名前を 1 回だけエコー バックする必要があります。

于 2013-02-24T14:05:00.557 に答える