J'ai donc ce système PM.PHP: Si pas de prénom
Dans le champ Destinataire, vous pouvez saisir le nom complet de l'utilisateur auquel vous voulez écrire.
Donc je veux aider l'utilisateur alittle, s'il ne se souvient pas du nom.
Donc, si vous voulez écrire le nom complet « Megan Fox » et ne savent:
Megan
Megan F
Megan Fo
Meg Fo
M Fox
etc..
Il retournera « Vouliez-vous dire Megan Fox? » Cela fonctionne déjà très bien.
Maintenant ce que je dois en est que si vous écrivez seulement Fox, sans prenom, je veux qu'il echo « Vouliez-vous dire Megan Fox? »
Voici où je suis coincé, car il crée $ nom de famille après l'espace. Et je ne veux vraiment pas utiliser deux champs pour le premier et le dernier.
Comment puis-je faire cela?
Voici mon code:
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%')
ORDER BY (firstname = '$firstname' AND lastname='$lastname') DESC");
$get = mysql_fetch_array($qur);
if($get["full"] == 1){
echo $get["id"];
}else{
echo "Did you mean: ".$get["firstname"]." ".$get["lastname"]." ?";
}
J'espère que vous EFM faire une hygiène de chaîne étanche à l'air avant de les déposer directement dans la requête comme ça. Sinon, l'injection SQL serait très facile pour un utilisateur malveillant ici. –
oui, $ mot est real_escaped – Johnson