2012-10-06 178 views
1

我像ali,aliiii,asd一样通过回显$row['GROUP_CONCAT(mem_name)'];来了解结果。将逗号分隔的字符串转换为列表

我怎么能附和他们像一个列表,以便我可以点击功能添加锚标记etc.i有查询

$sql=mysql_query(" 
    SELECT cat_id, GROUP_CONCAT(mem_name) 
    FROM o_newcatmem GROUP BY cat_id 
"); 

我要到B显示的resuts这样的:

ali 
aliiii 
asd 
+5

合理的方法是将它们从数据库中选择为单独的值而不是单个连接的值。 – DCoder

+0

谢谢,我可以选择他们作为单独的值? –

回答

2

你有$string这样

$string = "ali,aliiii,asd"; 
echo "<pre>"; 

你有三种选择:

  1. 可以使用explode

    $list = explode(",", $string); 
    echo implode("\n", $list); 
    
  2. 使用使用str_getcsv到CSV字符串转换为数组

    $list = str_getcsv($string); 
    foreach ($list as $var) { 
        echo $var, "\n"; 
    } 
    
  3. 将它们转换为数组只使用str_replace

    $list = str_replace(",", "\n", $string); 
    echo $list; 
    
0
<?php 
// Example 1 
$pizza = "piece1 piece2 piece3 piece4 piece5 piece6"; 
$pieces = explode(" ", $pizza); 
echo $pieces[0]; // piece1 
echo $pieces[1]; // piece2 

// Example 2 
$data = "foo:*:1023:1000::/home/foo:/bin/sh"; 
list($user, $pass, $uid, $gid, $gecos, $home, $shell) = explode(":", $data); 
echo $user; // foo 
echo $pass; // * 

?> 
+0

请参考:http://php.net/manual/en/function.explode.php – jainvikram444

+0

谢谢,我也想添加锚标记结果 –

1

MySQL GROUP_CONCAT函数有一个SEPARATOR关键字。

  • 您可以在您的SQL语句中使用GROUP_CONCAT(mem_name SEPARATOR ',') AS mems_name
  • 使用mem_name字段中不存在的分隔符。
  • 使用别名AS mems_name,所以你的PHP代码看起来很简单,就像$row['mems_name']

在你的PHP只是explode数据由你的分隔符$list = explode('|', $row['mems_name']);

+0

谢谢,如何使用像$ row ['mems_name' ]。在$ sql = mysql_query(“SELECT cat_id,GROUP_CONCAT(mem_name)FROM o_newcatmem GROUP BY cat_id”); –

+0

我测试了你的建议,但没有奏效 –

+0

没有工作?什么是错误?你是否试过这样:'$ sql = mysql_query(“SELECT cat_id,GROUP_CONCAT(mem_name SEPARATOR',')AS mems_name FROM o_newcatmem GROUP BY cat_id”);' –

相关问题