Prelevare dati riga per riga

helpdesk

Utente Attivo
30 Set 2009
726
0
0
Pesaro
Ragazzi, non riesco a prelevare riga per riga i dati mi spiego il ciclo while
mi dichiara in echo solo l'ultimo dato come faccio a visualizzare i dati tipo una lista riga per riga?

<?php
session_start();
$dbhost = 'localhost';
$dbuser = 'dbuser';
$dbpass = 'dbpass';
$dbname = 'dbname';
$mysql = mysql_connect($dbhost, $dbuser, $dbpass) or die(mysql_error());
mysql_select_db($dbname) or die(mysql_error());

if(isset($_SESSION['id_utenti'])){
$sql = mysql_query("SELECT * FROM acquisti WHERE id_utenti=".$_SESSION['id_utenti']);
$riga = mysql_fetch_array($sql);

while ($riga=mysql_fetch_array($sql)){

$dati[]= $riga['nome_prodotto'];
$dati[]= $riga['prezzo'];
$dati[]= $riga['quantita'];
$dati[]= $riga['id_prodotto'];
$dati[]= $riga['codice'];
$dati[]= $riga['calcolo'];
echo "Dati=".implode(",",$dati);

}
}

?>
 
Prova a scrivere così:
PHP:
if(isset($_SESSION['id_utenti'])){
$sql = mysql_query("SELECT * FROM acquisti WHERE id_utenti=".$_SESSION['id_utenti']);
while ($riga=mysql_fetch_array($sql)){

$dati[]= $riga['nome_prodotto'];
$dati[]= $riga['prezzo'];
$dati[]= $riga['quantita'];
$dati[]= $riga['id_prodotto'];
$dati[]= $riga['codice'];
$dati[]= $riga['calcolo'];
echo "Dati=".implode(",",$dati);
unset($dati);
}
}
 
E semplificare l'inutile array dati[] ?

PHP:
if(isset($_SESSION['id_utenti'])){ 
$sql = mysql_query("SELECT * FROM acquisti WHERE id_utenti=".$_SESSION['id_utenti']); 
while ($riga=mysql_fetch_array($sql)){ 
echo "Dati=".$riga['nome_prodotto'].",".$riga['prezzo'].",".$riga['quantita'].",".$riga['id_prodotto'].",".$riga['codice'].",".$riga['calcolo']."<BR>";
} 
}

o adirittura

PHP:
if(isset($_SESSION['id_utenti'])){ 
$sql = mysql_query("SELECT * FROM acquisti WHERE id_utenti=".$_SESSION['id_utenti']); 
while ($riga=mysql_fetch_array($sql)){ 
echo "Dati=".implode(",",$riga); ."<BR>";
} 
}
 
Ultima modifica:
grazie mille softhare ma mi da lo stesso risultato ultima riga e non tutte le righe una per una.
Non intendevo un dato per ogni riga ma un acquisto per ogni riga ci sono due acquisti mi da solo l'ultimo
del carrello e non prima il primo poi il secondo.
esempio:
Dati=prodotto viso uno,3.00,1,678,,1
Dati=prodotto viso due,4.00,1,679,,1
 
Ultima modifica:
con il metodo di softhare mi cicla due volte il secondo:
Dati=678,678,418,418,prodotto viso due,prodotto viso due,3.00,3.00,1,1,,,1,1
 
Prova così:
PHP:
if(isset($_SESSION['id_utenti'])){ 
$sql = mysql_query("SELECT * FROM acquisti WHERE id_utenti=$_SESSION[id_utenti]"); 
while ($riga=mysql_fetch_assoc($sql)){ 
echo "Dati=".$riga['nome_prodotto'].",".$riga['prezzo'].",".$riga['quantita'].",".$riga['id_prodotto'].",".$riga['codice'].",".$riga['calcolo']."<BR>";
} 
}
 
ciao
intanto conviene visullizzarla con un var_dump($qql);
ma in qusto caso ti risonde o FALSE o TRUE
conviene sempre, soprattutto in fase di svilutto dividere


$sl = "SELECT * FROM acquisti WHERE id_utenti=$_SESSION[id_utenti]";
var_dump($sl);
$sql=mysql_query($sl);
var_dump($sql);
così si vede se la query sringa viene come deve venire e poi la query
 
ciao, scusa dimenticavo
prova a mettere un contatore di cicli

<?php
//...ecc....
if(isset($_SESSION['id_utenti'])){
$cicli=1;
$sql = mysql_query("SELECT * FROM acquisti WHERE id_utenti=$_SESSION[id_utenti]");
while ($riga=mysql_fetch_assoc($sql)){
echo "$cicli) Dati=".$riga['nome_prodotto'].",".$riga['prezzo'].",".$riga['quantita'].",".$riga['id_prodotto'].",".$riga['codice'].",".$riga['calcolo']."<BR>";
$cicli++;
}
}
//...ecc....
?>

e vedi se cicla quante volte dovrebbe, se ti rimane

1) Dati: aaa, bbb,

il ciclo non funzia (o inella tabella hai un unico campo con quell'id), invece se (es.) solo

897) Dati: aaa, bbb,

e basta, vuol dire che ti presenta solo l'ultimo
 
cia borgo grazie mi dice questo resource(2) of type (mysql result) Resource id #2Dati=prodotto viso due,3.00,1,678,,1
 
Grande borgo funziona grazie mille.

1) Dati=prodotto uno viso,2.00,1,677,,1
2) Dati=prodotto viso due,3.00,1,678,,1
 
ciao, ok, una osservazione

1) Dati=prodotto uno viso,2.00,1,677,,1
2) Dati=prodotto viso due,3.00,1,678,,1

il codice l'hai tolto tu o non legge il campo?o hai messo una , in più?
il calcolo non dovrebbe essere
2.00x1=2.00 e 3.00x1=3.00 per cui

1) Dati=prodotto uno viso,2.00,1,677,,2.00
2) Dati=prodotto viso due,3.00,1,678,,3.00
?
 

Discussioni simili