32 ospiti e 0 utenti registrati online.
UserName
  Password  Registrati Ora! E' Gratuito!
 
 MMKit Forums » » Php » » Aggiornamento dati db
(Moderato da: dyablo, m77, Zubin)  
AutoreTopic: Aggiornamento dati db
Sergionza Uomo
Alchimista


Con noi da: 09-09-2005
Posts: 3173
Da: Genova

 Inviato il: 26-01-2012 17:01   
Ciao a tutti,
dunque, mi trovo con un problema di logica e di costruzione di codice.
Devo scrivere una funzione che elabori il codice per aggiornare una tabella per alcuni profili utenti, dove si aggiornino i campi solo se questi sono stati compilati da parte di chi agisce sul form.
Quindi sono a chiedere.

quale procedura conviene seguire (non voglio usare Javascript ma solo PHP)?
Quale codice è preferibile usare?
fin'ora ho sempre usato il ricevimento dal form e la classica query di update, però vorrei integrare ujn controllo "dinamico" che modifichi la query di conseguenza...

aspetto "idee"...

Grazie!


-----------------
Il portale ufficiale dell'oratorio "Fra le Case"
le mie foto su Flickr!



Clicca qui per vedere il profilo di Sergionza Invia un messaggio privato a Sergionza Aggiungi Sergionza alla tua buddy list Clicca qui per inviare una mail a Sergionza Homepage: http://www.flickr.com/photos/Sergionza.it Clicca qui per rispondere 'citando' questo post
MoW Uomo
Apprendista Stregone


Con noi da: 05-06-2003
Posts: 1845
Da: Perugia

 Inviato il: 30-01-2012 07:48   
Ciao Sergionz :)
Non sono riuscito a capire esattamente quello che deve fare la funzione.


-----------------
src *.MoW



Clicca qui per vedere il profilo di MoW Invia un messaggio privato a MoW Aggiungi MoW alla tua buddy list Homepage: http://www.deskema.it Clicca qui per rispondere 'citando' questo post
Sergionza Uomo
Alchimista


Con noi da: 09-09-2005
Posts: 3173
Da: Genova

 Inviato il: 30-01-2012 08:58   
Ciao Mow!
Allora... il dubbio è più sulla tecnica che sulla modalità...
io riesco a ricavare i dati dal form per poi fare la classica query di update.
E il procedimento va a buon fine... quello che mi chiedo è:

E' possibile fare una query "dinamica", che venga composta a seconda dei campi valorizzati dall'utente? Se si, si può fare un esempio?

esempio di query "dinamica"

Code:


//se è valorizzato solo $nome
$query = "UPDATE table SET 'nome' == '$nome' WHERE id = x";

//se è valorizzato $cognome oltre a $nome
$query = "UPDATE table SET 'nome' == '$nome',
                                      'cognome' == '$cognome' WHERE id = x"
;

//e cosi via...




ovviamente io ho messo dei "commenti" al posto del codice, ma mi piacere che lo script implementasse una SOLA richiesta al database, e non ad esempio mettendo una serie di if o uno switch...

E' fattibile? chiedo la luna?

grazie....




-----------------
Il portale ufficiale dell'oratorio "Fra le Case"
le mie foto su Flickr!



Clicca qui per vedere il profilo di Sergionza Invia un messaggio privato a Sergionza Aggiungi Sergionza alla tua buddy list Clicca qui per inviare una mail a Sergionza Homepage: http://www.flickr.com/photos/Sergionza.it Clicca qui per rispondere 'citando' questo post
MoW Uomo
Apprendista Stregone


Con noi da: 05-06-2003
Posts: 1845
Da: Perugia

 Inviato il: 30-01-2012 09:36   
Ciao :)

se ho capito bene la natura del tuo problema il tutto è molto semplice.

Parto dal presupposto che la form AGGIORNI e non INSERISCA dati, quindi i campi della stessa sono già popolati con i rispettivi valori presi da DB per dato ID. Correggimi se dico castronerie.

Quindi, se tu scrivi una normalissima query di UPDATE tipo:


Code:


$q
="UPDATE table SET
nome='"
. $POST['nome'] ."',
cognome='"
. $POST['conome'] ."'
WHERE id=x"
;




Non hai bisogno di scrivere condizioni o altre query.
Di query ne basta una.. tu devi agire solamente nella Form e nei dati che vengono pescati dinamicamente.
Nel momento in cui aggiorni i dati, se decidi di cancellare ad esempio il valore di "cognome" lo cancelli dall'input relativo e invii. se invece intendi mantenerlo inalterato lo lasci stare così com'è.

Non so se mi sono spiegato.
magari scriviti delle funzioni per pescare il singolo record nella tabella es.


Code:


function returnRec($field, $table, $where){
     
$q=mysql_query("SELECT $field FROM $table $where");
     
$r=mysql_fetch_array($q);
     return
$r[$field];
}

<
input type="text" name="nome" value="<?=returnRec('nome', 'table', "WHERE id=x")?>">





-----------------
src *.MoW

[ Questo messaggio è stato modificato da: MoW - 30-01-2012 09:37 ]



Clicca qui per vedere il profilo di MoW Invia un messaggio privato a MoW Aggiungi MoW alla tua buddy list Homepage: http://www.deskema.it Clicca qui per rispondere 'citando' questo post
Sergionza Uomo
Alchimista


Con noi da: 09-09-2005
Posts: 3173
Da: Genova

 Inviato il: 09-02-2012 16:27   
Ciao Mow,
si ho capito il tuo suggerimento...
però mi veniva in mente un eventualità che nel caso di "utonti"
spesso può succedere. provo a spiegarmi:

Allora, l'utente clicca su "modifica" e gli si apre il form con i campi
precompilati grazie all'estrazione dei dati dal db.
Può capitare che scorrendo il form cancelli per sbaglio alcuni campi e
che quest'ultimi rimangano vuoti. La mia idea di "query" dinamica era proprio volta ad evitare questo senza aggiungere una serie annidata di if
o altri controlli js per aggiornare solo quei campi dal contenuto modificato
rispetto al precedente o che non siano vuoti... sogno?

Grazie e... ciao!


-----------------
Il portale ufficiale dell'oratorio "Fra le Case"
le mie foto su Flickr!



Clicca qui per vedere il profilo di Sergionza Invia un messaggio privato a Sergionza Aggiungi Sergionza alla tua buddy list Clicca qui per inviare una mail a Sergionza Homepage: http://www.flickr.com/photos/Sergionza.it Clicca qui per rispondere 'citando' questo post
MoW Uomo
Apprendista Stregone


Con noi da: 05-06-2003
Posts: 1845
Da: Perugia

 Inviato il: 16-02-2012 20:15   
se il tuo problema è evitare che i campi tabella non vengano aggiornati con valori NULL senza controlli php o js agendo direttamente a livello sql ti devi cercare un pò di documentazione su IF NULL o COALESCE() di mysql...
Vado un pò a naso perchè francamente non ho capito dove sia il problema.
Ciao
-----------------
src *.MoW

[ Questo messaggio è stato modificato da: MoW - 16-02-2012 20:32 ]



Clicca qui per vedere il profilo di MoW Invia un messaggio privato a MoW Aggiungi MoW alla tua buddy list Homepage: http://www.deskema.it Clicca qui per rispondere 'citando' questo post
  
  
Vai a:
Visualizza la versione da stampa
Segnala questo thread al moderatore
Aggiungi questo thread alla tua lista preferiti [Visualizza]
Non voglio più ricevere nessuna mail riguardo questo thread


FAQ | Top 10 | Statistiche
MMKit - Macromedia Community Shared Knowledge
Tutti i loghi sono appartenenti ai rispettivi proprietari