WHERE et REGEXP

Répondre
universdupc
le 17/01/2006 à 09:54
universdupc
SAlut,

Voilà j'aimerais savoir comment fait ton pour rajouter une condition dans un where
ou il y déjà une REGEXP.
Je vous montre mon code :

<?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 = isset($_POST['recherche']) ? $_POST['recherche'] : null;

/* On inutialise le début de la requête SQL */
$sql = 'SELECT agenda_id, agenda_nom, agenda_prénom, agenda_addresse,
agenda_telephone, membre_id 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 `agenda_nom` REGEXP "^(' . strtoupper($lettre) . '|';
$sql .= strtolower($lettre) . '){1}"';
}
if($recherche != "")
{
$sql .= 'WHERE `agenda_nom` REGEXP "^(' . strtoupper($recherche) . '|';
$sql .= strtolower($recherche) . '){1}"';
}
if($recherche == "" && $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());


J'aimerais rajouter apres la clause agenda_nom la clause membre_id="'.$_SESSION, mais je n'y arrive pas il me le prend pas en compte quand je l'insère dans la requête ?

Merci d'avance
universdupc
le 17/01/2006 à 09:58
universdupc
Euh encore dsl j'i trouvé la réponse seule merci quand même. Pour info je la mets si dessous.

<?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 = isset($_POST['recherche']) ? $_POST['recherche'] : null;

/* On inutialise le début de la requête SQL */
$sql = 'SELECT agenda_id, agenda_nom, agenda_prénom, agenda_addresse, agenda_telephone, membre_id 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 != "")
{
$sql .= 'WHERE membre_id="'.$_SESSION['membre_id'].'" AND `agenda_nom` REGEXP "^(' . strtoupper($recherche) . '|';
$sql .= strtolower($recherche) . '){1}"';
}
if($recherche == "" && $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épondre

Ecrire un message

Votre message vient d'être créé avec succès.
LoadingChargement en cours