Insert Into con condizione

intimoviro

Utente Attivo
18 Ago 2009
272
0
0
Salve, vorrei inserire dati nel database se si verificano delle condizioni, cioè:

PHP:
if ($username != $use) {
//se l'username non esiste eseguo questa condizione
$database = "INSERT INTO carrello_sos (id_prodotto, username, nome_serv, richiesta, descrizione, prezzo, quantita) VALUES ('$id', '$username', '$nome', '$richiesta', '$descrizione', '$prezzo', $quant)";
 $database2 = mysql_query($database);
   if(!$database2) die(mysql_error());
}else{
//altrimenti
$database = "INSERT INTO carrello_sos (id_prodotto, nome_serv, richiesta, descrizione, prezzo, quantita) VALUES ('$id', '$nome', '$richiesta', '$descrizione', '$prezzo', $quant)";
 $database2 = mysql_query($database);
   if(!$database2) die(mysql_error());
}

Vi spiego meglio, ho un carrello, un'utente inserisce un prodotto nel carrello, e cosi lo script lo salva in un database che verrà cancellato a fine ordine, poi l'utente ritorna sul sito e inserisce un'altro prodotto nel carrello, a quel punto lo script deve controllare se l'username corrisponde ad un'username già presente nella tabella, deve inserire il nuovo prodotto nello stesso id del carrello del cliente, altrimenti ne deve creare uno nuovo.
Avevo provato in questo modo:
PHP:
$query = "INSERT INTO tabella WHERE username = '$username'(id_prodotto....
Però mi da un'errore di sintassi.
Quindi a questo punto, non so se è corretto scrivere in questo modo la query.
Spero di essere stato abbastanza chiaro, altrimenti non esitate a chiedere ulteriori informazioni.
Grazie :D
 

satifal

Utente Attivo
25 Set 2008
522
13
0
Roma
La insert che fai è sbagliata per questo ti da errore nella sintassi, dovrebbe essere così:

PHP:
$query = "INSERT INTO carrello_sos (id_prodotto, nome_serv, richiesta, descrizione, prezzo, quantita) VALUES ('$id', '$nome', '$richiesta', '$descrizione', '$prezzo', $quant) WHERE username = '$username'";
 

intimoviro

Utente Attivo
18 Ago 2009
272
0
0
Satifal ho provato come dici tu, ma mi dice questo:

Codice:
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'WHERE username = 'prova'' at line 1

Come mai?
 

satifal

Utente Attivo
25 Set 2008
522
13
0
Roma
Hai ragione, scusami, mea culpa. La clausola WHERE non può essere utilizzata nella INSERT in quanto stai creando un nuovo record. Se l'utente c'è già allora devi effettuare un UPDATE la cui sintassi è:

Codice:
UPDATE tabella SET campo1 = 'valore1', campo2 = 'valore2', ..., campoN = 'valoreN' WHERE campo = 'condizione';
 

intimoviro

Utente Attivo
18 Ago 2009
272
0
0
Il fatto è che non voglio fare l'update, ma inserire altri dati dove è presente quell'username.
Non so, ma è possibile inserire più righe nel database sotto un solo id?
Cioè ho una tabella carrello_sos con i seguenti campi: id, id_prodotto, nome...
Ora il cliente aggiungendo il suo primo prodotti inserisce i dati in quella tabella. Ritornando sul sito ne aggiunge un'altro, ora nella tabella precedente dove è presente il suo username va ad aggiungere il nuovo prodotto mantenendo il vecchio.

Non so se sono stato abbastanza chiaro. :(
 

satifal

Utente Attivo
25 Set 2008
522
13
0
Roma
Allora basta fare un semplice INSERT senza alcuna clausola:

PHP:
$query = "INSERT INTO carrello_sos (id_prodotto, username, nome_serv, richiesta, descrizione, prezzo, quantita) VALUES ('$id', '$username', '$nome', '$richiesta', '$descrizione', '$prezzo', $quant)";

In questo modo verrà inserito un nuovo record per ogni nuovo prodotto inserito nel carrello da quel particolare utente. Poi, per recuperare tutti i prodotti presenti nel carrello di quell'utente basta fare una SELECT su quel username:

PHP:
$query = "SELECT * FROM carrello_sos WHERE username = '$username'";
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao
in ritardo per problemi, ma ho visto che ti ha risposto satifal, comunque per semplificare intendevo questo, ma è uno stile di programmazione, non un errore, es

if ($username != $use) {
//se l'username non esiste eseguo questa condizione
$database = "INSERT INTO carrello_sos (id_prodotto, username, nome_serv, richiesta, descrizione, prezzo, quantita) VALUES ('$id', '$username', '$nome', '$richiesta', '$descrizione', '$prezzo', $quant)";
}else{
//altrimenti
$database = "INSERT INTO carrello_sos (id_prodotto, nome_serv, richiesta, descrizione, prezzo, quantita) VALUES ('$id', '$nome', '$richiesta', '$descrizione', '$prezzo', $quant)";
}
$database2 = mysql_query($database);
if(!$database2) die(mysql_error());

o anche così

if ($username != $use) {
//se l'username non esiste eseguo questa condizione
$nome="username, ";
$username="'".$username."', "
}else{
//altrimenti
$nome="";
$username"";
}

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

a me non piace ripetere le stesse istruzioni
 
Discussioni simili
Autore Titolo Forum Risposte Data
Z problemi con foreach insert into PHP 10
A PROBLEMA: insert mysqli con dati Tagsinput Presentati al Forum 0
3_g errore con mysql insert in PDO PHP 29
Laskot Query al DB con php (INSERT) PHP 2
O errore INSERT con oggeto datetime MySQL 2
E Problemi auto increment con query Insert Into Select MySQL 2
stellare21 insert con Sqlite e PHP PHP 4
Marco_88 Aiuto con istruzione INSERT Database 8
M Problemi con la insert PHP 1
I Insert con select da tabella e valori predefiniti MySQL 2
E Problema con INSERT INTO Classic ASP 2
P Problema con INSERT Database 1
G problema con insert e update PHP 2
A Insert into con righe multiple da variabile PHP 5
M INSERT TO con spazio tra due parole Classic ASP 10
D inserire immagine con dreamweaver INSERT PHP 0
A Problema con le INSERT PHP 6
grottafelix Problemi con INSERT Classic ASP 1
R insert con asp.net ASP.NET 3
P Access: recuperare Indice dopo un insert into MS Access 0
R INSERT INTO tabella non funziona Classic ASP 2
Y INSERT INTO PHP 0
M più insert tramite while loop PHP 1
G Insert into select - Aiuto MySQL 0
L Insert php sql da una form multipla PHP 6
A [PHP] Problema query insert [RISOLTO] PHP 14
elpirata [RISOLTO][Mysql] Problema insert valori apostrofati MySQL 1
P [PHP] INSERT e UPDATE PHP 1
D [ASP] Mysql insert e update Classic ASP 2
M [Javascript] Verifica calcolo prima di fare insert Javascript 13
Monital [PHP] Insert into non inserisce tutti i dati PHP 1
trattorino [PHP] problema entrata immagini insert PHP 1
C [Visual Basic] Errore INSERT su DB MySQL (VB.Net) Visual Basic 4
Merlina3377 php insert dati su tabella sql PHP 9
T [PHP] impedire un doppio INSERT INTO dopo reload della pagina PHP 3
daniele8808 Insert a converted php array in a js object PHP 4
P [MySQL] Query su DB 1 e Insert su DB 2 PHP 11
P [PHP] merge di 2 tabelle e insert su terza tabella PHP 15
giancadeejay [PHP] INSERT into tabella tramite scelta checkbox PHP 0
E [PHP] problema insert query PHP 9
A insert ed upload PHP 1
A Insert multiple a partire da form html PHP 3
A Insert non inserirsce tutti i valori MySQL 11
MarcoGrazia [PDO] insert che non inserisce e non da errori PHP 1
MarcoGrazia Insert into che da errore: numero di parametri non validi.... MySQL 7
S Insert into....on duplicate key update MySQL 2
A Insert da ciclo for PHP 4
Monital [risolto] insert into if select non presente MySQL 7
G Inserimento loop in una INSERT query in PHP e MySQL PHP 2
S INSERT e UPDATE non funzionano PHP 1

Discussioni simili