• User Attivo

    Link per cancellare record?

    Ciao ragazzi, sono alle primissime armi con il PHP. Mi sto leggiucchiando i tutorial per gestire le connessioni con un db MySQL tuttavia non trovo (ho provato vari esempi sul web ma nada) un modo semplice per eliminare un record da un listato ottenuto da un db tramite un link. Un semplice esempio?

    ho messo la connessione al db e sotto

    [PHP]<?php
    // Mostra i dati inseriti in una tabella
    $check = mysql_query('SELECT * FROM Utenti ORDER BY nome, anni DESC');
    while($row = mysql_fetch_array($check))
    {
    echo "<tr>";
    echo "<td>" . $row['Nome'] . "</td>";
    echo "<td>" . $row['Cognome'] . "</td>";
    echo "<td>" . $row['Anni'] . "</td>";
    echo "<td></td>";
    echo "</tr>";
    }
    ?>[/PHP]

    E vorrei nell'ultima colonna mettere 1 link con scritto "cancella" che mi cancelli il risultato corrispondente della query. Nel db c'è un campo userID unico per ogni voce. Vediamo se finalmente qualcuno mi illumina ^^


  • User

    Ciao, è molto semplice:

    Questa è la pagina modificata che hai postato tu:

    [PHP]
    <?php
    mysql_connect("localhost","user","pass");
    mysql_select_db("iltuodb");

    // Mostra i dati inseriti in una tabella
    $check = mysql_query('SELECT * FROM Utenti ORDER BY nome, anni DESC');

    echo "<table>";

    while($row = mysql_fetch_assoc($check)){
    echo "<tr>";
    echo "<td>" . $row['nome'] . "</td>";
    echo "<td>" . $row['cognome'] . "</td>";
    echo "<td>" . $row['anni'] . "</td>";
    echo "<td><a href = 'cancellaUtente.php?userID=" . $row['userID'] . "'>Cancella utente</a></td>";
    echo "</tr>";
    }

    echo "</table>";
    ?>
    [/PHP]

    Poi devi fare la pagina cancellaUtente.php con dentro questo:

    [PHP]
    <?php
    mysql_connect("localhost","user","pass");
    mysql_select_db("iltuodb");

    $userID = $_GET['userID'];

    //Un po' di validazione, l'id deve essere un numero.
    if (!preg_match("/^[0-9]+$/D",$userID)){
    die("L'user id non è un numero.");
    }

    //Chiediamo al database i dati dell'utente con l'id $userID
    $query = "SELECT * FROM Utenti WHERE userID = '".mysql_real_escape_string($userID)."'";
    $result = mysql_query($query) or die (mysql_error());

    //Se non trova nulla
    if (!$result){
    die("L'user id non esiste.");
    }

    //Cancelliamo l'entry con userID $userid
    $cancellaUtenteQuery = "DELETE FROM Utenti WHERE userID = '".mysql_real_escape_string($userID)."' ";
    $cancellaUtenteResult = mysql_query($cancellaUtenteQuery) or die (mysql_error());

    if (!$cancellaUtenteResult){
    die("C'è stato un errore nella query.");
    }

    echo "<p>Utente cancellato.</p>";

    ?>
    [/PHP]

    Spero vada bene 😉


  • User Attivo

    WOW ci ho capito 1 decimo però funza XD mitico proverò a capirlo XD
    Come faccio a far sì che mi ritorni da solo nella pagina con l'elenco poi?


  • ModSenior

    Ciao gleenk,

    invece di:
    [php]
    echo "<p>Utente cancellato.</p>";
    [/php]

    Puoi mettere:
    [php]
    header('Location: /percorso-pagina-destinazione.php');
    exit;
    [/php]
    Per fare un redirect.