riconoscimento acquisto

  • Creatore Discussione Creatore Discussione helpdesk
  • Data di inizio Data di inizio

helpdesk

Utente Attivo
30 Set 2009
726
0
16
Pesaro
Salve ragazzi ho deciso di complicarmi meno la vita è ho fatto tutti in un php non in un parsing xml con php.
Però non mi da i dati vede questo:

Dati=,,,,,

Non mi da nessun errore ma anche nessun dato e non capisco come mai :(

<?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 * FROM acquisti WHERE id_utenti=".$_SESSION['id_utenti']);
$riga = mysql_fetch_array($sql);

$dati[]= $riga['nome_prodotto'];
$dati[]= $riga['prezzo'];
$dati[]= $riga['quantita'];
$dati[]= $riga['quantita'];
$dati[]= $riga['codice'];
$dati[]= $riga['calcolo'];

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

}else{

echo"Dati non recuperati";

}

?>
 
Ultima modifica:
Ho risolto non mi dava nessun errore ma anche nessun dato poichè l'identificativo utente di sessione aperto non era identico a quello dell' id_utenti degli acquisti. Ora funziona spero di proseguire senza intoppi.
Grazie a tutti comunque :)
 
Ragazzi, ora ho fatto in questa maniera che credo sia meglio però mi legge solo il primo prodotto devo implementare un ciclo while o for per leggerli tutti?

<?php
session_start();

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

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

$sql = mysql_query("SELECT * FROM iscritti WHERE id_utenti=".$_SESSION['id_utenti']);

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

$sql = mysql_query("SELECT * FROM acquisti");
$riga = mysql_fetch_array($sql);

$dati[]= $riga['nome_prodotto'];
$dati[]= $riga['prezzo'];
$dati[]= $riga['quantita'];
$dati[]= $riga['quantita'];
$dati[]= $riga['codice'];
$dati[]= $riga['calcolo'];

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

}else{

echo"Dati non recuperati";

}

?>
 
ora ho fatto in questa maniera qua vediamo cosa succede....

Dati=prodotto uno viso,2,00,1,1,,1

<?php
session_start();

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

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

$sql = mysql_query("SELECT * FROM iscritti WHERE id_utenti=".$_SESSION['id_utenti']);

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

$sql = mysql_query("SELECT * FROM acquisti");
$riga = mysql_fetch_array($sql);

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

$dati[]= $riga['nome_prodotto'];
$dati[]= $riga['prezzo'];
$dati[]= $riga['quantita'];
$dati[]= $riga['quantita'];
$dati[]= $riga['codice'];
$dati[]= $riga['calcolo'];

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

}
}

?>
 
Ho modificato così ma non mi riconosce la sessione aperta e gli acquisti relativi all'utente che ha aperto la sessione è stranissimo.

<?php
session_start();

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

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


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

$sql = mysql_query("SELECT nome_prodotto,prezzo,quantita,codice,calcolo FROM acquisti");
$riga = mysql_fetch_array($sql);

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

$dati[]= $riga['nome_prodotto'];
$dati[]= $riga['prezzo'];
$dati[]= $riga['quantita'];
$dati[]= $riga['quantita'];
$dati[]= $riga['codice'];
$dati[]= $riga['calcolo'];

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

}
}

?>
 
Ragazzi credo ci sia un problema con il ciclo while che mi legge tutto a prescindere dall'utente di sessione.
Per risolvere devo inserire l'id_utente anche nel db acquisti?
così facendo mi riconosce in base all'id_utente i suoi acquisti?
 
Ovviamente devi inserire anche una clausola WHERE che limiti gli acquisti effettuati all'ID del cliente attuale, altrimenti recupererà tutti gli acquisti. Poi c'è qualcosa che non va... come mai ad ogni ciclo visualizzi i dati? Quell'echo dovrebbe essere fuori dal while, e i dati dovrebbero essere memorizzati in un sotto-array. Ecco una versione migliorata del tuo script:
PHP:
<?php
// inizializzo la sessione
session_start();

// configurazione del database
$dbhost = 'localhost';
$dbuser = 'dbuser';
$dbpass = 'dbpass';
$dbname = 'dbname';

// mi connetto al database
$mysql = mysql_connect($dbhost, $dbuser, $dbpass) or die(mysql_error());
mysql_select_db($dbname) or die(mysql_error());

// se l'utente è loggato
if(isset($_SESSION['id_utenti']))
{
	// inizializzo l'array
	$dati = array();
	
	// eseguo la query SQL
	$sql = "SELECT nome_prodotto,prezzo,quantita,codice,calcolo FROM acquisti WHERE id_utenti='{$_SESSION['id_utenti']}'";
	$sql = mysql_query($sql, $mysql) or die(mysql_error());
	
	// ciclo tutte le righe
	while($riga = mysql_fetch_array($sql))
	{
		// inserisco i nuovi dati
		$dati[] = $riga;
	}
	
	// visualizzo le informazioni
	print_r($dati);
}

// chiudo la connessione
mysql_close($mysql) or die(mysql_error());
?>
 
Ciao Alessandro, per prima cosa grazie mille.
Però mi dice questo: Unknown column 'id_utenti' in 'where clause'
non ho ben capito a cosa sia riferito.
 
Ho modificato in questo modo:

<?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['codice'];
$dati[]= $riga['calcolo'];

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

?>


ma mi da questi errori:
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in D:\inetpub\vhosts\beautyluxury.it\httpdocs\e.commerce\php\acquisti_utente.php on line 14

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in D:\inetpub\vhosts\beautyluxury.it\httpdocs\e.commerce\php\acquisti_utente.php on line 16

la clausola where indica l'identificativo di sessione però credo che sia proprio quella che mi da errore. Non capisco come mai.
 
Ultima modifica:
Si forse è quello il danno.
L'ho creata con phpMyadmin se vuoi genero il codice ma in sintesi è strutturata così:
Tabela acquisti: nome_prodotto,prezzo,quantita,codice,calcolo
 
Nella tabella acquisti sono contenuti i prodotti acquistati il problema che ho io ora è che se Mario Rossi acquista 3 vasi e Giacomo Bianchi 2 berretti lo script mi mostra 5 prodotti ma non evidenzia quali sono i prodotti di Mario e quali quelli di Giacomo :(
 

Discussioni simili