2016-05-10 5 views
0

Горе со мной, поскольку я новичок в программировании базы данных PHP и mySQL.Execute MySQL Delete on Button Нажмите

В моем коде я показываю таблицу в моей базе данных, которая называется staff в таблице HTML, и я хочу добавить кнопку удаления в каждую строку в таблице HTML, которая при нажатии будет удалять связанную с записью запись.

на основе поиска других решений, мой код выглядит следующим образом:

staff.php:

require_once('../connection.php'); 

      //delete row on button click 
      if(isset($_GET["del"])){ 
        $idc = $_GET["del"]; 
        if($VisitorManagement->query("DELETE FROM staff WHERE id=$idc")){ 
         header('Location: delete-thankyou.php'); 
        } else { 
         echo "Failed to delete staff member."; 
        }  
       } 

      $result = mysqli_query($VisitorManagement, "SELECT * FROM staff ORDER BY fullName"); 

      echo "<table id='staff'> 
      <thead> 
      <tr> 
      <th>Name</th> 
      <th>Email</th> 
      <th></th> 
      </tr> 
      </thead>"; 



      while($row = mysqli_fetch_array($result)) 
      { 
       echo "<tbody>"; 
       echo "<tr>"; 
       echo "<td>" . $row['fullName'] . "</td>"; 
       echo "<td>" . $row['email'] . "</td>"; 
       echo "<td><a class='button alert' href='staff.php?del=".$row["idc"]."'>Delete</a></td>"; 
       echo "</tr>"; 
      } 
     echo "</tbody>"; 
     echo "</table>"; 

connection.php:

$hostname_VisitorManagement = "localhost"; 
$database_VisitorManagement = "visitor-management"; 
$username_VisitorManagement = "***"; 
$password_VisitorManagement = "***"; 
$VisitorManagement = mysqli_connect($hostname_VisitorManagement, $username_VisitorManagement, $password_VisitorManagement, $database_VisitorManagement); 

if (mysqli_connect_errno()) { 
printf("Connect failed: %s\n", mysqli_connect_error()); 
exit(); 
} 

date_default_timezone_set('America/New_York'); 

К сожалению, когда я иду к щелчку одной из кнопок, он не может удалить запись и повторяет сообщение об ошибке, предварительно определенное в staff.php. Я что-то упустил, чтобы заставить это работать?

+0

Вы должны опубликовать сообщение об ошибке вы получаете, чтобы сделать его немного легче для нас. –

+0

@ ExoSkeleton321 В нем отображается сообщение об ошибке «Не удалось удалить сотрудника». Я предопределен в моем коде staff.php. –

+0

Я запустил код и работает на своих компьютерах. –

ответ

0

Я смог исправить это, изменив все экземпляры idc на id.

Новый код:

require_once('../connection.php'); 

     //delete row on button click 
     if(isset($_GET["del"])){ 
       $id = $_GET["del"]; 
       if($VisitorManagement->query("DELETE FROM staff WHERE id=$id")){ 
        header('Location: delete-thankyou.php'); 
       } else { 
        echo "Failed to delete staff member."; 
       }  
      } 

     $result = mysqli_query($VisitorManagement, "SELECT * FROM staff ORDER BY fullName"); 

     echo "<table id='staff'> 
     <thead> 
     <tr> 
     <th>Name</th> 
     <th>Email</th> 
     <th></th> 
     </tr> 
     </thead>"; 



     while($row = mysqli_fetch_array($result)) 
     { 
      echo "<tbody>"; 
      echo "<tr>"; 
      echo "<td>" . $row['fullName'] . "</td>"; 
      echo "<td>" . $row['email'] . "</td>"; 
      echo "<td><a class='button alert' href='staff.php?del=".$row["id"]."'>Delete</a></td>"; 
      echo "</tr>"; 
     } 
    echo "</tbody>"; 
    echo "</table>"; 
+0

Пара рекомендаций по безопасности: используйте параметризованные запросы для защиты от SQL-инъекции. Если вы используете GET-запрос для удаления записи, тогда предварительная выборка браузера и проверки ссылок на основе браузера будут удалять любые видимые записи. Когда вы используете POST для удаления, не забывайте о защите CSRF. – jdog