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...
Microsoft Defender: falso allarme sull'a...
Aerei in volo e truppe pronte all'assalt...
Usano Claude per hackerare OpenAI: ricer...
RatHat: il nuovo malware Android usa il ...
Domanda di petrolio in calo di 2,5 milio...
Il meglio delle offerte weekend Amazon a...
Dopo oltre 100 anni di tentativi, l'IA d...
Speciale robot aspirapolvere in offerta ...
L'IA sta cancellando i lavori junior? Il...
Debutta Chery Italia: non più sol...
Addio ai dischi? Xbox ci aveva già...
Speciale TV Amazon: 4 modelli, da 139€ f...
Il nuovo iPhone 18 Pro Max ha una ricari...
Speciale smartphone Android: 7 modelli i...
La Camera USA presenta il conto: i data ...
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: 18:10.


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