Navigazione

    Privacy - Termini e condizioni
    © 2020 Search On Media Group S.r.l.
    • Registrati
    • Accedi
    • CATEGORIES
    • Discussioni
    • Non letti
    • Recenti
    • Hashtags
    • Popolare
    • Utenti
    • Stream
    • Interest
    • Categories
    1. Home
    2. Categorie
    3. Coding e Sistemistica
    4. Coding
    5. Cancellazione Multipla Con Checkbox
    Questa discussione è stata cancellata. Solo gli utenti con diritti di gestione possono vederla.
    • T
      thedarkita ModSenior • ultima modifica di

      Ciao,
      i checkbox possono funzionare come un array impostando come name qualcosa[] e imposti come value l'id.
      Lato php un array con gli id ad esempio e puoi utilizzarlo come meglio credi.

      0 Miglior Risposta Ringrazia Cita Rispondi

        1 Risposta Ultima Risposta
      • P
        prinzart User Attivo • ultima modifica di

        Ciao ho provato a fare così, però l'array non saprei come implementarlo:

        <form enctype="multipart/form-data" name="formcancella" action="<?=$PHP_SELF?>" method="post">

        <?php
        $id = $row2[id_anagrafica];
        ?>

        <table width="230" height="30" border="0" cellpadding="0" cellspacing="0">
        <tr>
        <td width="140" align="left"><input type="checkbox" name="delete[]" value="<?php echo($id); ?>"> <span class="testo_rosso_bold3">Elimina <?=$id?></span></td>
        <td width="90">

        <input type="hidden" name="cancella" value="1">

         <input name="submit" type="submit" class="pulsante" value="cancella">
         

            </td>
          </tr>
        </table> 
        

        </form>

        <?
        if ($cancella==1){

        $comma_separated = implode(",", $_POST['delete']);

        $sql = "DELETE FROM a_anagrafica WHERE a_anagrafica.id_anagrafica IN (".$comma_separated.")";

        mysql_query($sql,$conn) or die (mysql_error());

        }
        ?>

        0 Miglior Risposta Ringrazia Cita Rispondi

          1 Risposta Ultima Risposta
        • T
          thedarkita ModSenior • ultima modifica di

          Mi sembra perfetto cosi, qual'è il problema che riscontri?

          0 Miglior Risposta Ringrazia Cita Rispondi

            1 Risposta Ultima Risposta
          • P
            prinzart User Attivo • ultima modifica di

            scusa hai ragione va bene così, ti chiederei l'ultima costesia.
            L'anagrafica si trova in 3 tabelle: a_anagrafica, a_login, a_ana_preferenze

            come faccio a cancellare in una volta sola i 3 record che si trovano rispettivamente nelle 3 tabelle?

            questa è la query relazionale:

            SELECT a_anagrafica., a_login., a_ana_preferenze.*

                FROM a_anagrafica 
                
                INNER JOIN a_login 
                ON a_anagrafica.id_anagrafica = a_login.id_anagrafica 
                
                LEFT JOIN a_ana_preferenze 
                ON a_login.id_login = a_ana_preferenze.id_login
            0 Miglior Risposta Ringrazia Cita Rispondi

              1 Risposta Ultima Risposta
            • P
              prinzart User Attivo • ultima modifica di

              così potrebbe andare?

              <?
              if ($cancella==1){

              $comma_separated = implode(",", $_POST['delete']);

              $sql1 = "DELETE FROM a_anagrafica WHERE a_anagrafica.id_anagrafica IN (".$comma_separated.")";

              $sql2 = "DELETE FROM a_login WHERE a_login.id_anagrafica IN (".$comma_separated.")";

              $sql3 = "DELETE FROM a_ana_preferenze WHERE a_ana_preferenze.id_login IN (".$comma_separated.")";

              mysql_query($sql,$conn) or die (mysql_error());

              }
              ?>

              0 Miglior Risposta Ringrazia Cita Rispondi

                1 Risposta Ultima Risposta
              • P
                prinzart User Attivo • ultima modifica di

                anche se quest'ultima query che ho postato non mi convince molto perchè i record non sono relazionati tra loro in questo modo ma sono indipendenti

                0 Miglior Risposta Ringrazia Cita Rispondi

                  1 Risposta Ultima Risposta
                • T
                  thedarkita ModSenior • ultima modifica di

                  Si volendo si può fare cosi, fai attenzione che il mysql_query lo hai richiamato una sola volta.
                  I delete puoi farli anche con dei join:
                  http://dev.mysql.com/doc/refman/5.0/en/delete.html

                  0 Miglior Risposta Ringrazia Cita Rispondi

                    1 Risposta Ultima Risposta
                  • P
                    prinzart User Attivo • ultima modifica di

                    ok ho visto e poi fatto una prova, può andare bene?

                    DELETE a_anagrafica,a_login,a_ana_preferenze

                    FROM a_anagrafica

                    INNER JOIN a_login
                    ON a_anagrafica.id_anagrafica = a_login.id_anagrafica

                    INNER JOIN a_ana_preferenze
                    ON a_login.id_login = a_ana_preferenze.id_login

                    WHERE a_anagrafica.id_anagrafica = '".$id."'

                    0 Miglior Risposta Ringrazia Cita Rispondi

                      1 Risposta Ultima Risposta
                    • T
                      thedarkita ModSenior • ultima modifica di

                      Si dovrebbe essere corretta, però hai messo un singolo id invece di usare IN (id1,id2)

                      0 Miglior Risposta Ringrazia Cita Rispondi

                        1 Risposta Ultima Risposta
                      • P
                        prinzart User Attivo • ultima modifica di

                        ho fatto un test ma non mi ha cancellato niente :mmm:

                        0 Miglior Risposta Ringrazia Cita Rispondi

                          1 Risposta Ultima Risposta
                        • T
                          thedarkita ModSenior • ultima modifica di

                          Fai prima una query SELECT cosi vedi cosa prende e se c'è qualche errore sui JOIN, io non posso sapere com'è strutturato il tuo database quindi non sò dirti cosa non va. Dopo la modifichi in DELETE facilmente.

                          0 Miglior Risposta Ringrazia Cita Rispondi

                            1 Risposta Ultima Risposta
                          • P
                            prinzart User Attivo • ultima modifica di

                            questo è uno dei risultati delle query:

                            SELECT a_anagrafica., a_login., a_ana_preferenze.* FROM a_anagrafica INNER JOIN a_login ON a_anagrafica.id_anagrafica = a_login.id_anagrafica INNER JOIN a_ana_preferenze ON a_login.id_login = a_ana_preferenze.id_login WHERE a_anagrafica.id_anagrafica = '1902'

                            0 Miglior Risposta Ringrazia Cita Rispondi

                              1 Risposta Ultima Risposta
                            • P
                              prinzart User Attivo • ultima modifica di

                              quindi praticamente mi stampa solo l'id di a_anagrafica.id_anagrafica è giusto che sia così?

                              0 Miglior Risposta Ringrazia Cita Rispondi

                                1 Risposta Ultima Risposta
                              • P
                                prinzart User Attivo • ultima modifica di

                                questo è il codice x stampare a video la query:

                                <?php
                                $sql = "SELECT a_anagrafica., a_login., a_ana_preferenze.*

                                FROM a_anagrafica

                                INNER JOIN a_login
                                ON a_anagrafica.id_anagrafica = a_login.id_anagrafica

                                INNER JOIN a_ana_preferenze
                                ON a_login.id_login = a_ana_preferenze.id_login

                                WHERE a_anagrafica.id_anagrafica = '".$id."'";

                                mysql_query($sql,$conn) or die (mysql_error());

                                echo $sql;
                                ?>

                                0 Miglior Risposta Ringrazia Cita Rispondi

                                  1 Risposta Ultima Risposta
                                • T
                                  thedarkita ModSenior • ultima modifica di

                                  Tu devi eseguirla direttamente sul database (Tramite phpMyAdmin ad esempio) e vedere se restituisce qualcosa oppure no, perchè se non restituisce nulla significa che qualche join fatto cosi non va bene.

                                  0 Miglior Risposta Ringrazia Cita Rispondi

                                    1 Risposta Ultima Risposta
                                  • P
                                    prinzart User Attivo • ultima modifica di

                                    fatto, ma anche tramite phpMyAdmin non succede nulla

                                    0 Miglior Risposta Ringrazia Cita Rispondi

                                      1 Risposta Ultima Risposta
                                    • T
                                      thedarkita ModSenior • ultima modifica di

                                      Significa che i JOIN non sono fatti correttamente, controlla bene che ti serva un INNER JOIN invece di un LEFT JOIN. E anche che i campi in cui unisci sono corretti.

                                      0 Miglior Risposta Ringrazia Cita Rispondi

                                        1 Risposta Ultima Risposta
                                      • P
                                        prinzart User Attivo • ultima modifica di

                                        ok ora funziona grazie dell'aiuto 🙂

                                        0 Miglior Risposta Ringrazia Cita Rispondi

                                          1 Risposta Ultima Risposta
                                        • P
                                          prinzart User Attivo • ultima modifica di

                                          scusa mi sono accorto solo ora che me ne cancella solo uno per volta anche se ne seleziono più contemporaneamente. Forse può dipendere dal pulsante cancella e dal form che li devo mettere fuori il ciclo della ricerca?

                                          0 Miglior Risposta Ringrazia Cita Rispondi

                                            1 Risposta Ultima Risposta
                                          • T
                                            thedarkita ModSenior • ultima modifica di

                                            Puoi postare il codice completo?

                                            0 Miglior Risposta Ringrazia Cita Rispondi

                                              1 Risposta Ultima Risposta
                                            Caricamento altri post
                                            Rispondi
                                            • Topic risposta
                                            Effettua l'accesso per rispondere
                                            • Da Vecchi a Nuovi
                                            • Da Nuovi a Vecchi
                                            • Più Voti