-1

这是中的值$result

  • 身份证名称
  • 1个
  • 2 乙
  • 2℃
  • 2天
  • 3e

..

我正在使用 mysql_fetch_array() 创建一个循环函数

while($row = mysql_fetch_array($result)) {
    $temp_id = $row['id'];

    while($temp_id == $row['id']) {
         if($temp_id == $row['id']) {
              mysql_fetch_array($result);
         }
         $temp_id = $row['id'];
         echo $row['name'].",";

    }
    echo "<br/>";
}

这可行,但问题是,mysql_fetch_array 在 id 的转换过程中会跳转到其中一个值。

我希望 this 的值是这样的

a
b,c,d
e

我的问题是,是否有一个简单的倒带功能只会在行中步进一次?我已经搜索过,mysql_data_seek()但我认为这需要额外$i的控制变量,比如定位地址..

谢谢..任何建议和功能示例都会非常棒!

4

2 回答 2

1

使用mysql_fetch_array第一个循环来创建行数组。然后,遍历行本身。

根据对您问题的更新,您似乎希望GROUP_CONCAT在查询中使用,但您仍然可以在 PHP 中执行此操作:

$rows = array();
while($row = mysql_fetch_assoc($result)) {
    if (!isset($rows[$row['id']]) {
        $rows[$row['id'] = array();
    }
    $rows[$row['id']][] = $row['name'];
}
foreach ($rows as $row) {
    echo implode(',', $row) . "<br>";
}
于 2013-04-25T04:47:49.310 回答
0

试试这个代码

while($row = mysql_fetch_array($result)) {
    $temp[$row['id']][] = $row['name'];
}
foreach($temp as $row) {
    echo implode(',', $row) . '<br/>';
}
于 2013-04-25T05:02:27.247 回答