Visualizzazione dei risultati da 1 a 10 su 10
  1. #1

    UPDATE di più righe insieme

    Salve, ho una pagina che mi crea con un mysql_fetch_array un elenco di imput da modificare, purtroppo con le conoscenze che ho al momento riesco a modificare una sola riga per volta.

    mi spiego meglio; l'elenco della pagina classifica da modificare crea la seguente pagina:



    ora per modificare le righe una ad una uso questo codice:

    Codice PHP:
    $query "UPDATE CLASSIFICA_ITALIA SET SQUADRA='$SQUADRA', PUNTI='$PUNTI', VINTE='$VINTE', PERSE='$PERSE'WHERE ID_CLASSIFICA='$ID_CLASSIFICA'"
    ma come posso modificare tutte le righe insieme inserendo il tasto modifica alla fine?

    grazie in anticipo spero di essermi spiegato

  2. #2
    Dal momento che c'è la clausola WHERE e tu vuoi modificare quell'ID_CLASSIFICA e non altri, devi necessariamente fare più queries.
    Puoi comunque mettere un unico bottone di salvataggio ed effettuare insieme le modifiche.

    Nel form metti gli array tipo:
    <input name="SQUADRA[1] />
    dove 1 è il tuo ID_CLASSIFICA e così via, alla fine ti arrangi il POST e ti prepari le queries in un ciclo foreach.

  3. #3
    Dal momento che c'è la clausola WHERE e tu vuoi modificare quell'ID_CLASSIFICA e non altri, devi necessariamente fare più queries. Puoi comunque mettere un unico bottone di salvataggio ed effettuare insieme le modifiche.
    Non è vero!

    Codice PHP:
    $sql "UPDATE CLASSIFICA_ITALIA SET SQUADRA='$SQUADRA', PUNTI='$PUNTI', VINTE='$VINTE', PERSE='$PERSE'WHERE ID_CLASSIFICA IN ($id1$id2$id_n) "
    Per come andare ad associare gli ID con i valori modificati, spetta a te trovare la soluzione (anche perché non so come è strutturata la tua form), ad ogni modo con questa tecnica puoi fare l'update di più record contemporaneamente.

    Per ogni dubbio ulteriore, fai sempre riferimento al manuale di MySQL.

    <ALCIO />
    Per cortesia: no PVT Tecnici
    ******* LINKS *******
    SRL
    MetalWave

  4. #4
    Codice PHP:
    $sql "UPDATE CLASSIFICA_ITALIA SET SQUADRA='$SQUADRA', PUNTI='$PUNTI', VINTE='$VINTE', PERSE='$PERSE' WHERE ID_CLASSIFICA IN ($id1$id2$id_n) "
    Per come andare ad associare gli ID con i valori modificati, spetta a te trovare la soluzione (anche perché non so come è strutturata la tua form), ad ogni modo con questa tecnica puoi fare l'update di più record contemporaneamente.

    Per ogni dubbio ulteriore, fai sempre riferimento al manuale di MySQL.

    questa soluzione mi pare buona però non capisco, mettendo solo il WHERE ID_CLASSIFICA IN ($id1, $id2, $id3 ecc) non dovrei dirgli anche gli altri campi a cosa vanno associati?

    ah ecco appunto non avevo letto "Per come andare ad associare gli ID con i valori modificati, spetta a te trovare la soluzione" eheheh

  5. #5
    help me..
    dunque semplicemente ho fatto:

    Codice PHP:
    $query "SELECT * FROM CLASSIFICA ORDER BY ID_CLASSIFICA";
    $result mysql_query($query$db);
    $row mysql_fetch_array($result);

    e poi sotto


    $row
    [SQUADRA$row[PUNTI$row[VINTE$row[PERSE$row[ID_CLASSIFICA
    solo che prima per ogni riga mi creava un ID differente.. ora non saprei come associare tutte queste cose a rigo per rigo!

  6. #6
    Codice PHP:
    $sql "UPDATE CLASSIFICA_ITALIA SET SQUADRA='$SQUADRA', PUNTI='$PUNTI', VINTE='$VINTE', PERSE='$PERSE' WHERE ID_CLASSIFICA IN ($id1$id2$id_n) "
    Questo non può funzionare: assegna gli stessi valori a tutti gli ID in "IN(....)".
    Sono update differenti e vanno fatti distintamente.

  7. #7
    Non sto facendo delle prove, ma sto andando a tentoni, per cui magari sto per dire una baggianata... ad ogni modo, puoi provare a mettere una checkbox nella form.
    Il valore che passi nella checkbox è l'ID del record che vuoi modificare.

    <ALCIO />
    Per cortesia: no PVT Tecnici
    ******* LINKS *******
    SRL
    MetalWave

  8. #8
    Fai così:

    Codice PHP:
    <input type="text" name="SQUADRA[*ID_SQUADRA*]" value="#" />
    <
    input type="text" name="PUNTI[*ID_SQUADRA*]" value="#" />
    <
    input type="text" name="VINTE[*ID_SQUADRA*]" value="#" />
    <
    input type="text" name="PERSE[*ID_SQUADRA*]" value="#" /> 
    per ogni riga *ID_SQUADRA* va ovviamente sostituito.

    Ti ritrovi un post con un un array multidimensionale.
    Devi ciclare in questo array e preparare le tue queries.

  9. #9
    Codice PHP:
    <form method="post" action="">
    <input type="text" name="SQUADRA[1]" value="3" />
    <input type="text" name="PUNTI[1]" value="5" />
    <input type="text" name="VINTE[1]" value="4" />
    <input type="text" name="PERSE[1]" value="7" />


    <input type="text" name="SQUADRA[2]" value="1" />
    <input type="text" name="PUNTI[2]" value="2" />
    <input type="text" name="VINTE[2]" value="5" />
    <input type="text" name="PERSE[2]" value="3" />


    <input type="text" name="SQUADRA[3]" value="5" />
    <input type="text" name="PUNTI[3]" value="4" />
    <input type="text" name="VINTE[3]" value="0" />
    <input type="text" name="PERSE[3]" value="1" />

    <button type="submit">Invia</button>
    </form>


    <?
        
    foreach($_POST as $campo => $valori)
            {
            foreach(
    $_POST['SQUADRA'] as $id => $valore)
                
    $query[$id][] = $campo '=' $_POST[$campo][$id];
            }

        foreach(
    $query as $c => $v)
            {
            
    $query[$c] = 'UPDATE CLASSIFICA_ITALIA SET' implode(", "$query[$c]) . ' WHERE ID_CLASSIFICA=' $c;


            
    //Qui fai la tua query
            
    echo $query[$c] . "
    "
    ;
            }
    ?>

  10. #10
    siete dei grandi, domattina provo!

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.