Visualizzazione risultati 1 fino 10 di 10

Discussione: Eliminare record scelti dall'utente.

  1. #1
    ASKDOMANDE non è connesso Neofita
    Data registrazione
    03-09-2015
    Messaggi
    12

    Predefinito Eliminare record scelti dall'utente.

    Come faccio ad eliminare un solo record (riga) scelto dall'utente?

    Codice PHP:
    <?php
    session_start
    ();
    $connessione=mysql_connect("localhost","registronegozio","");
    if(!
    $connessione){die ("Connessione fallita!".mysql_error());}
    $database=mysql_select_db('my_registronegozio',$connessione);
    if(!
    $database){die ("Database non trovato!".mysql_error());}
    $selezione=mysql_query("SELECT * FROM acquisti ORDER BY data DESC");
    if(!
    $selezione){die ("Non riesco a trovare la tabella nel database".mysql_error());}
    echo
    "<table border=1><tr>
    <td width=10%><strong>Articolo</strong></td>
    <td width=8%><strong>Colore</strong></td>
    <td width=4%><strong>Taglia</strong></td>
    <td width=4%><strong>Prezzo</strong></td>
    <td width=7%><strong>Data</strong></td>
    </tr></table>"
    ;

    while(
    $estrazione=mysql_fetch_array($selezione)){
    $id=$estrazione['id'];
    echo
    "<table border=1><tr><td width=10%>"
    .$estrazione['articolo']."</td><td width=8%>".
    $estrazione['colore']."</td><td width=4%>"
    .$estrazione['taglia']."</td><td width=4%>".
    $estrazione['prezzo']."</td><td width=7%>"
    .$estrazione['data']."<br></td>
    </tr></table>"
    ;
    }
    mysql_close($connessione);
    ?>
    Vorrei che affianco ogni riga nella tabella esca una checkbox che può essere spuntata dall'utente per selezionare i record da eliminare, avevo pensato di eliminarli tramite l'id ma come?

    Grazie mille per le risposte! :)

  2. #2
    Guest

    Predefinito

    Dato che hai già salvato in una variabile all'interno del ciclo l'id, puoi aggiungere una cella con un checkbox avente per value l'id del record in questione.

    Codice PHP:

    while($estrazione=mysql_fetch_array($selezione)){
    $id=$estrazione['id'];
    echo
    "<table border=1><tr><td width=10%>"
    .$estrazione['articolo']."</td><td width=8%>".
    $estrazione['colore']."</td><td width=4%>"
    .$estrazione['taglia']."</td><td width=4%>".
    $estrazione['prezzo']."</td><td width=7%>"
    .$estrazione['data']."<br></td>

    <td><input type='checkbox' value='"
    . $id . "' name='cancella' /></td>
    </tr></table>"
    ;

    }
    Poi aggiungi un submit che reindirizza ad una pagina (anche la stessa) che elabora la query in base all' id selezionato. Ci sarebbe da fare un controllo, poiché il value di un input è modificabile lato client dall' utente; tuttavia, in questo caso forse è superfluo perché si tratta da quanto ho capito di eliminare articoli da una sorta di carrello, quindi l'utente si farebbe degli "scherzi" da solo.

  3. #3
    ASKDOMANDE non è connesso Neofita
    Data registrazione
    03-09-2015
    Messaggi
    12

    Predefinito

    Citazione Originalmente inviato da descartesadventures Visualizza messaggio
    Dato che hai già salvato in una variabile all'interno del ciclo l'id, puoi aggiungere una cella con un checkbox avente per value l'id del record in questione.

    Codice PHP:

    while($estrazione=mysql_fetch_array($selezione)){
    $id=$estrazione['id'];
    echo
    "<table border=1><tr><td width=10%>"
    .$estrazione['articolo']."</td><td width=8%>".
    $estrazione['colore']."</td><td width=4%>"
    .$estrazione['taglia']."</td><td width=4%>".
    $estrazione['prezzo']."</td><td width=7%>"
    .$estrazione['data']."<br></td>

    <td><input type='checkbox' value='"
    . $id . "' name='cancella' /></td>
    </tr></table>"
    ;

    }
    Poi aggiungi un submit che reindirizza ad una pagina (anche la stessa) che elabora la query in base all' id selezionato. Ci sarebbe da fare un controllo, poiché il value di un input è modificabile lato client dall' utente; tuttavia, in questo caso forse è superfluo perché si tratta da quanto ho capito di eliminare articoli da una sorta di carrello, quindi l'utente si farebbe degli "scherzi" da solo.
    Il controllo in questo caso è superfluo hai ragione :)
    Questa checkbox però deve trovarsi in un "form" giusto?

  4. #4
    Guest

    Predefinito

    Citazione Originalmente inviato da ASKDOMANDE Visualizza messaggio
    Il controllo in questo caso è superfluo hai ragione :)
    Questa checkbox però deve trovarsi in un "form" giusto?
    Sì certo, scusa me ne sono dimenticato

  5. #5
    ASKDOMANDE non è connesso Neofita
    Data registrazione
    03-09-2015
    Messaggi
    12

    Predefinito

    Mi sto leggermente impicciando scusa....

    Codice PHP:
    $eliminazione=mysql_query("DELETE FROM acquisti WHERE id=$id");
    echo "<form action='<?php $_SERVER['PHP_SELF']?>' method='post'>";
    echo "<input type='submit' value='Cancella' name='delete'/>
    <table border=1><tr>
    <td width=10%><strong>Articolo</strong></td>
    <td width=8%><strong>Colore</strong></td>
    <td width=4%><strong>Taglia</strong></td>
    <td width=4%><strong>Prezzo</strong></td>
    <td width=7%><strong>Data</strong></td>
    </tr></table>";

    while($estrazione=mysql_fetch_array($selezione)){
    $id=$estrazione['id'];
    echo "<table border=1><tr>
    <td width=10%>"
    .$estrazione['articolo']."</td><td width=8%>".
    $estrazione['colore']."</td><td width=4%>"
    .$estrazione['taglia']."</td><td width=4%>".
    $estrazione['prezzo']."</td><td width=7%>"
    .$estrazione['data']."
    <td width=1%><input type='checkbox' value='" . $id . "' name='cancella' /></td>
    <br></td></tr></table>";
    }
    echo "</form>";
    Cosi va bene? Ora devo mettere un "if" per il controllo giusto? ed eseguire la query?

  6. #6
    Guest

    Predefinito

    Sì, dovresti mettere un if di questo tipo

    Codice PHP:
    if(isset($_POST['cancella'])) {
    // query
    }
    Vedo che però elimini il record dalla tabella "acquisti", che mi sembra una tabella generale e non dedicata all' utente in questione. Sei sicuro che non servano ulteriori controlli?

  7. #7
    ASKDOMANDE non è connesso Neofita
    Data registrazione
    03-09-2015
    Messaggi
    12

    Predefinito

    Citazione Originalmente inviato da descartesadventures Visualizza messaggio
    Sì, dovresti mettere un if di questo tipo

    Codice PHP:
    if(isset($_POST['cancella'])) {
    // query
    }
    Vedo che però elimini il record dalla tabella "acquisti", che mi sembra una tabella generale e non dedicata all' utente in questione. Sei sicuro che non servano ulteriori controlli?
    I controlli non servono perchè l'utente sarà sempre e solo uno essendo dedicato per uno specifico scopo questo sito, grazie dell'attenzione comunque!
    Provo subito lo script e ti dico!

  8. #8
    ASKDOMANDE non è connesso Neofita
    Data registrazione
    03-09-2015
    Messaggi
    12

    Predefinito

    Codice PHP:
    $eliminazione=mysql_query("DELETE FROM acquisti WHERE id=$id");
    echo
    "<form action='agenda.php' method='post'>
    <br/><center><input style='width:110px; height:30px; font-size:25px' type='submit' value='Cancella' name='delete'/></center><br/>
    <table border=1><tr>
    <td width=10%><strong>Articolo</strong></td>
    <td width=8%><strong>Colore</strong></td>
    <td width=4%><strong>Taglia</strong></td>
    <td width=4%><strong>Prezzo</strong></td>
    <td width=7%><strong>Data</strong></td>
    </tr></table>"
    ;

    while(
    $estrazione=mysql_fetch_array($selezione)){
    $id=$estrazione['id'];
    echo
    "<table border=1><tr>
    <td width=10%>"
    .$estrazione['articolo']."</td><td width=8%>".
    $estrazione['colore']."</td><td width=4%>"
    .$estrazione['taglia']."</td><td width=4%>".
    $estrazione['prezzo']."</td><td width=7%>"
    .$estrazione['data']." </td>
    <td width=1%><input type='checkbox' value='"
    . $id . "' name='cancella' /></td>
    </tr></table>"
    ;
    }
    if(isset(
    $_POST['delete'])){
    $eliminazione;
    }
    Non da errori....ma non funziona

  9. #9
    ASKDOMANDE non è connesso Neofita
    Data registrazione
    03-09-2015
    Messaggi
    12

    Predefinito

    Correggo,funziona, ma elimina sempre l'ultimo id...

  10. #10
    Guest

    Predefinito

    Citazione Originalmente inviato da ASKDOMANDE Visualizza messaggio
    Correggo,funziona, ma elimina sempre l'ultimo id...
    Questo perché il valore della variabile $id viene cambiato ad ogni iterzione del ciclo, e alla fine ha l' ultimo valore che le è stato assegnato. Nella query quindi non devi scrivere

    Codice PHP:
    WHERE `id` = $id
    ma

    Codice PHP:
    WHERE `id` = $_POST['cancella']

Tags for this Thread

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •