Creare lista dati contenuti in database

intimoviro

Utente Attivo
18 Ago 2009
272
0
0
Salve, vorrei creare una lista di tutti i dati contenuti nel database associati ad un username ed inserirli in un form.
Vi spiego meglio: un'utente inserisce un prodotto nel carrello, che a sua volta lo salva in un database insieme all'username dell'utente, poi questo stesso utente torna indietro ed inserisce un'altro prodotto nel carrello, ora quando ritorna al carrello deve trovare il prodotto vecchio più il nuovo in un form. Come potri fare?
Grazie :D
 
non ti consiglio di utilizzare un database per fare una cosa del genere, dovresti fare una query per ogni nuovo prodotto aggiunto nel carrello, meglio usare le sessioni, a questo proposito prova a consultare quest'articolo.
 
Ho visto già in precedenza quest'articolo, però volevo creare un carrello permanente per ogni utente, dunque ho pensato al database.
Con le sessioni è possibile mantenere un carrello permanente per ogni utente?
Grazie
 
no la sessione si perderebbe alla chiusura del browser, si potrebbe fare qualcosa con i cookie ammesso che l'utente non li cancelli, quindi a questo punto si torna alla soluzione del db.
La prima cosa da fare è creare 3 tabelle per:
  • utenti
  • prodotti
  • acquisti

nella tabella degli acquisti ci dovrebbe essere anche un campo destinato ad ospitare l'id dell'utente che ha messo i prodotti nel carrello e un altro per l'id dei prodotti scelti.
 
Fatto!
Ora ti spiego come ho strutturato il tutto.
ho creato una tabella chiamata carrello_sos dove l'utente cliccando sul servizio m'inserisce l'id del prodotto, username dell'utente che è unico(visto che è già controllato in precedenza al momento del login), descrizione del prodotto, prezzo e quantità. Tutto questo verrà cancellato al momento dell'acquisto e riscritto nella tabella degli ordini.
Fin qui tutto bene, però il problema sorge quando un'utente inserisce un'altro prodotto nel carrello, ma non perchè non funziona, ma perchè vorrei mostrare all'utente anche gli altri prodotti che ha inserito in precedenza. Quando un'utente inserisce il prodotto nel carrello il tutto viene richiamato in un form dove è possibile aggiungere/eliminare quantità, però vorrei far visualizzare anche gli altri prodotti in un form che dovrebbe essere creato per ogni prodotto in carrello.
Non so se sono stato chiaro, ti posto il codice delle funzioni:

PHP:
<?php

$action = $_GET['action'];

switch ($action)
{
case 'aggiungi':

require_once('carrello.php');
$sql = "SELECT * FROM carrello_sos WHERE username= '$username' AND id_prodotto = $id";
$res = mysql_query($sql);
while ($row=mysql_fetch_assoc($res)) {

$quantita1 = $row['quantita'];

$num = $_POST['quantita'];

$som = $num + $quantita1;


$sql = "UPDATE carrello_sos SET quantita = $som WHERE username = '$username' AND id_prodotto = $id";
                
            mysql_query($sql);

}
$sql1 = "SELECT * FROM carrello_sos WHERE username= '$username' AND id_prodotto = $id";
$res1 = mysql_query($sql1);
while ($row1=mysql_fetch_assoc($res1)) {

$id_prodotto = $row1['id_prodotto'];
$nome_serv = $row1['nome_serv'];
$desc_prodotto = $row1['descrizione'];
$prezzo_prod = $row1['prezzo'];
$quantita = $row1['quantita'];
}
$totale = $prezzo_prod * $quantita;

break;

case 'nuovo':

require_once('carrello.php');//richiama la pagina dove verranno inseriti i dati estratti nel form

$id =$_POST["id"];

$sql = "SELECT * FROM prodotti WHERE id= $id";
$res = mysql_query($sql);
while ($row=mysql_fetch_assoc($res)) {

$nome = $row['nome']; 
$descrizione = $row['descrizione']; 
$prezzo = $row['prezzo']; }

$quant = 1;
$database = "INSERT INTO carrello_sos (id_prodotto, username, nome_serv, descrizione, prezzo, quantita) VALUES ('$id', '$username', '$nome', '$descrizione', '$prezzo', $quant)";
 $database2 = mysql_query($database);
   if(!$database2) die(mysql_error());


$sql1 = "SELECT * FROM carrello_sos WHERE username= '$username' AND id_prodotto = $id";
$res1 = mysql_query($sql1);
while ($row1=mysql_fetch_assoc($res1)) {

$id_prodotto = $row1['id_prodotto'];
$nome_serv = $row1['nome_serv'];
$desc_prodotto = $row1['descrizione'];
$prezzo_prod = $row1['prezzo'];
$quantita = $row1['quantita'];
}
$totale =$prezzo * $quantita;

break;

case "ordine":
header ('Location:scelta_pagamento.php');
break;
}
?>
Ti prego sto impazzendo, se puoi e se vuoi aiutami.
Grazie :fonzie:
 

Discussioni simili