Punto informatico Network
Login Esegui login | Non sei registrato? Iscriviti ora (è gratuito!)
Username: Password:
  • Annuncio Pubblicitario

[PHP + MySQL] Somma di un valore direttamente in query

Cerchi consigli per migliorare il tuo sito? Vuoi aprire un sito in poco tempo?
Discuti con altri webmaster, chiedi chiarimenti ed opinioni in tutta libertà.
Lo spam verrà cancellato.

[PHP + MySQL] Somma di un valore direttamente in query

Messaggioda BlackJack » gio gen 31, 2013 4:57 pm

Ciao a tutti,
ho una pagina HTML dove l'utente deve scegliere tra due opzione e inviare il form. Supponiamo che queste due opzioni si chiamino "a" e "b". Assieme alle due opzione un campo "hidden" mi passa l'id dell'operazione.
Una volta fatto il post i dati arrivano alla pagina php che li elabora.
assegno alla variabile '$lettera' la lettera scelta dall'utente nel form. Lo stesso faccio per $id

Nel database ho una tabella così strutturata:
id | a | b (tutti campi INT)

Quello che voglio fare è aggiungere 1 (somma del numero 1) al valore già presente nel campo corrispondente all'id alla colonna 'a' o 'b', in base a cosa ha scelto l'utente prima. Chiarisco meglio: se '123' sceglie 'a', voglio che la colonna 'a' dell'id 123 incrementi di un valore.
E' possibile farlo in una sola query? O devo per forza fare una query che mi estragga il valore attuale della colonna scelta, e poi un'altra che faccia la somma del valore estratto e di '1'?

Grazie mille, spero di essere stato chiaro a sufficienza.
Un giorno ho messo un disco di Jimi Hendrix e mio figlio ha chiesto: ‘Papà, chi è?’. Io ho risposto, ‘Figlio mio, questo è Dio’. Robert Plant, Led Zeppelin
Avatar utente
BlackJack
Membro Ufficiale (Gold)
Membro Ufficiale (Gold)
 
Messaggi: 1811
Iscritto il: gio mag 06, 2010 7:47 pm
Località: Prov. Vercelli

Re: [PHP + MySQL] Somma di un valore direttamente in query

Messaggioda Andy94 » gio gen 31, 2013 5:35 pm

È fattibile con una query sola che si articola così:
Codice: Seleziona tutto
UPDATE tua_tabella SET a = a +3 WHERE id='1'


Dove tua_tabella è il nome della tabella, "a" è il campo (che va modificato due volte) e "id" è il campo primario di riferimento da utilizzare. 3 è il valore di incremento, che deriva dall'input utente (o da quello che vuoi).

[ciao]
Avatar utente
Andy94
Membro Ufficiale (Gold)
Membro Ufficiale (Gold)
 
Messaggi: 9998
Iscritto il: lun apr 09, 2007 8:39 pm

Re: [PHP + MySQL] Somma di un valore direttamente in query

Messaggioda BlackJack » gio gen 31, 2013 5:55 pm

Avevo trovato una query simile, ma l'avevo impostata male.
Perfetto come sempre, Andy!

Ora vorrei fare una cosa simile: ho un campo chiamato "lista_id" che sarà formato da una serie di valori delimitati da virgole (o altro).
Voglio che quando l'utenti compia una determinata azione, un certo valore venga aggiunto a "lista_id". In questo caso però non si tratta di una somma, di aggiungere un valore numerico, preceduto da una virgola, al testo già presente all'interno del campo. non so se mi spiego bene...

Grazie mille.
Un giorno ho messo un disco di Jimi Hendrix e mio figlio ha chiesto: ‘Papà, chi è?’. Io ho risposto, ‘Figlio mio, questo è Dio’. Robert Plant, Led Zeppelin
Avatar utente
BlackJack
Membro Ufficiale (Gold)
Membro Ufficiale (Gold)
 
Messaggi: 1811
Iscritto il: gio mag 06, 2010 7:47 pm
Località: Prov. Vercelli


Re: [PHP + MySQL] Somma di un valore direttamente in query

Messaggioda M@ttia » gio gen 31, 2013 6:09 pm

Sono un po' (tanto) arrugginito con le query MySQL, ma dovresti ottenere il risultato con
Codice: Seleziona tutto
UPDATE tua_tabella SET lista_id=CONCAT(lista_id , ',' , numero_da_aggiungere) WHERE id=id_utente_attuale


Un esempio di query sarà:
Codice: Seleziona tutto
UPDATE tua_tabella SET lista_id=CONCAT(lista_id , ',' , 35) WHERE id=14
</IE><FIREFOX>
Avatar utente
M@ttia
Moderatore
Moderatore
 
Messaggi: 8363
Iscritto il: lun giu 09, 2003 2:18 pm
Località: Ticino - Estero

Re: [PHP + MySQL] Somma di un valore direttamente in query

Messaggioda Andy94 » gio gen 31, 2013 6:21 pm

Quello che dice M@t è giusto, e anche io ti avrei detto lo stesso.
Tuttavia, vorrei segnalarti che un modo molto più comodo per gestire il tutto è con una tabella a parte. Ti sembrerà strano, ma con una tabella che associa un ID ad un utente per ciascuna riga faresti molto prima.

Sopratutto in fase di visualizzazione dei dati o, ancor meglio, in eliminazione (se ad esempio ti capita uno scenario come 1,2,3,4,5,6,7,8 e devi eliminare 3).

[ciao]
Avatar utente
Andy94
Membro Ufficiale (Gold)
Membro Ufficiale (Gold)
 
Messaggi: 9998
Iscritto il: lun apr 09, 2007 8:39 pm

Re: [PHP + MySQL] Somma di un valore direttamente in query

Messaggioda BlackJack » gio gen 31, 2013 6:30 pm

Cerco di chiarire meglio a cosa serve tutto ciò: un sistema di sondaggi presente in diverse pagine (ognuna con ID). Quando l'utente vota, voglio che l'ID venga aggiunto al suo "profilo" in modo che sappia del suo voto e non possa votare nuovamente. Il voto è unico e non è modificabile, per tanto quanto detto da Andy in questo caso mi è inutile. Lo terrò da conto per i prossimi lavori, questo senz'altro!

Grazie anche a M@ttia, appena finisco il sistema di registrazione provo subito la query!!
Un giorno ho messo un disco di Jimi Hendrix e mio figlio ha chiesto: ‘Papà, chi è?’. Io ho risposto, ‘Figlio mio, questo è Dio’. Robert Plant, Led Zeppelin
Avatar utente
BlackJack
Membro Ufficiale (Gold)
Membro Ufficiale (Gold)
 
Messaggi: 1811
Iscritto il: gio mag 06, 2010 7:47 pm
Località: Prov. Vercelli

Re: [PHP + MySQL] Somma di un valore direttamente in query

Messaggioda Andy94 » gio gen 31, 2013 7:16 pm

Ah ok, allora potrebbe anche andare.

Tuttavia quel metodo resta valido _in ogni caso_, quindi anche nel tuo. Ovvio che se hai già progettato il concept non è il caso di cambiare, soprattutto per uno scenario come quello. [^]

[ciao]
Avatar utente
Andy94
Membro Ufficiale (Gold)
Membro Ufficiale (Gold)
 
Messaggi: 9998
Iscritto il: lun apr 09, 2007 8:39 pm


Torna a Sviluppo Web

Chi c’è in linea

Visitano il forum: Nessuno e 5 ospiti

Powered by phpBB © 2002, 2005, 2007, 2008 phpBB Group
Traduzione Italiana phpBB.it

megalab.it: testata telematica quotidiana registrata al Tribunale di Cosenza n. 22/09 del 13.08.2009, editore Master New Media S.r.l.; © Copyright 2008 Master New Media S.r.l. a socio unico - P.I. 02947530784. GRUPPO EDIZIONI MASTER Spa Tutti i diritti sono riservati. Per la pubblicità: Master Advertising