Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Recensione REDMI Note 17 Pro: il midrange con batteria da 8.340 mAh e ricarica veloce
Recensione REDMI Note 17 Pro: il midrange con batteria da 8.340 mAh e ricarica veloce
REDMI Note 17 Pro porta in fascia media una batteria da 8.340 mAh con ricarica HyperCharge a 67W, un display AMOLED da 6,83 pollici capace di picchi di luminosità molto elevati e una struttura certificata TÜV SÜD contro cadute e infiltrazioni d'acqua, il tutto racchiuso in una scocca da 223 grammi. Lo abbiamo provato per diversi giorni tra fotocamera, prestazioni, autonomia e prezzo sul mercato italiano
Insta360 Luna Ultra: la potenza del sensore da 1 pollice incontra la portabilità estrema
Insta360 Luna Ultra: la potenza del sensore da 1 pollice incontra la portabilità estrema
Insta360 Luna Ultra integra un sensore da 1 pollice 8K, ottiche Leica e triplo chip IA. Tra schermo OLED rimovibile, workflow I-Log a 10 bit e stabilizzazione a tre assi, analizziamo le doti tecniche di una gimbal camera pensata per i professionisti
Marvel's Wolverine, la recensione: Logan torna protagonista in un'avventura brutale e intensa
Marvel's Wolverine, la recensione: Logan torna protagonista in un'avventura brutale e intensa
Marvel's Wolverine porta Logan in un'avventura inedita, violenta e fortemente narrativa, costruita attorno alla sua natura di combattente e al difficile rapporto con il proprio passato. Insomniac Games punta su combattimenti spettacolari, progressione e personalizzazione, inserendo l'azione in un mondo segnato dalla persecuzione dei mutanti. Un viaggio intenso, che alterna mattanza, esplorazione e momenti sorprendentemente emotivi.
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 31-03-2010, 14:13   #1
bebbbo
Senior Member
 
L'Avatar di bebbbo
 
Iscritto dal: Nov 2003
Città: Arese(MI)
Messaggi: 321
[PHP] Costruisre una stringa SQL per fare l'UPDATE

Ciao a tutti,
ho un modulo con alcuni campi input di testo che invia tutti i valori dei campi (anche quelli nulli) ad una pagina PHP che sulla base di questi valori aggiorna un record di una tabella di un DB.

Il problema è il seguente:

La stringa SQL deve essere "UPDATE tabella SET campo1=valore1, campo2=valore2, campo3=valore3 WHERE id=stringa"

Il mio form manda quindi alla pagina php i 3 valori (valore1, valore2, valore3) che io pesco con $_GET e assegno a 3 variabili.

Devo fare in modo che se l'utente non inserisce un valore in uno o più dei 3 campi, la stringa UPDATE non contenga quel campo da aggiornare perchè altrimenti mi andrebbe a sovrascrivere un valore che invece l'utente non ha deciso di modificare.

Come posso fare?

Ero partito con una cosa del genere

Codice:
$stringaSQL = "UPDATE tabella SET ";
if (!is_null($valore1) OR $valore1 != "") {
   $stringaSQL = $stringaSQL . "campo1=" . $valore1 . ", ";
}
if (!is_null($valore2) OR $valore2 != "") {
   $stringaSQL = $stringaSQL . "campo2=" . $valore2 . ", ";
}
if (!is_null($valore3) OR $valore3 != "") {
   $stringaSQL = $stringaSQL . "campo3=" . $valore3 . ", ";
}
$stringaSQL = $stringaSQL . "WHERE id=" . $variabile;
Il problema è che cosi in ogni caso alla fine prima della condizione WHERE mi ritrovo una virgola che darebbe errore.
E poi se nessuno dei campi fosse settato cosa accadrebbe?
bebbbo è offline   Rispondi citando il messaggio o parte di esso
Old 31-03-2010, 14:29   #2
zuper
Senior Member
 
Iscritto dal: Mar 2001
Città: PV Milano Nord
Messaggi: 3851
beh così hai 3 condizioni...

a sto punto falle tutte e 5 e risolvi tutti i problemi
  1. tutte
  2. 1 2
  3. 1 3
  4. 2 3
  5. nessuna

__________________
"W la foca, che dio la benedoca"
poteva risolvere tutto la sinistra negli anni in cui ha governato e non l'ha fatto. O sono incapaci o sta bene anche a "loro" cosi.
L'una o l'altra inutile scandalizzarsi.[plutus]
zuper è offline   Rispondi citando il messaggio o parte di esso
Old 31-03-2010, 14:41   #3
bebbbo
Senior Member
 
L'Avatar di bebbbo
 
Iscritto dal: Nov 2003
Città: Arese(MI)
Messaggi: 321
Quote:
Originariamente inviato da zuper Guarda i messaggi
beh così hai 3 condizioni...

a sto punto falle tutte e 5 e risolvi tutti i problemi
  1. tutte
  2. 1 2
  3. 1 3
  4. 2 3
  5. nessuna

Cercavo un algoritmo indipendente dal numero dei campi
bebbbo è offline   Rispondi citando il messaggio o parte di esso
Old 31-03-2010, 15:10   #4
lupoxxx87
Senior Member
 
Iscritto dal: Jul 2009
Città: Varès
Messaggi: 658
c'è una funzione php che prende una stringa (in questo caso l'uri) e ti restituisce un array opportunamente fatto...

per esempio se tu chiami

www.example.com?a=1&b=2&...&n=n

la funzione, di cui non ricordo il nome, ti restituisce

Array( 'a'=>1, 'b'=>2, ..., 'n'=>n );

con questo array puoi fare un for che costruisce la stringa, indipendentemente dal numero dei campi
lupoxxx87 è offline   Rispondi citando il messaggio o parte di esso
Old 31-03-2010, 15:22   #5
zuper
Senior Member
 
Iscritto dal: Mar 2001
Città: PV Milano Nord
Messaggi: 3851
Quote:
Originariamente inviato da bebbbo Guarda i messaggi
Cercavo un algoritmo indipendente dal numero dei campi
ok pensavo fossero solo quei 3

allora mi sa che devi fare un update per ogni EVENTUALE variabile

a meno che nn trovi la funzione per l'array di cui sopra ;9
__________________
"W la foca, che dio la benedoca"
poteva risolvere tutto la sinistra negli anni in cui ha governato e non l'ha fatto. O sono incapaci o sta bene anche a "loro" cosi.
L'una o l'altra inutile scandalizzarsi.[plutus]
zuper è offline   Rispondi citando il messaggio o parte di esso
Old 31-03-2010, 16:43   #6
bebbbo
Senior Member
 
L'Avatar di bebbbo
 
Iscritto dal: Nov 2003
Città: Arese(MI)
Messaggi: 321
Quote:
Originariamente inviato da lupoxxx87 Guarda i messaggi
c'è una funzione php che prende una stringa (in questo caso l'uri) e ti restituisce un array opportunamente fatto...

per esempio se tu chiami

www.example.com?a=1&b=2&...&n=n

la funzione, di cui non ricordo il nome, ti restituisce

Array( 'a'=>1, 'b'=>2, ..., 'n'=>n );

con questo array puoi fare un for che costruisce la stringa, indipendentemente dal numero dei campi
Sai quale è questa funzione?
Non riesco a trovarla.
bebbbo è offline   Rispondi citando il messaggio o parte di esso
Old 31-03-2010, 17:10   #7
lupoxxx87
Senior Member
 
Iscritto dal: Jul 2009
Città: Varès
Messaggi: 658
parse_str ... abbastanza ovvio come nome

http://www.php.net/manual/en/function.parse-str.php

questa è anche meglio

http://www.php.net/manual/en/function.parse-url.php
lupoxxx87 è offline   Rispondi citando il messaggio o parte di esso
Old 31-03-2010, 17:15   #8
bebbbo
Senior Member
 
L'Avatar di bebbbo
 
Iscritto dal: Nov 2003
Città: Arese(MI)
Messaggi: 321
Quote:
Originariamente inviato da lupoxxx87 Guarda i messaggi
grazie per la info!
bebbbo è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Recensione REDMI Note 17 Pro: il midrange con batteria da 8.340 mAh e ricarica veloce Recensione REDMI Note 17 Pro: il midrange con ba...
Insta360 Luna Ultra: la potenza del sensore da 1 pollice incontra la portabilità estrema Insta360 Luna Ultra: la potenza del sensore da 1...
Marvel's Wolverine, la recensione: Logan torna protagonista in un'avventura brutale e intensa Marvel's Wolverine, la recensione: Logan torna p...
DJI Romo 2: tante novità lo rendono un robot completo DJI Romo 2: tante novità lo rendono un ro...
Sony Bravia 9 II: il True RGB alla prova, dove l'LCD sfida l'OLED Sony Bravia 9 II: il True RGB alla prova, dove l...
The Blood of Dawnwalker, il sequel potre...
Colpiti i data center Amazon: irrecupera...
Google Wallet, nuova interfaccia in arri...
iPhone Duo, problemi di produzione per i...
Firefox diventa più veloce con PDF e JPE...
WhatsApp, arriva su iOS la nuova scorcia...
Snap presenta Specs: realtà aumentata, c...
SteamOS verso un cambiamento epocale: ar...
Recensione HUAWEI FreeBuds Neo, piccoli ...
TSMC aumenta i costi di produzione: AMD ...
L'Europa sfida i magnati dei combustibil...
One UI 9 arriva sui Galaxy S26: pi&ugrav...
Hacker chiedono 2,5 milioni di euro a Re...
Home Assistant su uno schermo touch econ...
L'IA entra nei negozi Unieuro con Google...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 17:29.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Served by www3v