• 04-10-2009, 22:06:11
    #1
    Eposta Aktivasyonu Gerekmekte
    arkadaşlar sitemdeki mailleri tekile çevirmem lazım yani olay şu

    1@hot.com, 2@hot.com 1@hot.com vs gidiyor..

    aynı mailleri 5-6 kere görüyorum yani benim istediğim bu listemi nasıl tekil hale getiririm?

    Yani bu listeyi biryere giricem çogul olanlar elencek komple sonucta tekil mailleri vericek yani her mailden 1 adet sıralıycak nasıl yapabiliriz.
  • 04-10-2009, 22:15:25
    #2
    Listeyi explode yada prig_split ile bölüp dizideki aynı elemanları array_unique ile birleştirebilirsin.
  • 04-10-2009, 23:35:57
    #3
    database e nasıl kayıtlı bunlar?

    mail (mail tablosu)
    -----
    1@hot..
    ------
    2@hot..
    -----
    .
    .


    diye mi?
  • 04-10-2009, 23:42:40
    #4
    Mail adreslerini tuttuğun alanı unique olarak ayarla. Varolan mail adreslerini tekrar tekrar eklemez.
  • 04-10-2009, 23:57:04
    #5
    ama mevcutları düzeltmek için bi kerelik çalıştırılacak bi php kod yazılması gerekebilir
  • 05-10-2009, 09:57:34
    #6
    ErsaT adlı üyeden alıntı: mesajı görüntüle
    Mail adreslerini tuttuğun alanı unique olarak ayarla. Varolan mail adreslerini tekrar tekrar eklemez.
    Bu doğru bir bilgi ama eski maillerde çakışma olacağı için o işlem sürekli hata verecektir. Bu olay daha önce başıma geldi. En güzel çözüm aşağıdaki gibi oldu, bence

    Öncelikle gecici bir tablo oluşturuyoruz
     CREATE  TABLE  mail_gecici (  `mail_adresi` varchar( 255  )  NOT  NULL default  ''
      ) ENGINE  =  MyISAM  DEFAULT CHARSET  = latin5;
    daha sonra oluşturduğumuz tabloya mevcut "mail" tablomuzdaki verileri DISTINCT olarak yani tek 1 tane olacak şekilde ekliyoruz.
    Alıntı
    INSERT INTO mail_gecici SELECT DISTINCT(mail_adresi) FROM mail
    bu işlemi yaptıktan sonra asıl tablomuzu siliyoruz
    DROP TABLE mail;
    Sonrasında ise mail_gecici tablosunun ismini mail olarak değiştiriyoruz.

    Alıntı
    CREATE TABLE mail ( `mail_adresi` varchar( 255 ) NOT NULL default ''
    ) ENGINE = MyISAM DEFAULT CHARSET = latin5;

    INSERT INTO mail SELECT DISTINCT(mail_adresi) FROM mail_gecici;

    DROP TABLE mail_gecici;
  • 05-10-2009, 10:46:46
    #7
    Üyeliği durduruldu
    bir alternatif olarakta çekerken group by yada distict ile çekerseniz db de uğraşmadan çözüme ulaşabilirsiniz