Visualizzazione dei risultati da 1 a 7 su 7
  1. #1
    Utente di HTML.it L'avatar di Trinità76
    Registrato dal
    Jan 2002
    Messaggi
    1,439

    [php~MySQL] update solo della riga richiesta tramite form

    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:
    わさび

  2. #2
    Utente di HTML.it L'avatar di Trinità76
    Registrato dal
    Jan 2002
    Messaggi
    1,439
    uppatina... nessuno mi aiuta?
    わさび

  3. #3
    Originariamente inviato da Trinità76
    uppatina... nessuno mi aiuta?
    A capire quello che hai scritto... volentieri...


    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  4. #4
    Utente di HTML.it L'avatar di Trinità76
    Registrato dal
    Jan 2002
    Messaggi
    1,439
    Originariamente inviato da piero.mac
    A capire quello che hai scritto... volentieri...

    In pratica siccome ho 3 tabelle nel database che si concatenano fra di loro (INNER JOIN), quando dal pannello che ho creato per modificare i dati li edito, vorrei fare in modo che l'UPDATE agisca solo sul dato che si desidera cambiare.
    Ad esempio avendo:
    tabella1.ID
    tabella1.field1
    tabella1.field2
    tabella1.field3
    tabella1.field4
    tabella2.ID
    tabella2.IDtabella1
    tabella2.field1
    tabella2.field2
    tabella3.ID
    tabella3.IDtabella2
    tabella3.field1
    tabella3.field2
    etc...
    ...ho messo nel form che edita questi dati, accanto ad ogniuno di essi un checkbox che, se marcato dovrebbe fare l'UPDATE solo di quel dato... :master:
    わさび

  5. #5
    E possibile fare un update utilizzando la join ma ne viene fuori una query abbastanza complessa che va provata e affinata su dati reali.

    Ho un caso di una agenda che ho fatto proprio ieri, dove avendo una serie di dati modificabili ed altri no, presento i dati da modificare in un input/textarea, e poi faccio l'update senza curarmi di quello modificato e quello che non lo e'. Se e' uguale il campo non viene aggiornato se diverso si.

    Direi che dovresti fare tre update (l'id ce l'hai) e ribattere il tutto che e' modificabile. Sicuramente la via piu' semplice.
    Mi auguro che l'id non sia modificabile.... almeno quello primario.


    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  6. #6
    Utente di HTML.it L'avatar di Trinità76
    Registrato dal
    Jan 2002
    Messaggi
    1,439
    Originariamente inviato da piero.mac
    E possibile fare un update utilizzando la join ma ne viene fuori una query abbastanza complessa che va provata e affinata su dati reali.

    Ho un caso di una agenda che ho fatto proprio ieri, dove avendo una serie di dati modificabili ed altri no, presento i dati da modificare in un input/textarea, e poi faccio l'update senza curarmi di quello modificato e quello che non lo e'. Se e' uguale il campo non viene aggiornato se diverso si.

    Direi che dovresti fare tre update (l'id ce l'hai) e ribattere il tutto che e' modificabile. Sicuramente la via piu' semplice.
    Mi auguro che l'id non sia modificabile.... almeno quello primario.

    heheh no sta tranquillo che l'Id non è modificabile...
    però anche se immaginavo che fosse una cosa complessa, mi chiedevo se ci fosse un modo per scrivere funzione che per ogni valore dell'array, li stampa e li separa con virgola...
    (quindi l'ultimo escluso)...
    In pratica il form con i checkbox per modificare li ho già creati...
    わさび

  7. #7
    Originariamente inviato da Trinità76
    heheh no sta tranquillo che l'Id non è modificabile...
    però anche se immaginavo che fosse una cosa complessa, mi chiedevo se ci fosse un modo per scrivere funzione che per ogni valore dell'array, li stampa e li separa con virgola...
    (quindi l'ultimo escluso)...
    In pratica il form con i checkbox per modificare li ho già creati...
    Puoi anche fare una funzione che valuti la pressione dei tasti per capire se chi scrive e' gay.... La sostanza non cambia. Ribatti tutto, se e' diverso lo cambia, se e' uguale no.... La semplicita' e' l'anima del software....


    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.