Visualizzazione risultati 1 fino 24 di 24

Discussione: comando DELETE per eliminare dati da form

  1. #1
    L'avatar di FantaGalla
    FantaGalla non è connesso Utente
    Data registrazione
    01-07-2003
    Messaggi
    245

    Predefinito comando DELETE per eliminare dati da form

    inserisco questo codice sulla riga di dati estratti dal database:
    Codice PHP:
    echo '<td width="20%">
    <script type="text/javascript">
    // Confirm submission of delete form
    function verify() {
    msg = "Sicuro di voler cancellare?";
    return confirm(msg);
    }
    </script>

    <form name="myform" action="delete.php" method="POST">
    <input type="button" name="delete_this" value="Delete" onclick="return verify()"/>
    </form>
    </td>'
    ;
    la pagina delete.php è così composta:

    Codice PHP:
    <?php

    if ($_POST[delete]) {

    $result = mysql_query("DELETE FROM calcetto_nextmatch WHERE row='delete_this'") or die("Could not delete record");
    echo(
    "The record has been deleted");
    // Then redirect them somewhere useful
    }
    ?>
    se clicco sul pulsante che però mi compare non avviene nulla se non la richiesta di conferma, ma i dati non vengono cancellati
    Ultima modifica di FantaGalla : 06-10-2009 alle ore 14.17.07

  2. #2
    L'avatar di mycarlo
    mycarlo non è connesso Utente attivo
    Data registrazione
    06-10-2009
    Residenza
    $this->s50
    Messaggi
    467

    Predefinito

    Prova ad aggiungere mysql_error() e a utilizzare direttamente la query senza racchiuderla in una variabile.

    Codice PHP:
    <?php

    if ($_POST["delete"]) { // occhio alle costanti :P

    mysql_query("DELETE FROM calcetto_nextmatch WHERE row='delete_this'") or die(mysql_error());
    echo(
    "The record has been deleted");
    // Then redirect them somewhere useful
    }
    ?>

  3. #3
    L'avatar di FantaGalla
    FantaGalla non è connesso Utente
    Data registrazione
    01-07-2003
    Messaggi
    245

    Predefinito

    niente, non da nessun risultato nemmno così

  4. #4
    Guest

    Predefinito

    Mi pare che, nella post, non venga passato "Delete" ma "delete_this".

    Ciao

  5. #5
    Guest

    Predefinito

    Prova così:
    Codice PHP:
    <?php

    if ($_POST[delete]) {

    $result = mysql_query("DELETE FROM calcetto_nextmatch WHERE row='$_POST[delete]'") or die("Could not delete record");
    echo(
    "The record has been deleted");
    // Then redirect them somewhere useful
    }
    ?>
    PS. Comendo non esiste in Italiano! O__o. Forse volevi dire comando...che in realtà è una funzione del MySQL! XD

  6. #6
    L'avatar di FantaGalla
    FantaGalla non è connesso Utente
    Data registrazione
    01-07-2003
    Messaggi
    245

    Predefinito

    non funziona nemmeno così

  7. #7
    L'avatar di mycarlo
    mycarlo non è connesso Utente attivo
    Data registrazione
    06-10-2009
    Residenza
    $this->s50
    Messaggi
    467

    Predefinito

    Codice PHP:
    <?php

    if ($_POST["delete"]) {

    $result = mysql_query("DELETE FROM calcetto_nextmatch WHERE row='{$_POST["delete"]}'") or die("Could not delete record");
    echo(
    "The record has been deleted");
    // Then redirect them somewhere useful
    }
    ?>
    P.S. non avevo nemmeno constrollato la query

  8. #8
    L'avatar di FantaGalla
    FantaGalla non è connesso Utente
    Data registrazione
    01-07-2003
    Messaggi
    245

  9. #9
    Guest

    Predefinito

    Scusami un secondo...ma come ti dovrebbe restituire quella funzione JS?
    Puoi postare una pagina di anteprima? Grazie.

    Edit: Non si cancellerà mai niente, perché tu con "delete_this" stai inviando il testo del pulsante...non l'id (ad esempio) della riga da cancellare...
    Ultima modifica di sIM : 06-10-2009 alle ore 14.40.54

  10. #10
    L'avatar di andreafallico
    andreafallico non è connesso Super Moderatore
    Data registrazione
    02-06-2009
    Messaggi
    1,981

    Predefinito

    Devi cambiare button in submit
    Codice:
    echo '<td width="20%">
       <script type="text/javascript">
    // Confirm submission of delete form    
    function verify() {
        msg = "Sicuro di voler cancellare?";
        return confirm(msg);
    } 
    </script>
    
    <form name="myform" action="delete.php" method="POST">
    <input type="button" name="delete_this" value="Delete" onclick="return verify()"/>
    </form>
    </td>';

  11. #11
    L'avatar di FantaGalla
    FantaGalla non è connesso Utente
    Data registrazione
    01-07-2003
    Messaggi
    245

    Predefinito

    è quello il problema, a me non interessa come restituisce la pagina, basta che mi cancella il campo richiesto

    link all'immagine --> http://fantagalla.altervista.org/Untitled-1.jpg


    EDIT:
    cambiando button in submit mi va dalla pagina modulo a quella delete.php ma non cancella il campo richiesto
    Ultima modifica di seneca : 06-10-2009 alle ore 19.48.23

  12. #12
    L'avatar di andreafallico
    andreafallico non è connesso Super Moderatore
    Data registrazione
    02-06-2009
    Messaggi
    1,981

    Predefinito

    Ma cosa contiene delete
    Codice:
    $_POST["delete"]
    Scrivi la struttura della tabella calcetto_nextmatch.
    Perchè deve contenere un campo univoco per righa.
    Ultima modifica di andreafallico : 06-10-2009 alle ore 15.19.27

  13. #13
    L'avatar di FantaGalla
    FantaGalla non è connesso Utente
    Data registrazione
    01-07-2003
    Messaggi
    245

    Predefinito

    cosa intendi?


    EDIT:
    la tabella del database o quella del modulo?
    per quanto riguarda l'inseriemnto dei dati nel database funziona tutto correttamente, il mio problema è questo DELETE che non funzione, a mio avviso il problema sta nel fatto che non gli viene indicato precisamente cosa cancellare, non dovrebbe esserci un richiamo ad un ID o qualcosa del genere?
    Ultima modifica di seneca : 06-10-2009 alle ore 19.49.21

  14. #14
    L'avatar di andreafallico
    andreafallico non è connesso Super Moderatore
    Data registrazione
    02-06-2009
    Messaggi
    1,981

    Predefinito

    Appunto io volevo vedere la struttura della tabella perchè ci deve essere un ID unico in modo tale che quando clicchi sul bottone riconosce quale riga eliminare.

  15. #15
    L'avatar di FantaGalla
    FantaGalla non è connesso Utente
    Data registrazione
    01-07-2003
    Messaggi
    245

    Predefinito

    Codice PHP:
    <table border="1" width="100%" style="border-collapse: collapse" id="table1">
    <?php
    include("config.inc.php");
    $db = mysql_connect($host, $username);
    if (
    $db == FALSE)
    die (
    "Errore nella connessione. Verificare i parametri nel file config.inc.php");

    mysql_select_db($database, $db)
    or die (
    "Errore nella selezione del database. Verificare i parametri nel file config.inc.php");

    $query = "SELECT data, orario, competizione, avversario FROM calcetto_nextmatch ORDER BY data";

    $result = mysql_query ($query, $db);

    $i = 0;
    while (
    $line = mysql_fetch_array ($result))
    {
    $i++;
    echo
    '<tr>';
    echo
    '<td width="20%">' . $line['data'] . '</td>';
    echo
    '<td width="20%">' . $line['orario'] . '</td>';
    echo
    '<td width="20%">' . $line['competizione'] . '</td>';
    echo
    '<td width="20%">' . $line['avversario'] . '</td>';
    echo
    '<td width="20%">
    <script type="text/javascript">
    // Confirm submission of delete form
    function verify() {
    msg = "Sicuro di voler cancellare?";
    return confirm(msg);
    }
    </script>

    <form name="myform" action="delete.php" method="POST">
    <input type="submit" name="delete_this" value="Delete" onclick="return verify()">
    </form>
    </td>'
    ;
    echo
    '</tr>';
    }
    ?>
    </table>
    questo è il form nella pagina php...

    la struttura della tabella è:
    id, data, orario, competizione, avversario
    Ultima modifica di dreadnaut : 06-10-2009 alle ore 16.08.40 Motivo: + tag [php]

  16. #16
    L'avatar di andreafallico
    andreafallico non è connesso Super Moderatore
    Data registrazione
    02-06-2009
    Messaggi
    1,981

  17. #17
    L'avatar di FantaGalla
    FantaGalla non è connesso Utente
    Data registrazione
    01-07-2003
    Messaggi
    245

  18. #18
    L'avatar di andreafallico
    andreafallico non è connesso Super Moderatore
    Data registrazione
    02-06-2009
    Messaggi
    1,981

    Predefinito

    Prova così:
    Codice PHP:
    <script type="text/javascript">
    // Confirm submission of delete form
    function verify() {
    msg = "Sicuro di voler cancellare?";
    return confirm(msg);
    }
    </script>
    <table border="1" width="100%" style="border-collapse: collapse" id="table1">
    <form name="myform" action="delete.php" method="POST">
    <?php
    include("config.inc.php");
    $db = mysql_connect($host, $username);
    if (
    $db == FALSE)
    die (
    "Errore nella connessione. Verificare i parametri.");

    mysql_select_db($database, $db)
    or die (
    "Errore nella selezione del database. Verificare i parametri.");

    $query = "SELECT * FROM calcetto_nextmatch ORDER BY data";

    $result = mysql_query ($query, $db);

    $i = 0;
    while (
    $line = mysql_fetch_array ($result))
    {
    $i++;
    echo
    '<tr>';
    echo
    '<td width="20%">' . $line['data'] . '</td>';
    echo
    '<td width="20%">' . $line['orario'] . '</td>';
    echo
    '<td width="20%">' . $line['competizione'] . '</td>';
    echo
    '<td width="20%">' . $line['avversario'] . '</td>';
    echo
    '<td width="20%">Elimina <input type="radio" name="delet" value="'.$line['id'].'" /></td>';
    echo
    '</tr>';
    }
    mysql_close($db);
    ?>
    <tr><td colspan="5" align="center">
    <input type="submit" value="Delete" onclick="return verify()">
    </td></tr>
    </form>
    </table>
    la pagina delete.php è così:
    Codice PHP:
    <?php
    ...
    ...
    ...
    $name_inp = (!empty($_POST['delet'])) ? trim($_POST['delet']) : '';
    $name = addslashes($name_inp);
    if(
    $name != null && $name != ''){
    $result = mysql_query("DELETE FROM calcetto_nextmatch WHERE id='$name'") or die("Could not delete record");
    echo(
    "The record has been deleted");
    // Then redirect them somewhere useful
    }
    ...
    ...
    ...
    ?>
    Ultima modifica di andreafallico : 06-10-2009 alle ore 16.59.42

  19. #19
    Guest

    Predefinito

    Questo:
    Codice PHP:
    if($name != null && $name != ''){
    Sostituiscilo con questo:
    Codice PHP:
    if(!empty($name)) {

  20. #20
    L'avatar di FantaGalla
    FantaGalla non è connesso Utente
    Data registrazione
    01-07-2003
    Messaggi
    245

    Predefinito

    n iente, mi da errore nella riga 2 di delete.php, eliminando poi le righe coi tre puntini di sospensione mi da comunque impossibile eliminare il record

  21. #21
    L'avatar di andreafallico
    andreafallico non è connesso Super Moderatore
    Data registrazione
    02-06-2009
    Messaggi
    1,981

    Predefinito

    Nel file delete.php al posto dei puntini hai inserito:
    Codice PHP:
    <?php
    include("config.inc.php");
    $db = mysql_connect($host, $username);
    if (
    $db == FALSE)
    die (
    "Errore nella connessione. Verificare i parametri.");

    mysql_select_db($database, $db)
    or die (
    "Errore nella selezione del database. Verificare i parametri.");
    poi questo:
    Codice PHP:
    or die("Could not delete record")
    sostituiscilo con questo:
    Codice PHP:
    or die(mysql_error())

  22. #22
    L'avatar di FantaGalla
    FantaGalla non è connesso Utente
    Data registrazione
    01-07-2003
    Messaggi
    245

    Predefinito

    Parse error: syntax error, unexpected T_ECHO


    e non ho capito la storia dei puntini, cosa sostituire ecc..mettimi il file preciso, n on son programmatore, non ci capisco nulla sennò

  23. #23
    L'avatar di andreafallico
    andreafallico non è connesso Super Moderatore
    Data registrazione
    02-06-2009
    Messaggi
    1,981

    Predefinito

    Delete.php così:
    Codice PHP:
    <?php
    $name_inp
    = (!empty($_POST['delet'])) ? trim($_POST['delet']) : '';
    $name = addslashes($name_inp);
    if(
    $name != null && $name != ''){
    include(
    "config.inc.php");
    $db = mysql_connect($host, $username);
    if (
    $db == FALSE)
    die (
    "Errore nella connessione. Verificare i parametri.");

    mysql_select_db($database, $db) or die ("Errore nella selezione del database. Verificare i parametri.");
    $result = mysql_query("DELETE FROM calcetto_nextmatch WHERE id='$name'") or die(mysql_error());
    echo(
    "The record has been deleted");
    mysql_close($db);
    }
    ?>

  24. #24
    L'avatar di FantaGalla
    FantaGalla non è connesso Utente
    Data registrazione
    01-07-2003
    Messaggi
    245

    Predefinito

    ok, perfetto...ora funziona...grazie mille...già che ci siamo se mi vuoi dar una mano per l'altro topic sulla questione dell'immagine con nome recuperata da database

Regole di scrittura

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