Benim kullanıcıları için bir PM sistemi yapıyorum.
Alıcı alanına bir tam adını yazın. Gönderdiğiniz zaman ben o gönderir doğru kullanıcı olduğundan emin olmak istiyorum.
O "Megan Fox" yazarsanız Yani, bir kullanıcı tam bir maç bulunuyor. O Meg F veya Megan yazarsanız ama, Fox "Bunu Megan Fox demek istediniz?" Dönecektir
Yani ...
Şimdi adı "Megan" ya lastname "Fox" ile birden fazla orada ne varsa düşündüm. Bunun için (), bir süre önce yapılan ve 1'den gidecekseniz daha, eğer dönecektir "Kimi kastettin:? Matt Fox, Megan Fox"
Şimdi Yanlış nereye gider bulundu havnt, ben lastname "Fox" ile 3 satır var, sadece iki tanesi gösteriyor "Kimi kastettin?"
Bunu nasıl çözebilirim?
Ben sadece Alıcı alanına bir boşluk varsa, o tablo, tüm kullanıcılar dönecektir. I bu nasıl önleyebilirsiniz?
İşte benim kod şuna benziyor:
$mot = mysql_real_escape_string($_POST['mottagare']);
list($firstname, $lastname) = array_map('ucfirst', explode(' ', $mot, 2));
$qur = mysql_query("
SELECT id, firstname, lastname,
(firstname = '$firstname' AND lastname = '$lastname') AS full FROM users
WHERE (firstname = '$firstname' AND lastname='$lastname')
OR (firstname LIKE '$firstname%' AND lastname LIKE '$lastname%')
OR firstname LIKE '$firstname%' OR lastname LIKE '$firstname%'
ORDER BY (firstname = '$firstname' AND lastname='$lastname') DESC");
$get = mysql_fetch_array($qur);
if(mysql_num_rows($qur) == 1){
if($get["full"] == 1){
echo $get["id"];
}else{
echo "Did you mean ".$get["firstname"]." ".$get["lastname"]." ?";
}
}elseif(mysql_num_rows($qur) > 1){
while($get = mysql_fetch_array($qur)) {
$name[] = $get["firstname"]." ".$get["lastname"];
}
if(count($name) > 1) {
echo 'Who did you mean?<br>';
} else {
echo 'Did you mean: ';
}
echo implode('<br>', $name);
}