Switch

intimoviro

Utente Attivo
18 Ago 2009
272
0
0
Salve, sto creando un carrello, però sto sfruttando il database, cioè quando l'utente aggiunge un prodotto al carrello lo salva in una tabella temporanea, che verrà eliminata al momento dell'acquisto, altrimenti rimarrà sempre il prodotto nella tabella associato all'username dell'utente che è unico. Ora ho una pagina carrello.php dove contiene il form per aggiungere o eliminare le quantità del prodotto, tutto funziona correttamente se faccio elaborare il tutto inviando i dati del form ad una pagina differente(agg_carrello.php), però vorrei elaborare tutto nella stessa pagina, cioè aggiungendo una quantità deve aggornarmi la stessa pagina con le nuove quantità.
Avevo pensato allo switch, però non so bene come funziona, intanto vi posto il codice che mi funziona nella pagina agg_carrello.php

PHP:
session_start();
require_once('site/config.php');

$sql = "SELECT * FROM carrello_sos WHERE username= '$username'";
$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'";
                
            mysql_query($sql);

}
$sql1 = "SELECT * FROM carrello_sos WHERE username= '$username'";
$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;
?>

Ora vi do il codice che ho cercato di creare con lo switch, ma non funziona, in pratica è lo stesso della pagina agg_carrello.php ma con lo switch:

PHP:
$action = $_POST['carrello'];
switch ($action)
{
case 'aggiungi':

$sql = "SELECT * FROM carrello_sos WHERE username= '$username'";
$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'";
                
            mysql_query($sql);

}
$sql1 = "SELECT * FROM carrello_sos WHERE username= '$username'";
$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;
}



$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'";
$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;

?>

$_POST['carrello'];
è il nome del form.
Nel form poi ho inserito questo nell'action: carrello.php?action=aggiungi

Grazie per qualsiasi aiuto :fonzie:
 

Trogo

Utente Attivo
11 Gen 2008
370
0
0
43
Sanremo
Esatto, magari per controllare potresti mettere qualche echo sulle variabili per vedere che siano valorizzate correttamente.

Es.

PHP:
$action = $_GET['carrello'];
echo $action;
 

Trogo

Utente Attivo
11 Gen 2008
370
0
0
43
Sanremo
Ma non sono il solo...

PHP:
$action = $_GET['action'];

if ($action=='aggiungi')
{
// qui fai quello che ti serve quando action=aggiungi
}

oppure con lo switch

PHP:
$action = $_GET['action'];

switch($action) {
  case 'aggiungi':
    // qui fai quello che ti serve quando action=aggiungi
  break;
}
 

intimoviro

Utente Attivo
18 Ago 2009
272
0
0
Ragazzi, ho fatto così:

PHP:
$action = $_GET['action'];


switch ($action)
{
case 'aggiungi':

$sql = "SELECT * FROM carrello_sos WHERE username= '$username'";
$res = mysql_query($sql);
while ($row=mysql_fetch_assoc($res)) {

$quantita1 = $row['quantita'];

$num = $_GET['quantita'];

$som = $num + $quantita1;


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

}

break;
}

Però ora ho un'altro problema, cioè:
Quando clicco su aggiungi invece di aggiornare la quantità nella tabella inerente all'username, me ne scrive una nuova, in pratica come se mi ricarica la pagina carrello.php scrivendo nuovamente nella tabella e creandomi un campo vuoto inerente a quell'username.
Dove sto sbagliando?
Grazie

Il codice che uso del carrello.php è questo(si trova nella stessa pagina):

PHP:
$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'";
$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;


?>

$id =$_POST["id"];
lo prendo dalla pagina precedente
 
Ultima modifica:

intimoviro

Utente Attivo
18 Ago 2009
272
0
0
Ho risolto tutto, ho creato un file funzioni che viene richiamato nella pagina carrello.php contenente tutti gli switch.
Grazie :fonzie:
 

intimoviro

Utente Attivo
18 Ago 2009
272
0
0
Salve ho un nuovo problema, cioè tutto funziona correttamente per l'inserimento di un solo prodotto, però al momento che vorrei inserire un'altro prodotto nel carrello, vorrei che il form contenente tutti i dati del prodotto compreso le quantità, venga incrementato in base hai prodotti scelti dall'utente.
In pratica che venga creata in automatico un form per ogni prodotto del carrello.
Spero di essere stato chiaro, altrimenti cercherò d'impegnarmi di più nel spiegarvi il mio problema :eek:

Grazie
 

intimoviro

Utente Attivo
18 Ago 2009
272
0
0
Già avevo visto questo esempio di carrello, però vorrei crearlo da zero, oltretutto l'esempio riporta i prodotti salvati in sessione, mentre io vorrei farlo salvando i prodotti in un database temporaneo che verrà cancellato al momento dell'acquisto da parte dell'utente, in modo che quando un'utente ritorna sul sito trova sempre i prodotti che ha inserito nel carrello in una visita o in visite precedenti nel carrello.
Non sto trovando grandi difficoltà, però ho bisogno di aiuto per piccole cose, tipo la domanda che ho posto prima, cioè quella di creare un form per ogni prodotto inserito nel carrello, oppure inserire più prodotti nello stesso form.
Grazie per il tuo aiuto :D
 
Discussioni simili
Autore Titolo Forum Risposte Data
A For in uno switch PHP 1
E Come vedere telecamera analogica senza DVR e switch. IP Cam e Videosorveglianza 1
L Menù con switch case C/C++ 1
D Ragionamento Switch Case Javascript 1
Y jQuery Animation Switch On Off jQuery 0
A Router e Switch Reti LAN e Wireless 0
N [WordPress] Switch lingua sito WordPress 0
K [Java] aiuto switch case Java 1
N Configurare rete con 1 switch e 2 router Reti LAN e Wireless 0
S problema switch poe IP Cam e Videosorveglianza 0
elpirata [PHP] Sostituire if ed elseif con operatore ternario switch PHP 9
F Problema switch di pagina jQuery 1
F Switch Popup jQuery 0
G Switch o if PHP 3
A Cambiare Risposta onclick con Switch. Javascript 1
filomeni Switch in cascata Reti LAN e Wireless 22
W Problema switch PHP 1
I Problema switch Reti LAN e Wireless 2
alankanz switch case con explode PHP 1
Z Switch ES-1528 managed Reti LAN e Wireless 2
L uso di switch PHP 2
Jonn Sito web Multilingua con Switch e link concatenanti PHP 8
V Connessone switch PoE Reti LAN e Wireless 3
F estrazione dal db con switch di pagina PHP 1
Erzsébeth Switch errato PHP 2
Komix $_GET e switch, problema di stampa PHP 4
R switch che non funziona con select $_session PHP 3
C scelta switch Reti LAN e Wireless 2
minatore switch che non funziona PHP 5
D Script con switch case e while PHP 2
SolidSnake4 info su switch in php PHP 1
B bug con switch su float PHP 5
D come utilizzare lo switch...? PHP 2
W Problema switch case e $_GET PHP 0
T Problema switch PHP 3

Discussioni simili