我想每个只显示一个名字

时间:2013-02-24 13:51:24

标签: php mysql sql

enter image description here

我已经启动了这个邮件系统。在上图中你看到Danny给我发了3条消息,Bibby给我发了2条消息。但是我只想让名字显示一次,所以基本上名字就像一个类别,所以当我点击这个名字时,我会得到那个人的所有信息?

提前致谢

3 个答案:

答案 0 :(得分:3)

有两种方法,我认为,从数据库中检索唯一记录,

一个是使用DISTINCT

SELECT DISTINCT Name
FROM tableName

另一种方法是使用GROUP BY

SELECT Name
FROM tableName
GROUP BY Name

答案 1 :(得分: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中删除它们

答案 2 :(得分:-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;
   }
}

此循环应仅回显每个名称一次。