le 14/02/2006 à 10:40
universdupc
Salut !
Voilà j'aun script d'anuaire téléphonique, et sur cette annuraire je fais une recherche par nolm ou un affichage par lettre. Cela c'est ok. Mais mainteannt j'aimerais affiner ma recherche. C'est à dire une recherche par prenom ou par nom ou totu simplement les deux.
Savez-vous comment peut-on s'y prendre ?
Voici le bout de code que j'utilise pour ma recherche
Merci d'avance !
Voilà j'aun script d'anuaire téléphonique, et sur cette annuraire je fais une recherche par nolm ou un affichage par lettre. Cela c'est ok. Mais mainteannt j'aimerais affiner ma recherche. C'est à dire une recherche par prenom ou par nom ou totu simplement les deux.
Savez-vous comment peut-on s'y prendre ?
Voici le bout de code que j'utilise pour ma recherche
<?php
// lancement de la requête
/* On récupère la lettre choisie et envoyée en paramètre s'il y en a une */
$lettre = isset($_GET['lettre']) ? $_GET['lettre'] : '';
$recherche_nom = isset($_POST['rech_nom']) ? $_POST['rech_nom'] : null;
//$recherche_prenom = isset($_POST['rech_prenom']) ? $_POST['rech_prenom'] : null;
/* On inutialise le début de la requête SQL */
$sql = 'SELECT agenda_id, agenda_nom, agenda_prenom, agenda_addresse, agenda_telephone, membre_id, agenda_recherche FROM gestion_agenda ';
/* Si il y a une lettre en paramètre, on ajoute une clause WHERE pour n'extraire
que les champs contenant cette lettre */
if($lettre != "")
{
$sql .= 'WHERE membre_id="'.$_SESSION['membre_id'].'" AND `agenda_nom` REGEXP "^(' . strtoupper($lettre) . '|';
$sql .= strtolower($lettre) . '){1}"';
}
if($recherche_nom != "")
{
$sql .= 'WHERE membre_id="'.$_SESSION['membre_id'].'" AND `agenda_nom` REGEXP "^(' . strtoupper($recherche_nom) . '|';
$sql .= strtolower($recherche_nom) . '){1}"';
}
//if($recherche_prenom != "")
//{
// $sql .= 'WHERE membre_id="'.$_SESSION['membre_id'].'" AND `agenda_prenom` REGEXP "^(' . strtoupper($recherche_prenom) . '|';
// $sql .= strtolower($recherche_prenom) . '){1}"';
//}
//if($recherche_prenom != "" && $recherche_nom != "")
//{
// $sql .= 'WHERE membre_id="'.$_SESSION['membre_id'].'" AND `agenda_recherche` REGEXP "^(' . strtoupper($recherche_nom$recherche_prenom) . '|';
// $sql .= strtolower($recherche_nom$recherche_prenom) . '){1}"';
//}
if($recherche_nom == "" && $lettre == "")
{
$sql .= 'WHERE membre_id="'.$_SESSION['membre_id'].'"';
}
/* On ajoute une clause ORDER BY por trier les résultat en ordre (ici alphabétique) */
$sql .= 'ORDER BY agenda_nom';
// on lance la requête (mysql_query) et on impose un message d'erreur si la requête ne se passe pas bien (or die)
$req = mysql_query($sql) or die('Erreur SQL !'.$sql.''.mysql_error());
// Récupération du nombre d'enregistrement dans la base
$number = MYSQL_NUM_ROWS($req);
// Affichage du nombre d'enregistrement
?>
Merci d'avance !