2013-03-19 4 views
0

enter image description hereУдаление элементов из базы данных через таблицу

Я создал таблицу в HTML, который получает записи базы данных. Теперь я хочу иметь возможность редактировать и удалять записи. Поэтому, если я нажимаю кнопку X, выбранная строка должна быть удалена. Я знаю, что мне нужно сделать это с помощью SQL-запроса, чтобы таблица изменилась в соответствии с записями базы данных. Но как я могу это сделать, поскольку он должен знать, какая строка принадлежит этой конкретной кнопке удаления?

<div id="customers"> 
<table id="customerTable"> 
<tr> 
<td>First Name</td> 
<td>Last Name</td> 
<td>Company</td> 
<td>Adress</td> 
<td>Wijzig</td> 
<td>Verwijder</td> 
</tr> 
<?php 
    //connect to database 
    include_once('mysql_connect.php'); 

    // Select database 
    mysql_select_db("etn207") or die(mysql_error()); 

    // SQL query 
    $strSQL = "SELECT * FROM customer"; 

    // Execute the query (the recordset $rs contains the result) 
    $rs = mysql_query($strSQL); 
    // Loop the recordset $rs 
    // Each row will be made into an array ($row) using mysql_fetch_array 

     while($row = mysql_fetch_array($rs)) { 

     // Write the value of the column FirstName (which is now in the array $row 
     echo '<tr>'; 
     echo '<td>'."<center>".$row['firstname']."<br>"."</center>".'</td>'; 
     echo '<td>'."<center>".$row['lastname']."<br>"."</center>".'</td>'; 
     echo '<td>'."<center>".$row['company']."<br>"."</center>".'</td>'; 
     echo '<td>'."<center>".$row['adress']."<br>"."</center>".'</td>'; 
     echo '<td>'."<center>".'<img src="images/edit.png" width="20px" height="20px" border=0>'."<br>"."</center>".'</td>'; 
     echo '<td>'."<center>".'<img src="images/delete.png" onClick="" width="20px" height="20px" border=0>'."<br>"."</center>".'</td>';  
     echo '</tr>'; 
     } 



    // Close the database connection 
    mysql_close(); 

?> 
</table> 
</div> 
+0

Вы можете сделать для каждой кнопки форму или использовать ajax – Perry

+0

Обязательно избегайте SQL инъекционная ловушка ... Кроме того, mysql_ * устарел. Используйте mysqli_ или еще более предпочтительно PDO ... – ppeterka

ответ

1

ПАРОЛЯ как скрытое значение и использовать, чтобы удалить эту конкретную строку

<input type="hidden" name="id_to_be_deleted" value="<?php echo $id; ?>" /> 

Теперь просто получить этот идентификатор на покориться и удалить строку из базы данных

<form method="post"> 
    <input type="hidden" name="id_to_be_deleted" value="<?php echo $id; ?>" /> 
    <input type="submit" name="delete_row" /> 
</form> 

<?php 
if(isset($_POST['delete_row'])) { 
    $id = $_POST['id_to_be_deleted']; 
    if(!mysqli_query($connection, "DELETE FROM table_name WHERE id = $id")) { 
    echo mysqli_error($connection); 
    } else { 
     //redirect $_SERVER['REQUEST_URI']; 
    } 
} 
?> 
+0

Спасибо за быстрый ответ! Я как бы новичок в php, не могли бы вы намекнуть мне, где именно разместить этот фрагмент кода? Я не знаю, какой идентификатор соответствует идентификатору $ id. Возможно ли использовать это изображение X, как показано выше, вместо кнопки отправки? – DaViDa

+0

@DaViDa Insttead of images теперь использует кнопку отправки, извлекает идентификатор для каждой записи или говорит уникальный идентификатор, чтобы ссылаться на эту конкретную строку в базе данных, а не использовать это значение в скрытом поле, а затем удалять. Попробуйте удалить запись, как только вы закончите, вы можете использовать свойство «background-image» в CSS, чтобы стиль кнопки отправки был красным «X» image :) –

+0

Спасибо, я попробую! Я не знаю, что я этого не делал! – DaViDa

1

Ваш записи базы данных, скорее всего, имеют уникальный идентификатор (первичный ключ или около того); Используйте этот уникальный идентификатор при создании ссылки на вашей Кнопка удаления:

echo '<a href="deleterecord.php?id=' . $yourUniqueidentifier . '"><img src="images/delete.png"></a>' 

Вы должны использовать другие советы для вашего кода тоже, как использование CSS, а не «центр» тег, возможно, использовать AJAX для удаления записи без полный postback, используйте хеш в вашем запросе, чтобы избежать несанкционированного удаления записей и т. д., но здесь не главное :-)