1

ali,aliiii,asdエコーなどで結果を取得しています$row['GROUP_CONCAT(mem_name)'];

クリック関数などにアンカータグを追加できるように、それらをリストのようにエコーするにはどうすればよいですか。クエリがあります

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

次のように結果を表示したい:

ali
aliiii
asd
4

3 に答える 3

2

あなたは$stringこのようなものを持っています

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

次の 3 つのオプションがあります。

  1. str_getcsvCSV文字列を配列に変換するために使用できます

    $list = str_getcsv($string);
    foreach ( $list as $var ) {
        echo $var, "\n";
    }
    
  2. を使用してそれらを配列に変換しますexplode

    $list = explode(",", $string);
    echo implode("\n", $list);
    
  3. 使うだけ使うstr_replace

    $list = str_replace(",", "\n", $string);
    echo $list;
    
于 2012-10-06T12:39:39.853 に答える
1

MySQL GROUP_CONCAT関数には SEPARATOR キーワードがあります。

  • GROUP_CONCAT(mem_name SEPARATOR ',') AS mems_nameSQL ステートメントで使用できます。
  • mem_nameフィールドに存在しないセパレータを使用してください。
  • AS mems_nameのように PHP コードがシンプルに見えるように、alias を使用します$row['mems_name']

PHP では、セパレーターでデータを展開するだけ$list = explode('|', $row['mems_name']);です。

于 2012-10-06T12:46:13.320 に答える
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; // *

?>
于 2012-10-06T12:43:28.777 に答える