Salve,
Ho tre tabelle nel database che si intersecano con delle INNER JOIN. Ho creato un pannello (un form) per modificare i valori di queste tabelle da online, solo che ho fatto in modo l'UPDATE agisca effettivamente solo nella riga richiesta e non su tutte e tre le tabelle (concatenandole appunto con l'ID)...
Poniamo ad esempio di avere
tab1. con 'id', 'a', 'b', 'c', 'd'
tab2. con 'id', 'idtab1', 'e', 'f'
tab3. con 'id', 'idtab1', 'g', 'h', 'i', 'j' etc...
Una volta che edito un record, mi importo tutti i dati in un form, e accanto a ogni voce di esso ho messo una checkbox, che se marcata l'UPDATE dovrebbe andare a modificare solo quel valore...
Come fare tutto questo?
Ho messo in tre array i nomi dei campi delle tabelle:
nel valore 0 c'è il nome della tabella e nei successivi i nomi delle colonne...
nel caso dell'esempio così:
Codice PHP:
$a1 = array ("tab1", "id", "a", "b", "c", "d"); #0~5
Successivamente verifico se la variabile della combobox associata è settata su 1 (è marcata),
Codice PHP:
if ($cba == '1') { $a1[1] = $_GET['a']; } else { unset ($cba); unset ($a1[1]); }
...sovrascrivo nell'array al posto del nome della colonna, il contenuto di essa... nel caso contrario (in cui la combo non è settata) distruggo sia la variabile della combo e sia il contenuto dell'array di quel campo.
Ora il punto è:
come impostare la $query in modo tale da fare gli update solo dei campi chekkati? :master:
Mi servirebbe un for, o un ciclo per far scrivere fin dove trova i valori dell'array nell'UPDATE il tutto separato da virgole...
UPDATE tab1 SET ... :master: