2015-07-08 9 views
5

Stavo cercando di eliminare un record sul mio database. Quindi in pratica ho creato una tabella che contiene tutti i miei record. Ora quello che devo fare è quando clicco sul link "DELETE" per eliminare la riga selezionata del record.DELETE record di una riga in PHP

Ecco come si presenta:

Quindi, fondamentalmente ho 3 pagine qui.
1. page.php
2. add.php
3. delete.php

Ecco il mio file page.php:

<table border="1"> 
    <thead> 
     <th>email</th> 
     <th>date</th> 
     <th>delete</th> 
    </thead> 

    <tbody> 
     <tr> 
     <?php 
      foreach($emails as $mail){ ?> 
      <td><?php echo $mail['email']; ?></td> 
      <td><?php echo $mail['date']; ?></td> 
      <td><?php echo "<a href='delete.php?id=". $mail['id']. "'>DELETE</a>"; ?></td> 
     </tr> 
      <?php } ?> 


    </tbody> 
</table> 

Ecco il mio file add.php:

<?php 
    require("new-connection.php"); 

    session_start(); 

    $email = $_POST['email']; 
    if(empty($_POST['email']) AND (filter_var($email, FILTER_VALIDATE_EMAIL) === false)) 
    { 
      $_SESSION['message'] = "email cannot be blank"; 
    }else{ 
     $query = "INSERT INTO email_tbl (email, date) 
       VALUES('$email', NOW())";  

    $insertEmail = run_mysql_query($query); 


    if(run_mysql_query($query)) 
    { 
     $_SESSION['message'] .= "New RECORD has been added correctly!"; 
    } 
    else 
    { 
     $_SESSION['message'] .= "Failed to add new Interest"; 
    } 

    } 


    header('Location: email.php'); 




?> 

Ecco il mio file delete.php finora:

<?php 
    require("new-connection.php"); 

    session_start(); 


    $query = "DELETE FROM email_tbl 
      WHERE id={id} LIMIT 1";  

    $deleteEmail = run_mysql_query($query); 


    if(run_mysql_query($query)) 
    { 
     $_SESSION['message'] .= "RECORD has been DELETED correctly!"; 
    } 
    else 
    { 
     $_SESSION['message'] .= "Failed to DELETE RECORD"; 
    } 



    header('Location: email.php'); 




?> 

Quindi ora quando faccio clic sul collegamento Elimina, è necessario eliminare il pulsante in tempo reale. Qualche idea?

+0

utilizzare un pulsante posto e avvolgere ciascuno in un modulo con un campo nascosto per l'id, oppure è possibile utilizzare un iframe e $ _GET o addirittura ajax. In nessun modo questo id = {id} funziona. – ArtisticPhoenix

+0

Cosa intendi in tempo reale, senza ricaricare la pagina? – ArtisticPhoenix

+0

cos'è questo? run_mysql_query() – ArtisticPhoenix

risposta

6

Modifica la tua delete.php per recuperare il parametro URL:

<?php 
    require("new-connection.php"); 
    session_start(); 

    $id = $_GET['id']; 

    $query = "DELETE FROM email_tbl 
      WHERE id='$id' LIMIT 1";  

    $deleteEmail = run_mysql_query($query); 


    if($deleteEmail) 
    { 
     $_SESSION['message'] .= "RECORD has been DELETED correctly!"; 
    } 
    else 
    { 
     $_SESSION['message'] .= "Failed to DELETE RECORD"; 
    } 

    header('Location: email.php'); 
?> 

quanto riguarda il tuo add.php, si utilizza questo:

$insertEmail = run_mysql_query($query); 

    if(run_mysql_query($query)) 

si dovrebbe cambiare a questo:

$insertEmail = run_mysql_query($query); 


    if($insertEmail) 

Quello che stai facendo adesso è che stai eseguendo la query due volte chiamando run_mysql_query due volte. Questo dovrebbe risolvere il problema di aggiornamento

+0

Wow, grazie! @MatchesMalone. Qualche idea sul perché il mio codice INSERT restituisca 2 record allo stesso tempo? Fondamentalmente quando inserisco l'e-mail sull'input e faccio clic su invia automaticamente due righe con lo stesso record e duplicando quello che sto inserendo ????? Qualche idea che cosa sta causando questo ???? –

+0

Forse è perché chiami 2 volte run_mysql_query – jmattheis

+0

Mi riferisco al add.php btw. :) stava inserendo due record. –

1
$query = "DELETE FROM email_tbl WHERE id=".$_GET['id']." LIMIT 1"; 
1

il file delete.php:

$id = $_GET['id']; 

$query = "DELETE FROM email_tbl WHERE id='$id' LIMIT 1"; 

e di controllare anche la sezione sottostante: Si esegue la query due volte. quindi è ovvio che aggiungerà lo stesso record due volte.

$insertEmail = run_mysql_query($query); 

if(run_mysql_query($query)) 
{ 
    $_SESSION['message'] .= "New RECORD has been added correctly!"; 
} 

Modificare il codice per utilizzare run_mysql_query una sola volta.

Problemi correlati