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

      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
                                        • P
                                          prinzart User Attivo • ultima modifica di

                                          ho messo il form fuori dal ciclo ma ora non funziona più

                                          0 Miglior Risposta Ringrazia Cita Rispondi

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

                                            posto solo la parte del ciclo altrimenti è troppo lungo:

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

                                            <?php
                                            while($row2=mysql_fetch_array($result2)){
                                            ?>
                                            <table width="950" height="20" border="0" align="center" cellpadding="0" cellspacing="0">
                                            <tr>
                                            <td height="8" bgcolor="<?php echo $colore_sfondo; ?>"></td>
                                            </tr>
                                            <tr>
                                            <td height="20" align="right" bgcolor="<?php echo $colore_sfondo; ?>">

                                                            <table width="950" height="20"  border="0" cellpadding="0" cellspacing="0">
                                                              <tr>
                                                                <td width="250">
                                            

                                            <img src="../images/icona_elenco_triangolo_grigio.gif" width="10" height="10" border="0">
                                            <?=$row2['ragione_sociale']?>

                                            </td>
                                            <td width="450">

                                            <?php if ($row2['indirizzo']!=""){ ?><?=$row2['indirizzo']?><?php }?>

                                            <?php if ($row2['cap']!=""){ ?> - <?=$row2['cap']?><?php }?>

                                            <?php if ($row2['provincia']==""){ ?> - <?=$row2['citta']?><?php }?>

                                            <?php if ($row2['comune']!=""){ ?> - <?=$row2['comune']?><?php }?>
                                            <?php if ($row2['provincia']!=""){ ?> - (<?=$row2['provincia']?>)<?php }?>

                                            </td>
                                            <td width="100">

                                            <a href="admin_ins_anagrafica2.php?id=<?=$row2[id_login2]?>&pagina=6" class="tre">segue</a>

                                                                </td>
                                                                           <td width="150">
                                            

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

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

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

                                                          </td>
                                                  </tr> 
                                            

                                            <tr>
                                            <td height="8" bgcolor="<?php echo $colore_sfondo; ?>"></td>
                                            </tr>
                                            <tr>
                                            <td height="1" bgcolor="#999999"></td>
                                            </tr>
                                            </table>
                                            <?php
                                            }
                                            ?>

                                            <table width="950" height="20" border="0" align="center" cellpadding="0" cellspacing="0">
                                            <tr>
                                            <td height="8"></td>
                                            </tr>
                                            <tr>
                                            <td height="1" bgcolor="cccccc"></td>
                                            </tr>
                                            <tr>
                                            <td height="8"></td>
                                            </tr>
                                            <tr>
                                            <td height="30" align="center">
                                            <input type="hidden" name="cancella" value="1">

                                             <input name="submit" type="submit" class="pulsante" value="cancella">
                                             </td>
                                            </tr>
                                            <tr>
                                            <td height="8"></td>
                                            </tr>
                                            <tr>
                                            <td height="1" bgcolor="cccccc"></td>
                                            </tr>
                                            <tr>
                                            <td height="8"></td>
                                            </tr>
                                            </table>

                                            </form>

                                            <?php
                                            }
                                            ?>

                                            [/PHP]

                                            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