Benim komut dosyası için yardım Sil

4 Cevap php

Yani neredeyse benim silme fonksiyonu çalışma var ... Ben herhangi bir ölümcül hata yapmadan doğru sayfa yükleme var ama hala hile yapmıyor

İşte benim while döngüsünün kısmıdır:

echo "<a href='http://www.@#@$#%##%#.org/Profile.php?id=".$prof->id."'>";
echo " delete";
echo "</a>";

ve burada tabii ki yanlış benim sorgu kısmıdır:

$query = "UPDATE `ProfileComments` SET `status` = 'dead' WHERE `id` = '".$prof->id."' LIMIT 1";

bu yüzden nasıl bu sayfada yorumu silmek için alabilirim? ve db durum ölü işaretlemek?

Teşekkürler

4 Cevap

Bir soft delete yapıyorsun gibi sql ince olduğu görünüyor. Sizin select ifadesi 'ölü' bir statüye sahip yorumlarınızı dışlamak gerekir

SELECT columns FROM ProfileComments WHERE status != 'dead' AND id = {$prof->id}

Tabii ki bu bağlantıyı oluşturmak zaman prof->id doldurmak nasıl görmeden bir tahmin.

Olsa yazı ile diğer sorunları bir çift var:

  1. Başkalarına tavsiye ettiler, aksi takdirde sql enjeksiyon kendinizi açık bırakmak parametreli sorgular kullanmanız gerekir
  2. Sen (çıplak bir çapa kullanarak) bir get isteği ile silme yapmamalıyız. AJAX kullanarak silmek veya bir form aracılığıyla yok ya. Bir olsun üzerinden sunucu verileri değiştirerek kötü bir uygulamadır.

Eğer ölümcül hatalar görmüyorsun diye, kod siz istediğiniz gibi davranmaya gerek yok.

var_dump aracılığıyla koyarak, $prof->id ile döngünün içinde içeriğini incelemek ve ardından die, bu özellik şu anda ne tutar kontrol sağlayacak Eğer bunu yazdırmak istiyorum.

Aynı şey sorguda geçerlidir, var_dump ne içerdiğini görmek için.

Lütfen daha fazla kod (ve deneyim düzeyini bilmeden) göremiyorum, ben aslında yardıma ihtiyacım nerede emin değilim, bu yüzden benim sorum / tavsiyem açık ve sizin için çok temel ise beni affet:

Nasıl $prof->id profile.php doldurulur oluyor? Eğer istek dışı çekerek Hazır (şöyle: $id = $_REQUEST["id"])?

Michael dediği gibi, lütfen do parameterized queries. (Eğer çocuklar hakkında umurumda değil, en azından kedi düşünün!)

SQL deyimi iyi görünüyor, ve html kodu çok iyi. Sorunu bulmak için

  1. Eğer SQL bu durumda, id doğru parametre oluyor emin olmak gerekir. sadece id eksik veya yanlış olup olmadığını $ prof-> id sabitleme ihtiyacı olduğunu biliyorum, bunu echo.

  2. Ayrıca php tarafından terk linki kontrol edin, tekrar doğru id içeriyor?

  3. Temelde SQL sorgu deyimi denir emin olun, size SQL yürütmek önce herhangi bir hata yok emin olun. ve db bağlantı canlı olduğundan emin olun.

  4. MySQL deyimi ölümcül bir hata atmak değil yanlış olduğu zaman, siz) (mysql_error tarafından hatası kendinizi yazdırmak gerekiyor.