Convertire array in stringa (implode)

helpdesk

Utente Attivo
30 Set 2009
726
0
16
Pesaro
Salve ragazzi ho un nuovo problema devo convertire l'array della query di dati che prelevo in stringa e la cosa mi riesce ma mi duplica il risultato dandomi il seguente output: Dati=Russel,Russel,password,password,Russel,Russel,Crow,Crow

ovvero raddoppia nome nome password password etc etc in cos ho sbagliato?

posto lo cript:

<?php
session_start();

$dbhost = 'localhost';
$dbuser = 'dbuser';
$dbpass = 'dbpass';
$dbname = 'dbname';

$mysql = mysql_connect($dbhost,$dbuser,$dbpass);
mysql_select_db($dbname);


if(isset($_SESSION['id_utenti'])){

$sql = mysql_query("SELECT user_utente,password_utente,nome,cognome FROM iscritti WHERE id_utenti=".$_SESSION['id_utenti']);
$riga = mysql_fetch_array($sql);

$id = $riga['id_utenti'];
$User_utente = $riga['user_utente'];
$Password_utente = $riga['password_utente'];
$Nome = $riga['nome'];
$Cognome = $riga['cognome'];
$Indirizzo = $riga['indirizzo'];
$Stato = $riga['stato'];
$Citta= $riga['luogo'];
$Mail = $riga['mail'];

echo "Dati=".implode(",",$riga);

}else{

echo"Dati non recuperati";

}

?>
 
Non vorrei dire una stupidaggine.. prova ad inserire i dati in un array con indici e non con chiavi..

Facci sapere se funziona..
Ciro
 
Ciao lotus e grazie per la risposta.
Intendi così?
esempio:
$arr['nome'] = 'Marco';$arr['cognome'] = 'Pegoraro';
 
oppure così:

$dati= Array();
$nome[0] = 'corti';
$cognome[1] = 'lunghi';
$luogo[2] = 'di lana'];
 
ho creato il seguente array diciamo che funziona perchè mi da un implode pulito ma non con i dati presi dalla quary ma con i dati di tipo stringa associati agli indici numerici :(

$riga=Array();

$riga[0]='id_utenti';
$riga[1]='user_utente';
$riga[2]='password_utente';
$riga[3]='nome';
$riga[4]='cognome';
$riga[5]='indirizzo';
$riga[6]='cap';
$riga[7]='cell';
$riga[8]='mail';
$riga[9]='cfpi';
 
Può essere utile?
PHP:
# divide la strunga prodotta da while
$dati = explode(',',$riga);
# crea un array con i valori contenuti in 
   foreach($dati as $value) {
   $array_totale[]=trim($value);
   }
# elimina i doppioni
  $array_finale = array_unique($array_totale);
# ordina i valori dell'array
  sort($array_finale);
# ri-inizializza l'array
  reset($array_finale);

# cicla l'array
  foreach($array_finale as $value)
    {
    //mostra valori
    }
 
Ultima modifica:
Ciao Eliox grazie per la risposta.
Non ho ben capito lo script cosa fa legge i dati con il ciclo for li cicla dividendoli e poi da l'implode?
 
Grazie Eliox, si è più chiaro però devo aver sbagliaot qualcosa perchè come output mi dice array

<?php
session_start();

$dbhost = 'localhost';
$dbuser = 'dbuser';
$dbpass = 'dbpass';
$dbname = 'dbname';

$mysql = mysql_connect($dbhost,$dbuser,$dbpass);
mysql_select_db($dbname);


if(isset($_SESSION['id_utenti'])){

$sql = mysql_query("SELECT user_utente,password_utente,nome,cognome,indirizzo,cap,telefono,fax,cell,mail,cfpi FROM iscritti WHERE id_utenti=".$_SESSION['id_utenti']);

$riga = mysql_fetch_array($sql);

$dati = explode(',',$riga);

foreach($dati as $value) {
$array_totale[]=trim($value);
}

$array_finale = array_unique($array_totale);

sort($array_finale);

reset($array_finale);

foreach($array_finale as $value){
echo($array_finale);


}




}else{

echo"Dati non recuperati";

}

?>
 
ciao
perche non provi così


$dati[]= $riga['id_utenti'];
$dati[]= $riga['user_utente'];
$dati[]= $riga['password_utente'];
$dati[]= $riga['nome'];
$dati[]= $riga['cognome'];
//ecc.....

echo "Dati=".implode(",",$dati);
 
ora sembra funzionare perfettamente ma all'improvviso mi ha dato questo errore che proprio non capisco

Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at D:\inetpub\vhosts\aaaaa.it\httpdocs\aaa\php\dati_utente.php:2) in D:\inetpub\vhosts\aaaa.it\httpdocs\e.commerce\php\dati_utente.php on line 3

che significa?


<?php
session_start();

$dbhost = 'localhost';
$dbuser = 'dbuser';
$dbpass = 'dbpass';
$dbname = 'dbname';

$mysql = mysql_connect($dbhost,$dbuser,$dbpass);
mysql_select_db($dbname);


if(isset($_SESSION['id_utenti'])){

$sql = mysql_query("SELECT user_utente,password_utente,nome,cognome,indirizzo,luogo,provincia,cap,telefono,cell,fax,mail,cfpi FROM iscritti WHERE id_utenti=".$_SESSION['id_utenti']);

$riga = mysql_fetch_array($sql);

$dati[]= $riga['user_utente'];
$dati[]= $riga['password_utente'];
$dati[]= $riga['nome'];
$dati[]= $riga['cognome'];
$dati[]= $riga['indirizzo'];
$dati[]= $riga['luogo'];
$dati[]= $riga['provincia'];
$dati[]= $riga['cap'];
$dati[]= $riga['telefono'];
$dati[]= $riga['cell'];
$dati[]= $riga['fax'];
$dati[]= $riga['mail'];
$dati[]= $riga['cfpi'];

echo "Dati=".implode(",",$dati);

}else{

echo"Dati non recuperati";

}

?>
 
ciao, di preciso non saprei prova a sostituire session_start con

if(!isset($_SESSION)){
session_start ();
}

che se esiste non te la crea ogni volta
 
ciao borgo e ancora grazie.
Ho provato, sicuramente è un comando utile quindi lo lascio :)
però continua a darmi questo errore relativo alla sessione e non so perchè sino a poco fa funzionava :(
 
ciao, volevo dirti che basta un salto di riga per ptovocare l'errore, se per es hai

1
2 <?php
3 session_start();
4
ec...

da quel messaggio di errore alla riga 3
 

Discussioni simili