s.a arkadaşlar 2 tablom var uyeler ve uyelerin mesajları uye tablsoundaki üyeyi ve sildiğim üyenin mesajlarınıda üyelerin mesajları tablosundan da silmem gerek
get olarak gönderdiğim id ler misal şöyle tek id 9, birden fazla seçili olursa 2,12,15, şeklinde get olarak gönderiyorum rtrim olarak , leri kaldırıp delete olarak silmeye çalışıyorum olmuyor
$sql=mysql_query("DELETE * FROM uye INNER JOIN uye_mesaj ON uye.ID=uye_mesaj.ID WHERE uye.ID IN (".rtrim($_GET['id],",").")");
bu şekilde kodu kullanıyorum hata alıyorum bulamadım nerede hata yaptığımı
delete inner join nerede hata yaptım
7
●732
- 20-08-2014, 19:49:21
- 20-08-2014, 20:20:35bu şekilde denesen bence daha iyi olur gibi. En azından sorun çıkarsa tam olarak hangisini yapmadığını falan anlaman daha kolay olur.fsahinoglu adlı üyeden alıntı: mesajı görüntüle
$idler= '2,4,7,9,12,'; $idler = trim($idler,','); $idler = explode(',',$idler); for($i=0;$i<count($idler);$i++) { $mesajSql = mysql_query("select mesajid from mesajlar where uyeid='".idler[$i]."'"); while($mesajveri = mysql_fetch_array($mesajsql)) { mysql_query("delete from mesajlar where mesajid='".$mesajveri['mesajid']."'"); } mysql_query("delete from uyeler where uyeid='".idler[$i]."'"); } - 20-08-2014, 20:36:10INNER JOIN kullanmak daha mantıklı gelmişti tek satır kodla 1 deb fazla ilişkili tablolardaki verileri silme konusunda
ben bu şekilde yaptım çalışıyor fakat inner join tek satır koda indirmek istemiştim
$uye = mysql_query("DELETE FROM uye WHERE ID IN (".rtrim($_GET['id'],",").")"); //
$mesaj = mysql_query("DELETE FROM uye_mesaj WHERE ID IN (".rtrim($_GET['id'],",").")"); - 20-08-2014, 20:55:51anladım hocam. aslında kodda hata yok gibi duruyor.fsahinoglu adlı üyeden alıntı: mesajı görüntüle
ama normal kullanımda delete * from yerine, delete tablo1,tablo2 şeklinde kullanılıyor. ama zaten * diyoruz neden sorun çıkarır ki. inşallah çözen biri olurda bende anlamış olurum.
- 20-08-2014, 21:04:23uyarıda şunu yazıyor bana mysql güncelle mi diyor anlamadım ingizlizcemde pek iyi değilsehzadem adlı üyeden alıntı: mesajı görüntüle
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near
error log da atmıyor kod normal gibi geliyor bana sorun olmaması gerek hatta tablolardan misal 19 nolu id den bilgileri inner join ile bilgileri çekebiliyorum ama delete yapınca 19 nolu id sil diyorum yok garip bir durum - 20-08-2014, 21:17:16Kimlik doğrulama veya yönetimden onay bekliyor.
DELETE uye,uye_mesaj FROM uye LEFT JOIN uye_mesaj on uye_mesaj.ID = uye.ID WHERE (uye.ID IN (2,4,7,9,12))
Bu şekilde uye tablosundaki verilen idlere sahip uyeleri ve onların mesajlarını siliyor.
Aklıma bir şey takıldı uye_mesaj tablosunda mesajin hangi kullanıcıya ait olduğunu gösteren sütunun adı "ID" mi? - 20-08-2014, 21:19:58yazım hatası var diyor hocam. sizin mysql versiyonun da nasıl yazıldığına bakın gibi bişey söylüyor anladığım kadarıyla. ... syntax to use near burada near dan sonra hatayıda göstermesi gerekiyor onuda paylaşırsanız belki ortak bi çözüm bulabiliriz.fsahinoglu adlı üyeden alıntı: mesajı görüntüle
- 20-08-2014, 21:25:29sağol hocam ben de netten yabancı sitelerden buldumsehzadem adlı üyeden alıntı: mesajı görüntüle
$sql=mysql_query("DELETE uye,uye_mesaj FROM uye INNER JOIN uye_mesaj ON uye.ID=uye_mesaj.ID WHERE uye.ID IN (".rtrim($_GET['id],",").")");
şeklinde olacak çalıştı. şimdiden çok tşk ederim
("DELETE uye,uye_mesaj bu kısmı atlamışız.
--R10.NET; Flood Engellendi -->-> Yeni yazılan mesaj 21:25:29 -->-> Daha önceki mesaj 21:24:39 --
update işleminide ona göre yaparız artık
