while循环如何只回显一个值并根据echo一个休息

时间:2013-09-03 03:07:16

标签: php mysql

while($b = mysql_fetch_array($a)) {
echo "id event </br>".$b[id_event] ."</br>";
echo "id user </br>".$b[id_user] ."</br>";

它的输出  

3 - 32
3 - 36
4 - 32
4 - 36
我想让它显示一个事件id下的所有用户,比如

3 - 32, 36
4 - 32, 36

我试过了那个

while($b = mysql_fetch_array($a)) {if ($b['id_event'] != $current_event) { $current_event = $b['id_event']; echo '<br>' . $b['id_event'] . ' - ' . $b['id_user']; } else { echo ', ';}}

但它只为一个事件ID

选择了一个用户
 3 - 32, 
4 - 32, 

2 个答案:

答案 0 :(得分:2)

您可以将结果映射到中间列表以进行处理。

查看PHPFiddle:http://phpfiddle.org/main/code/evx-g61

$event_list = array();

while ($b = mysql_fetch_array($a)) {
    if (!array_key_exists($b["id_event"], $event_list)) {
        $event_list[$b["id_event"]] = array();
    }
    $event_list[$b["id_event"]][] = $b["id_user"];
}

foreach ($event_list as $event => $users) {
    echo "<span>$event - " . join(", ", $users) . "</span><br />";
}

答案 1 :(得分:0)

它工作正常但我在使用join命令时无法显示每个$用户的数据

foreach ($event_list as $event => $users) {
echo "<span>$event - " . join( $users,"some data") . "</span><br />";}

是回声

3 - 36a32 
4 - 36a32

我正在等待

3 - 36a32a
4 - 36a32a