Mysql : plusieurs requetes en une [résolu]
8 messages
• Page 1 sur 1
Consultez la formation à Google Analytics de WebRankInfo / Ranking Metrics
- 2fou
- WRInaute discret

- Messages: 223
- Inscription: 7 Juil 2003
Mysql : plusieurs requetes en une [résolu]
bonjour,
sur un script de recherche multicritères je veux associer plusieurs requetes déja utilisé.
Séparemmant, chacune de ces requetes fonctionnent.
J'ai donc essayé ceci :
mais cela ne fonctionne pas.
la requet ne retourne aucun résultat quel que soit mes critères de recherche .
en fait, je pense que la requete est trop longue (trop de and et or).
alors je me demandais (et je vous demande) s'il existe une formulation du type
$req1 = "select..."
$req2 = "select..."
$req3 = "select..."
$req4 = $req1 + $req2 + $req3
Pouvez vous s'il vous plait m'aider à faire fonctionner cette requete
Merci de votre aide.
sur un script de recherche multicritères je veux associer plusieurs requetes déja utilisé.
- Code: Tout sélectionner
$sqlsens = "select * from courrier where sens = '$sens'"; $sqldate = "select * from courrier where datecourrier > '$annee-$mois-$jour' and datecourrier < '$annee2-$mois2-$jour2'";
$sqlexpe = "select * from courrier where expediteur = '$exped'";
$sqldest = "select * from courrier where destinataire = '$dest'";
$sqlmot = "select * from courrier where objet like '%$mot%' OR destinataire like '%$mot%' OR expediteur like '%$mot%'OR type like '%$mot%'";
Séparemmant, chacune de ces requetes fonctionnent.
J'ai donc essayé ceci :
- Code: Tout sélectionner
$sql1 = "select * from courrier where sens = '$sens' and datecourrier > '$annee-$mois-$jour' and datecourrier < '$annee2-$mois2-$jour2' and expediteur = '$exped' and destinataire = '$dest' and (objet like '%$mot%' OR destinataire like '%$mot%' OR expediteur like '%$mot%'OR type like '%$mot%')";
mais cela ne fonctionne pas.
la requet ne retourne aucun résultat quel que soit mes critères de recherche .
en fait, je pense que la requete est trop longue (trop de and et or).
alors je me demandais (et je vous demande) s'il existe une formulation du type
$req1 = "select..."
$req2 = "select..."
$req3 = "select..."
$req4 = $req1 + $req2 + $req3
Pouvez vous s'il vous plait m'aider à faire fonctionner cette requete
Merci de votre aide.
Dernière édition par 2fou le Lun Mai 30, 2005 13:37, édité 1 fois.
- 2fou
- WRInaute discret

- Messages: 223
- Inscription: 7 Juil 2003
je viens de m'appercevoir que si je vire " expediteur = '$exped' ou destinataire = '$dest' ,
la recherche mutlicritère fonctionne pour tous les critères (sauf le critère viré).
help me please !!!
la recherche mutlicritère fonctionne pour tous les critères (sauf le critère viré).
help me please !!!
Dernière édition par 2fou le Lun Mai 30, 2005 12:35, édité 1 fois.
-

Lambo - WRInaute discret

- Messages: 100
- Inscription: 19 Mar 2005
Non, en fait, comme tu force tous les paramètres dans ta requête, il faut que dans ta recherche tu précises une valeur pour chaque paramètre, sinon tu peux te retrouver avec des expediteur = '' ce qui correspond à un expediteur vide.
Je suppose que ce que tu veux c'est que si tu ne mets pas d'expéditeur, il ne tient pas compte de cette clause.
Et dans ce cas, il faut que tu construises ta clause where en fonction des paramètres qui ont été saisis pour la recherche.
Tout cela avec des petits "if".
Je suppose que ce que tu veux c'est que si tu ne mets pas d'expéditeur, il ne tient pas compte de cette clause.
Et dans ce cas, il faut que tu construises ta clause where en fonction des paramètres qui ont été saisis pour la recherche.
Tout cela avec des petits "if".
- 2fou
- WRInaute discret

- Messages: 223
- Inscription: 7 Juil 2003
salut.
je ne pense pas que le OR soit la bonne solution.
je veux que ce script de recherche multicritère me permettent de retrouver dans la bdd, par exemple les courriers classé dans la catégorie "envoyés" ($sens=départ) ET enregistrés après le 01/05/205 ET Avant le 30/05/05 ET dont l'expéditeur est Mr Untel ($exped="Untel") ET le destinataire est Mme choze ($dest="choze") ET contenant le terme "Choucroute"... ($mot = choucroute et objet like '%$mot%' OR destinataire like '%$mot%' OR expediteur like '%$mot%'OR type like '%$mot%
comme dit précédemment, le script fonctionne si je vire un des critère (expéditeur, destinataire,...)
je ne pense pas que le OR soit la bonne solution.
je veux que ce script de recherche multicritère me permettent de retrouver dans la bdd, par exemple les courriers classé dans la catégorie "envoyés" ($sens=départ) ET enregistrés après le 01/05/205 ET Avant le 30/05/05 ET dont l'expéditeur est Mr Untel ($exped="Untel") ET le destinataire est Mme choze ($dest="choze") ET contenant le terme "Choucroute"... ($mot = choucroute et objet like '%$mot%' OR destinataire like '%$mot%' OR expediteur like '%$mot%'OR type like '%$mot%
comme dit précédemment, le script fonctionne si je vire un des critère (expéditeur, destinataire,...)
- 2fou
- WRInaute discret

- Messages: 223
- Inscription: 7 Juil 2003
ok merci bcp,
ça à l'air de fonctionner...
pour mes listes expéditeurs et destinataire , dans le select avant les <option> dynamique correspondantes au contenu de la table, j'ai ajouté un <option value="tous">Tous</option>
et ma requete devient :
$sql = "select * from courrier where sens = '$sens'";
$sql .= " and datecourrier > '$annee-$mois-$jour' and datecourrier < '$annee2-$mois2-$jour2'";
if ($expedi != 'tous')
{
$sql .= " and expediteur = '$expedi' ";
}
if ($dest != 'tous')
{
$sql .= " and destinataire = '$dest' ";
}
if ($mot != '')
{
$sql .= " and (objet like '%$mot%' OR destinataire like '%$mot%' OR expediteur like '%$mot%'OR type like '%$mot%')";
}
ça à l'air de fonctionner...
pour mes listes expéditeurs et destinataire , dans le select avant les <option> dynamique correspondantes au contenu de la table, j'ai ajouté un <option value="tous">Tous</option>
et ma requete devient :
$sql = "select * from courrier where sens = '$sens'";
$sql .= " and datecourrier > '$annee-$mois-$jour' and datecourrier < '$annee2-$mois2-$jour2'";
if ($expedi != 'tous')
{
$sql .= " and expediteur = '$expedi' ";
}
if ($dest != 'tous')
{
$sql .= " and destinataire = '$dest' ";
}
if ($mot != '')
{
$sql .= " and (objet like '%$mot%' OR destinataire like '%$mot%' OR expediteur like '%$mot%'OR type like '%$mot%')";
}
8 messages
• Page 1 sur 1
Formation recommandée sur ce thème :
Formation Google Analytics : en 2 jours, apprenez comment exploiter l'essentiel des possibilités de l'outil de mesure d'audience de Google. Formation animée par les experts Google Analytics de Ranking Metrics.
Tous les détails sur le site Ranking Metrics : programme, prix, dates et lieux, inscription en ligne.
Lectures recommandées sur ce thème :
- Optimisation requetes MySQL
- Mysql optimisation index/requêtes.
- Requêtes MySQL programmées à XXhXX
- Proble Base Mysql et requetes
- Appréciation du bon nombre de requetes mysql ...
- [PHP] : compter le nombre de requêtes MySQL
- [PHP/MySQL] Optimisation multiples requêtes
- Lenteur connection et requetes mysql sous XP
- Vitesse requetes jointure mysql, et Indexes
- [PHP MYSQL] Synchronisation des requêtes
- Gestion des langues et des sessions en PHP / MySQL - 02-05-2004
- Nombre moyen de mots par requête : statistiques AOL Août 2006 - 10-08-2006
- Passage à l'heure d'été/hiver sur un forum phpBB - 31-10-2010
- Nuage de tags Wordle pour WebRankInfo - 29-04-2009
- Script de mise en cache des pages (PHP MySQL) - 09-08-2010
- GoogleStats : analyse temps réel des visites de Google sur votre site - 02-10-2002
- Sortie officielle de GoogleStats v2.0 ! - 23-02-2003
- AdSense Tracking : statistiques détaillées sur les clics AdSense - 29-02-2004
Consultez la description détaillée des produits ou services de Google suivants : Google Trends Recherche Personnalisée
Qui est en ligne
Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités

