2011-01-13 20 views
-4

私はこのような(カンマ、緑、オレンジ、赤)リストを作成しようとしています。phpのコンマ区切りリスト

$i=0; 
$taxonomy = $form_state[values][taxonomy][5]; 
foreach ($taxonomy as $key => $value){ 
    $result = db_query("SQL CODE goes here"); 
    if (mysql_num_rows($result)){  
    while ($i<mysql_num_rows($result)){ 
    $resultset = db_fetch_array($result); 
    $comma_separated = implode(",", $resultset); 
    $i++;  
    } 
    form_set_error("Date", t("$comma_separated. cannot be booked more than once ")); 
} 
+3

質問は – Ivan

+2

です。今後は、コードを正しくフォーマットして、実際に質問が意味をなさないことを確認してください。あなたが質問をするのに時間を費やすことができない場合、なぜ人々がそれに答えるのを期待していますか? –

+0

foreachループのコードが欠落しています – Cfreak

答えて

4
$resultset=array(); 
while ($data = db_fetch_array($result)) { 
    $resultset[] = $data; 
} 
$comma_separated = implode(",", $resultset); 
0

これを試してみてください:

$i=0; 
$taxonomy = $form_state[values][taxonomy][5]; 
$result=''; 
foreach ($taxonomy as $key => $value) 
{ 
    $result = db_query("SQL CODE goes here"); 
    if (mysql_num_rows($result)){ 
     while ($row = mysql_fetch_row()){ 
      result.=$row[0].','; 
     } 
    } 
} 
result=substr($result,0,-1); 
echo $result; 
+0

は、mysql_fetch_row()ではなくdb_fetch_array()に固執することをお勧めします - これはもう一方のラッパーですが、 Drupalのデータベース抽象化の一部なので、それにこだわるのが最善です。 – Spudley

+0

Spudleyのソリューションで、よりクリーンで、シンプルで、オーバーヘッドが少ない –

+0

ありがとう、Spudley、あなたのソリューションは少し修正しました。 $ resultset [] = $ data ["name"]; – gables20

2

誰かがそれを掲示し、私はupvoteするつもりだったが、彼らはそれを削除しました。私は、このクエリの唯一の目的は、カンマで区切られたリストを取得するように見えるので、mysqlのGROUP_CONCATは良い解決策になると思います。

関連する問題