v2.5.2
Giriş yap

PHP MYSQL Hariç

ugurkilci
1,239 defa görüntülendi

ÇÖZÜLDÜ!
Kodlar: https://pbs.twimg.com/media/EZsmVYJWsAAdddU?format=png&name=900x900 ve https://pbs.twimg.com/media/EZsmY1bXgAAFIEf?format=png&name=small şurda yazılı

Ayarlar sayfası kodluyorum. Üye adını veya eposta adresini değiştirebilecek.

yazdığım eposta hali hazırdaki epostam ile { aynı ise

güncelleme işlemi olmasın

} farklı ise {

benim epostam hariç, veri tabanında öyle eposta varsa onu kontrol et { var
    o zaman hata versin.
    > "böyle eposta var başka eposta deneyiniz"
} yok {
    güncelle
}

}

-- Sorun Tam Olarak Nedir? --

Üye idsi 1 olan kullanıcı ayarlara girer. Bir güncelleme işlemi yapar. Bu güncellemede eposta adresinde bir değişiklik olmazsa "eposta adresini" güncellemez. Eğer bir değişiklik olduysa bu değişiklik önce veri tabanında bir kontrol ile sorgulanır. Kontrolde üye listesinde "kendi eposta adresi dışında" bir eposta adresini kullanılmışsa hata verir.
Eğer veri tabanında input içinde girdiği eposta adresi yoksa işlemi başarıyla günceller.

-- Neler Denedim? --

  1. RowCount sistemini denedim.
    $kontrol = $db->prepare("SELECT * FROM uyeler WHERE uye_id =:uye_id AND uye_eposta =:uye_eposta");
    $kontrol->execute(array('uye_id'=>$uyeid, 'uye_eposta'=>$uyeeposta));
    $_kontrol = $kontrol->rowCount();

if($_kontrol > 0){ // Var

// Hata ver

}else{ // Yok

// Güncelle

}

  1. != şeklinde bir denemem oldu.
    "SELECT * FROM uyeler WHERE uye_id != '$uye_id' AND uye_eposta != '$uyeeposta'"

  2. != den önce NOT gelmesi gerekiyormuş. Onu da denedim.
    "SELECT * FROM uyeler WHERE NOT uye_id != '$uye_id' AND NOT uye_eposta != '$uyeeposta'"

  3. Ama NOT gelince != koymaya gerek yokmuş diye de okudum. Nolur nolmaz öylede denedim.
    "SELECT * FROM uyeler WHERE NOT uye_id = '$uye_id' AND NOT uye_eposta = '$uyeeposta'"

  4. != şeklinde bir işlemde çok sağlıksız sonuçlar elde edilebilirmiş. Bu yüzden NOT IN şeklinde başka bir şey öneriliyormuş. Onu da denedim.
    "SELECT * FROM uyeler WHERE uye_id NOT IN ('$uye_id') uye_eposta NOT IN ('$uyeeposta')"

  5. Belki farklı bir şey olur diye hem Query hem de Prepare ile de denedim.
    prepare("SELECT ....... "); yada query("SELECT ........ ");

  6. Bir de bunların farklı kombinasyonları.
    prepare("SELECT ....... "); + NOT IN + !=
    yada
    query("SELECT ........ "); + !=
    yada
    prepare("SELECT ....... "); NOT IN
    ....

Fakat her ne yapsam hata alıyorum.

-- Ne Hatası Alıyorum? --
Ya hep güncelliyor, yada hep hata veriyor. Düzgün çalışmıyor.

-- Nasıl Çözebiliriz? --

ugurkilci
1668 gün önce

Bu sistem daha güvenli. Yazdığınızı denerim. Teşekkür ederim. :)