Html sayfasından mysql satırları silmek için en iyi yol - linki ve php silme

4 Cevap php

I'm returning all rows in a table with a while statement and PHP. the rows indicate a list of items. I'd like to include delete links next to each item so users can delete the entries. I'm trying to figure how to go about it in PHP. Can anyone help me write the script.. I'm using procedural.. not OOP. I'm thinking the link takes users to a process page and back, but I'm not gonna be aware of the entries beforehand, it's all dynamic and the list is always changing.

şimdiden teşekkürler

4 Cevap

En iyi ve uygulama tasarruf onay kutularını kullanıyor. Google onları örümcek değil, kullanıcıların kolayca zararlı kod koyamazsınız ve her silmek için sayfayı yenileyin değildir:

HTML örnek:

while ($row = mysql_fetch_assoc($items))
{
    echo '<input name="delete['.$row['id'].']" type="checkbox">';
}

PHP işleme örnek:

$delete = $_POST['delete'];

foreach($delete as $id = $value)
{
    $id = mysql_real_escape_string($id);
    mysql_query("DELETE FROM table_name WHERE id = $id");
}

Böyle bir şey güzel iş yapmalıyım

Kesinlikle Ignacio'nun Yorumlarınız bakabilirsiniz. Webspiders bağlantıları takip edebiliyoruz beri ... doğal olarak onlar silme linki vurdu ve orada herhangi bir veri yok edecektir.

Ben bunun yerine bir bağlantı gönder düğmesi ile küçük bir formu yapmanızı tavsiye ederim.

Çizgisinde bir şey

echo "<form id='form_$id' method='post'>" ..
      <input type='hidden' name='id' value='$id' /> ..
      <input type='submit' name='submit_$id' value='delete' /> ..
      </form>";

Bu oldukça yalındır. Sadece bu URL bir parametre olarak silmek istediğiniz satır kimliği ile bir URL oluşturmak. Sonra bu bağlantı sorgu dizesinden kimliği almak ve veritabanı işi tıklandığında.

Bağlantısı oluşturmak için:

<?php
// Do query here
while ($row = mysql_fetch_assoc($resource_id))
{
     echo "<a href="delete.php?id={$row['id']}">Delete row</a>;
}
?>

Silme isteği işlemek için:

<?php
    $id = $_GET['id'];
    mysql_query("DELETE FROM table_name WHERE id = {$id}");
?>

Doğal veri doğrulama ve şeyler yapmak gerekiyor ama bu size bir fikir vermelidir.

Kaydını silmek için Javascript kullanarak olmaz bağlantıyı izleyerek web örümcekler önlemek için olası bir yolu olabilir mi?

Örneğin, gibi bir şey yapıyor:

<a href="#" id="delete_link" rel="3">Delete</a>

<script>
  $('#delete_link').click(function() {
    document.location.href = "delete.php?id=" + $(this).attr('rel');
  });
</script>

Web örümcekler JavaScript bağlantıları takip etmezseniz, bu ince olmalıdır ...