Mantık hatan şurada ilk yaptığın kontrollerde where koşulu içinde kullanıcının id sini kullanmamalısın.
Siz bu kullanıcı adını benim veritabanımda başka kullanan kullanıcı varsa kullanamasın demek istiyorsunuz anlaşılan ama bu aramayı tüm kullanıcılarda yapmıyor. Sizin kodlarınızda sadece ilgili aramayı güncelleme talep eden kullanıcının verilerinde yapıyorsunuz id koşulu eklediğiniz için.
Bu mantık hatası tüm kontrollerinizde mevcut.
Id koşulunu sadece güncelleme işlemi gerçekleştirileceği zaman yapmalısınız. Umarım anlatabilmişimdir.
Kodların düzenlenmiş halini deneyin.
<?php
$userID = post('userID'); // Kullanıcının ID'sini almayı unutmayın
$userName = post('userName');
$userSurname = post('userSurname');
$userUsername = post('userUsername');
$userMail = post('userMail');
$userPhone = post('userPhone');
$userStatus = post('userStatus');
$userAuth = post('userAuth');
// Kullanıcı adını kontrol et
$checkUsernameQuery = "SELECT COUNT(*) FROM uyeler WHERE uye_kullaniciadi = :username";
$checkUsernameStmt = $db->prepare($checkUsernameQuery);
$checkUsernameStmt->bindParam(':username', $userUsername);
$checkUsernameStmt->execute();
$usernameCount = $checkUsernameStmt->fetchColumn();
// E-posta adresini kontrol et
$checkMailQuery = "SELECT COUNT(*) FROM uyeler WHERE uye_mail = :mail";
$checkMailStmt = $db->prepare($checkMailQuery);
$checkMailStmt->bindParam(':mail', $userMail);
$checkMailStmt->execute();
$mailCount = $checkMailStmt->fetchColumn();
// Telefon numarasını kontrol et
$checkPhoneQuery = "SELECT COUNT(*) FROM uyeler WHERE uye_telefon = :phone";
$checkPhoneStmt = $db->prepare($checkPhoneQuery);
$checkPhoneStmt->bindParam(':phone', $userPhone);
$checkPhoneStmt->execute();
$phoneCount = $checkPhoneStmt->fetchColumn();
if ($usernameCount > 0) {
echo "Bu kullanıcı adı zaten kullanımda.";
} elseif ($mailCount > 0) {
echo "Bu e-posta adresi zaten kullanımda.";
} elseif ($phoneCount > 0) {
echo "Bu telefon numarası zaten kullanımda.";
} else {
// Kullanıcıyı güncelleme işlemi için SQL sorgusu
$updateUserQuery = "UPDATE uyeler SET uye_ad = :name, uye_soyad = :surname, uye_kullaniciadi = :username, uye_mail = :mail, uye_telefon = :phone, uye_durum = :status, uye_yetki = :auth WHERE uye_id = :id";
$updateUserStmt = $db->prepare($updateUserQuery);
$updateUserStmt->bindParam(':name', $userName);
$updateUserStmt->bindParam(':surname', $userSurname);
$updateUserStmt->bindParam(':username', $userUsername);
$updateUserStmt->bindParam(':mail', $userMail);
$updateUserStmt->bindParam(':phone', $userPhone);
$updateUserStmt->bindParam(':status', $userStatus);
$updateUserStmt->bindParam(':auth', $userAuth);
$updateUserStmt->bindParam(':id', $userID);
$updateUserStmt->execute();
echo "Kullanıcı başarıyla güncellendi.";
}
?>