• 20-08-2014, 19:49:21
    #1
    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ı
  • 20-08-2014, 20:20:35
    #2
    fsahinoglu adlı üyeden alıntı: mesajı görüntüle
    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ı
    bu şekilde denesen bence daha iyi olur gibi. En azından sorun çıkarsa tam olarak hangisini yapmadığını falan anlaman daha kolay olur.

    $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:10
    #3
    INNER 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:51
    #4
    fsahinoglu adlı üyeden alıntı: mesajı görüntüle
    INNER 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'],",").")");
    anladım hocam. aslında kodda hata yok gibi duruyor.
    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:23
    #5
    sehzadem adlı üyeden alıntı: mesajı görüntüle
    anladım hocam. aslında kodda hata yok gibi duruyor.
    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.
    uyarıda şunu yazıyor bana mysql güncelle mi diyor anlamadım ingizlizcemde pek iyi değil

    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:16
    #6
    XYZ
    Kimlik 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:58
    #7
    fsahinoglu adlı üyeden alıntı: mesajı görüntüle
    uyarıda şunu yazıyor bana mysql güncelle mi diyor anlamadım ingizlizcemde pek iyi değil

    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
    yazı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.
  • 20-08-2014, 21:25:29
    #8
    sehzadem adlı üyeden alıntı: mesajı görüntüle
    yazı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.
    sağol hocam ben de netten yabancı sitelerden buldum

    $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