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

    Cambiare stato di un record con checkbox

    Ciao a tutti,

    ho un problema nella realizzazione di una query. Vorrei creare una query PHP/MySQL che mi cambi il valore di una cella della mia tabella se e solo se ho spuntato una checkbox. La situazione è questa: ho una serie di record, se io spunto la checkbox e clicco sul link che mi lancia lo script php il campo archivia dovrebbe cambiare da 0 a 1.

    Questo è il codice che dovrebbe incaricarsi di cambiare lo stato del campo archivia da 0 a 1. Il problema è che non riesco a capire come far cambiare lo stato solamente alle righe selezionate.

    Codice PHP:
    mysql_query"UPDATE avvisi SET archivia = 1;" ); 
    Qualcuno mi può dare un indicazione di come fare?
    Errare è umano, ma per fare veramente casino ci vuole la password di root

  2. #2
    Crea i campi input con name="id[]" e value="ID DEL RECORD".
    Poi nella query crea una condizione WHERE utilizzando il costrutto IN() oppure tanti OR.

  3. #3
    ciao e grazie per la risposta. Ti posto l'esperimento completo:

    Codice PHP:
    <?php
    session_start
    ();
    require(
    "./../conf/dbconf.inc.php");
    dbConnect();
    $res mysql_query"SELECT utenti_accesso.id FROM utenti_accesso, log_accessi WHERE utenti_accesso.id = log_accessi.id_utenti_accesso AND log_accessi.session_id = '".session_id()."';" );
    if (
    mysql_num_rows($res) > 0) {
        if (isset(
    $_GET["idx"])) {
            
    mysql_query"UPDATE avvisi SET archivia = 1 WHERE ;" );
        }
        
    header ("LOCATION: ./avv_elenco.php");
    } else {
        
    header ("LOCATION: ./avv_elenco.php");
    }
    dbClose();
    ?>
    come puoi vedere non so come mettere la clausola del WHERE. L'ho congegnata facendo questo ragionamento: se è spuntato allora modifica archivia in 1 e poi torna all'elenco, altrimenti torna all'elenco
    Errare è umano, ma per fare veramente casino ci vuole la password di root

  4. #4
    non c'è nessuno che mi sa aiutare?
    Errare è umano, ma per fare veramente casino ci vuole la password di root

  5. #5
    Originariamente inviato da Neo996sps
    non c'è nessuno che mi sa aiutare?
    Guarda che Filippo ti ha già risposto.

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

  6. #6
    si, ma se hai notato non so come scrivere la clausola WHERE utilizzando IN().
    Errare è umano, ma per fare veramente casino ci vuole la password di root

  7. #7
    Beh... basta fare una ricerca nel manuale ufficiale, oppure nel forum, perché l'argomento è stato trattato più e più volte.
    Ad ogni modo, la variabile che contiene i dati della checkbox è un array, per cui lo vai ad implodere usando la virgola come collante.
    Codice PHP:
    $id $_POST['id'];
    $str_IN implode(","$id);
    $sql "UPDATE tabella SET valore = "x" WHERE id IN($str_IN)"
    Semplice, no???
    <ALCIO />
    Per cortesia: no PVT Tecnici
    ******* LINKS *******
    SRL
    MetalWave

  8. #8

    [RISOLTO]

    Ciao a tutti,

    sono riuscito a risolvere la questione dell'update. Dato che era troppo laborioso ho inserito un pulsante e da li richiamo lo script. Questo è il codice, potrebbe essere utile ad altri utenti:

    Codice PHP:
    ?php
    session_start
    ();
    require(
    "./../conf/dbconf.inc.php");
    dbConnect();
    $res mysql_query"SELECT utenti_accesso.id FROM utenti_accesso, log_accessi WHERE utenti_accesso.id = log_accessi.id_utenti_accesso AND log_accessi.session_id = '".session_id()."';" );
    if (
    mysql_num_rows($res) > 0) {
        if (isset(
    $_GET["idx"])) {
            
    mysql_query"UPDATE avvisi SET archivia = '1'WHERE id = ".$_GET["idx"].";" );
        }
        
    header ("LOCATION: ./avv_elenco.php");
    } else {
        
    header ("LOCATION: ./index.php");
    }
    dbClose();
    ?> 
    Errare è umano, ma per fare veramente casino ci vuole la password di root

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.