2012-07-22 18 views
9

Durante los últimos 1 1/2 días he intentado almacenar 16 Id. De fila en una cadena y separar cada Id. Con una coma. La matriz que obtengo es de MySQL. El error que estoy recibiendo esimplosionar una matriz en una cadena separada por comas de la consulta de mysql

implosión() Función: pasado argumentos no válidos

$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

Por favor, deja de ser un chico malo y no almacenar valores separados por comas en un campo único. Use otra tabla y almacene cada valor en su propia fila. (Está creando problemas que no existirían si su shema estuviera bien estructurado.) – OcuS

+0

implode toma una matriz como un segundo parámetro – Leon

+0

@oCuS No sé si está tratando de "almacenar valores separados por comas en un campo único" , él solo dice que quiere guardarlo en una cadena. – Leon

Respuesta

12

intentar algo como esto:

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

Reemplazar "UserID" con el nombrecolumna del ello en tu mesa.

Entonces: primero construye la matriz, luego implosiona la matriz en una cadena.

2

No es mi solución:

SELECT GROUP_CONCAT(UserID) as string FROM Users; 

Para esta función es el delimitador '' por defecto.

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

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

el resultado 1,2,3 ...

Cuestiones relacionadas