Visualizzazione dei risultati da 1 a 7 su 7

Discussione: Delete non funzionante

  1. #1
    Utente di HTML.it
    Registrato dal
    Dec 2005
    Messaggi
    654

    Delete non funzionante

    Questa è la parte di form che può interessare (si trova all'interno di un while):
    <td class='$tipor'><input type='checkbox' name=check[]</td>
    <input type='hidden' name=id[] value='$id'>
    <input type='hidden' name=contatore[] value='$contatore'>

    I due array contengono correttamente i valori (ho provato a stamparli). Nella pagina successiva devo cancellare i record con l'ID corrispondente. Il problema è che non lo fa. La variabile $num risulta =1 (indipendentemente da quanti valori contengano gli array) e quindi riporta il messaggio "operazione eseguita correttamente". In ogni caso, però, nel db non cancella nulla.

    Edit: la variabile $check si riferisce ai checkbox che vanno spuntati accanto ai record (in modo da stabilire quali tra i record mostrati devono essere eliminati). Quindi se vale 1 deve essere eliminato

    Codice PHP:
    for($i=0;$i<sizeof($contatore);$i++){
      if(
    $check[$i]==1){
        
    $q "DELETE FROM Valutazioni WHERE ID=$id[$i]";
        
    $query=mysql_query($q) or die(mysql_error());
            
    $num=mysql_num_rows($query);
      }
    }

    if(
    $num>0)
              echo 
    "<tr><td align='center'><font color='blue'>Operazione eseguita correttamente. Sono stati eliminati $num campi di voto.</font></td></tr>";
        else
          echo 
    "<tr><td align='center'><font color='blue'>Errore nell'eliminazione.
    Ritentare l'operazione.</font></td></tr>"


  2. #2
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,923
    Se check è l'array che contiene gli id dei record da eliminare basta che li separi con la virgola e che poi fai la query che ti ho scritto.

    Codice PHP:
    $cancella implode(',',$_POST['check']);
    $query "delete from valutazioni where id in ($cancella) "

  3. #3
    Utente di HTML.it
    Registrato dal
    Dec 2005
    Messaggi
    654
    No, gli id sono contenuti in un apposito array id[].
    In pratica ne ho tre:
    contatore[] identifica il numero di record visualizzati nella pagina del form
    id[] contiene tutti gli id dei record visualizzati
    check[] contiene solo valori 1 o 0, a seconda se la casella di checkbox sia spuntata o meno

    Io devo cancellare soltanto gli id relativi ai checkbox spuntati

  4. #4
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,923
    Originariamente inviato da Horus-Ra
    No, gli id sono contenuti in un apposito array id[].
    In pratica ne ho tre:
    contatore[] identifica il numero di record visualizzati nella pagina del form
    id[] contiene tutti gli id dei record visualizzati
    check[] contiene solo valori 1 o 0, a seconda se la casella di checkbox sia spuntata o meno

    Io devo cancellare soltanto gli id relativi ai checkbox spuntati
    A me sembra che ti stai incasinando invano. Se hai i checkbox gli id che verranno passati saranno solo quelli checkati. Se non ne scegli nessuno dovrai prevedere l'evento per evitare un notice.

    esempio
    pagina1
    <form action="cancella.php" method="post">
    <input type="checkbox" name="elimina[]" value="1" />

    <input type="checkbox" name="elimina[]" value="2" />

    <input type="checkbox" name="elimina[]" value="3" />

    <input type="submit" value="Invia">
    </form>

    pagina cancella.php
    Codice PHP:
    echo $cancella = isset($_POST['elimina']) ? 'vuoi cancellare gli id '.implode(',',$_POST['elimina']) : 'scegli almeno un id'

  5. #5
    Utente di HTML.it
    Registrato dal
    Dec 2005
    Messaggi
    654
    Il ragionamento credo di averlo capito: in pratica gli passo il valore degli id all'input di checkbox. L'array conterrà tutti i valori, ma il form farà passare solo quelli spuntati.
    Di certo faccio prima rispetto al mio codice
    Faccio subito una prova, grazie per l'aiuto

  6. #6
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,923
    Prova e fammi sapere.

  7. #7
    Utente di HTML.it
    Registrato dal
    Dec 2005
    Messaggi
    654
    Perfetto, sembra completamente funzionante. A volte mi incasino per niente :berto:

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.