2016-12-16 4 views
0

Я сделал из php. Когда я выбираю класс, например, я выбираю класс 9, он показывает мне таблицу класса9. Я также вставил строку в таблицу, содержащую кнопку удаления, чтобы удалить соответствующую строку. Теперь я хочу удалить строку покупки, нажав кнопку, которая находится в строке. Как мне это сделать?
Сначала я выбираю класс из этой опции, как на изображении ниже; The image from which we select the class
И тогда будет показана соответствующая таблица.
This is the image. When I click on the button, the corresponding row should be deleted.Как удалить строку в php?

<?php 
include "connection.php"; 
?> 

<!doctype html> 
<html> 
<head> 
<title>KDR</title> 
</head> 

<body> 


    <table border="2px" width="50%" height="auto"> 
    <tr> 
     <th>No</th> 
     <th>Name</th> 
     <th>F/Name</th> 
     <th>Age</th> 
     <th>Delete</th> 
    </tr> 
    <?php 
    $table = $_POST['formCountry']; 
    $sql = "SELECT * FROM $table"; 
    $result = $conn->query($sql); 
    while($row = $result->fetch_assoc()) 
    { 
     echo "<tr>"; 
     echo "<td>" . $row['id'] . "</td>"; 
     echo "<td>" . $row['name'] . "</td>"; 
     echo "<td>" . $row['fname'] . "</td>"; 
     echo "<td>" . $row['age'] . "</td>"; 
     echo "<td><form method='POST' ><input type='submit' name='deletestudent' value='Delete'/></form></td>"; 
     echo "</tr>"; 
    } 
    ?> 
</table> 

</body> 
+1

В вашей кнопке формы вы должны дать действия и идентификатор строки .. например, '<метода формы = действие =«delete_row.php»«POST»>' и 'delete_row.php' выполнить удаление , –

+0

Ok, Тогда какой код должен быть записан в форме delete_row.php? –

+0

В 'delete_row.php' вы должны написать запрос MySQL, который удаляет строку на основе идентификатора, который вы передали вместе с формой. – icecub

ответ

2

Что-то вроде этого. Возможно, придется немного подкорректировать его.

Ваша кнопка стол:

echo "<td><form method='POST' action="delete_row.php" ><input type='submit' name='deletestudent' value="'.$row['id'].'"/></form></td>"; 

В PHP (delete_row.php), необходимо сделать следующее

<?php 
    $servername = "localhost"; 
    $username = "username"; 
    $password = "password"; 
    $dbname = "myDB"; 

    // Create connection 
    $conn = mysqli_connect($servername, $username, $password, $dbname); 
    // Check connection 
    if (!$conn) { 
     die("Connection failed: " . mysqli_connect_error()); 
    } 

    if(isset($_POST['id']) and is_numeric($_POST['id'])) 
    { 

     $delete = $_POST['id'] 

     $stmt = $conn->prepare("DELETE FROM YOURTABLENAME WHERE id = ?"); 
     $stmt->bind_param('i', $delete); 
     $stmt->execute(); 
     $stmt->close();  
    } 

Примечание: Не тестировался, и я использую mysqli_* здесь.

Update: Как @icecub предложил вы также можете использовать скрытое поле, чтобы получить идентификатор

echo "<td> 
      <form method='POST' action='delete_row.php' > 
       <input type='hidden' name='deletestudent' value='".$row['id']."'/> 
       <input type='submit' value='Delete'/> 
      </form> 
    </td>"; 
+1

Я бы предложил добавить скрытое поле ввода в форму вместо того, чтобы поместить идентификатор в значение кнопок. Значение также появляется на кнопке. Может показаться немного странным. – icecub

+0

Да, это тоже вариант. –

+0

В любом случае, +1 от меня для правильного кодирования с помощью подготовленных операторов. Это приветственное зрелище между всеми сообщениями 'mysql_ *' :) – icecub

0

Это как не сделать, смотрите комментарии ниже, важно!

Должен быть отправлен текущий идентификатор элемента, поэтому, когда вы нажимаете кнопку , получите идентификатор элемента $ _GET ['id'];

<td><a href='?id=".$row['id']."'>delete</a></td> 

if (isset($_GET['id'])) { 
    //Throw query DELETE ... WHERE id = $_GET['id']; 
} 
+0

Конечно. Поскольку страница, которая просто удаляет строки базы данных на основе значения GET, не является серьезным риском для безопасности или что-то еще. – icecub

+0

Да, но вы можете сделать некоторый контроль с помощью $ _SESSION –

+0

. Я имею в виду, если isset точно для пользователя, этот пользователь может завершить запрос GET –

Смежные вопросы