Contenuto di un Array in una variabile

Gualti

Nuovo Utente
30 Dic 2009
6
0
0
Catania
Salve,
avrei bisogno di inserire in una variabile il contenuto di un array con tutti gli elementi separati da virgola.

L'array lo ricavo da una query SQL in questo modo e ho provato l'implode:

PHP:
$query2 = mysql_query("select id,id_s from sv where id_se=1"); 
   
    while($line2 = mysql_fetch_array($query2)){   
      $query5 = mysql_query("select nominativo from utenti where id=" . $line2[1]); 
      while($line5 = mysql_fetch_array($query5,MYSQL_BOTH)){ 

      $v=implode(", ", $line5); 

    } 
    }


Il problema è che mysql_fetch_array mi genera un array nidificato, infatti provando con
print_r($line5) il risultato è il seguente:

Array ( [0] => Pinco Pallino [nominativo] => Pinco Pallino ) Array ( [0] => Mario Rossi [nominativo] => Mario Rossi )

Io vorrei che in una variabile fossero inseriti i nomi in questo modo


PHP:
$variabile="Pinco Pallino, Mario Rossi";

Avete dei suggerimenti?

Grazie anticipatamente
 
Ciao, una delle possibili soluzioni potrebbe essere questa:

Codice:
.....
$query5 = mysql_query("select nominativo from utenti where id=" .$line2[1]);
$array = array(); 
while($line5 = mysql_fetch_array($query5,MYSQL_BOTH)){ 
    array_push($array,$line5['nominativo']); 
}  
$v=implode(", ", $array);  
....

In poche parole racchiudi in $array solo il campo nominatovo e fai l'implode alla fine della lettura
 
Ciao, una delle possibili soluzioni potrebbe essere questa:

Codice:
.....
$query5 = mysql_query("select nominativo from utenti where id=" .$line2[1]);
$array = array(); 
while($line5 = mysql_fetch_array($query5,MYSQL_BOTH)){ 
    array_push($array,$line5['nominativo']); 
}  
$v=implode(", ", $array);  
....

In poche parole racchiudi in $array solo il campo nominatovo e fai l'implode alla fine della lettura


Ciao, funziona tutto, solo che mi da i due nomi incollati:

Pinco PallinoMario Rossi

Suggerimenti?
 
Ciao, infatti è strano, io ho provato 'intuitivamente' :) creando le tabelle (anche la prima quella con id, id_s etc.. ) e usando questo stesso codice e funziona correttamente. Cmq posta anche la struttura della prima tabella, oppure prova invece di usare il metodo array_push(), crea un indice $index e incrementalo ad ogni ciclo cioè:
Codice:
$query2 = mysql_query("select id,id_s from sv where id_se=1"); 
$array = array(); 
$index = 0; 
while($line2 = mysql_fetch_array($query2)){   
$query5 = mysql_query("select nominativo from utenti where id=" . $line2[1]); 
while($line5 = mysql_fetch_array($query5,MYSQL_BOTH)){ 
    $array[$index]=$line5['nominativo'];
$index++;
} 
} 
...
Purtroppo avendo solo questo a disposizione bisogna procedere per tentativi :D
facci sapere...
 
Ciao, infatti è strano, io ho provato 'intuitivamente' :) creando le tabelle (anche la prima quella con id, id_s etc.. ) e usando questo stesso codice e funziona correttamente. Cmq posta anche la struttura della prima tabella, oppure prova invece di usare il metodo array_push(), crea un indice $index e incrementalo ad ogni ciclo cioè:
Codice:
$query2 = mysql_query("select id,id_s from sv where id_se=1"); 
$array = array(); 
$index = 0; 
while($line2 = mysql_fetch_array($query2)){   
$query5 = mysql_query("select nominativo from utenti where id=" . $line2[1]); 
while($line5 = mysql_fetch_array($query5,MYSQL_BOTH)){ 
    $array[$index]=$line5['nominativo'];
$index++;
} 
} 
...
Purtroppo avendo solo questo a disposizione bisogna procedere per tentativi :D
facci sapere...

Stesso identico risultato :(

Comunque la prima tabella è composta così:

id {PK} int
id_s {FK} int
id_se {FK} int
 
Ho fatto qualche leggera correzione, prova così:
PHP:
<?php
$query2 = mysql_query("select id,id_s from sv where id_se=1"); 
$data = array();

while($line2 = mysql_fetch_array($query2))
{   
	$query5 = mysql_query("select nominativo from utenti where id=" . $line2[1]); 
	
	while($line5 = mysql_fetch_array($query5, MYSQL_BOTH))
		array_push($data, $line5['nominativo']);
}

$data = implode(', ', $data);
echo $data;
?>
 
Ho fatto qualche leggera correzione, prova così:
PHP:
<?php
$query2 = mysql_query("select id,id_s from sv where id_se=1"); 
$data = array();

while($line2 = mysql_fetch_array($query2))
{   
	$query5 = mysql_query("select nominativo from utenti where id=" . $line2[1]); 
	
	while($line5 = mysql_fetch_array($query5, MYSQL_BOTH))
		array_push($data, $line5['nominativo']);
}

$data = implode(', ', $data);
echo $data;
?>

PERFETTO! Ti ringrazio tantissimo! :) Così funziona! Grazie tante :)
 
Figurati, in realtà il vostro errore era che ridefinivate la variabile fuori dal secondo ciclo, ma non dal primo, e quindi ad ogni selezione del gruppo di nominativi (non di uno solo) veniva sovrascritta ;)
Poi ho fatto in modo che venisse aggiunto direttamente il nominativo invece dell'array con il nominativo ripetuto due volte.
 

Discussioni simili