2012-07-22 18 views
9

Per gli ultimi 1 1/2 giorni ho cercato di memorizzare gli ID di 16 righe in una stringa e separare ogni id con una virgola. L'array che ottengo è MySQL. L'errore che sto ottenendo èimplode una matrice in una stringa separata da virgola dalla query mysql

implode() Funzione: passati argomenti non validi

$str=array(); 
$string=""; 
while($row = mysql_fetch_row($result)) 
{ 
    $user_id=$row; 
    $str=$user_id; 
    foreach($str as $p=>$v){ 
     comma($v); 
    } 
} 

function comma($v){ 
    $string= implode(",",$v); echo $string; 
} 
+3

prega, smettere di essere un cattivo ragazzo e non conservare valori separati da virgole in un campo unico. Utilizza un'altra tabella e memorizza ciascun valore nella propria riga. (Stai creando problemi che non esisterebbero se la tua shema fosse ben strutturata.) – OcuS

+0

implode accetta un array come secondo parametro – Leon

+0

@oCuS Non so se sta tentando di "memorizzare valori separati da virgola in un campo unico" , dice solo che vuole memorizzarlo in una stringa. – Leon

risposta

12

provare qualcosa di simile:

$ids = array(); 
while ($row = mysql_fetch_assoc($result)) 
{ 
    $ids[] = $row["UserID"]; 
} 
echo implode(", ", $ids); 

Sostituire "UserID" con il ColumnName dell'Es in il tuo tavolo

Quindi: prima si crea l'array, quindi si implode l'array in una stringa.

2

c'è la mia soluzione:

SELECT GROUP_CONCAT(UserID) as string FROM Users; 

Per questa funzione il delimitatore è '' per impostazione predefinita.

0
$query = 'SELECT id FROM your_table'; 
$rs = mysql_query($query); 

$row = mysql_fetch_array($result); 
return implode(',', $row); 

il risultato 1,2,3 ...

Problemi correlati