Mysql : plusieurs requetes en une [résolu]
8 messages • Page 1 sur 1
Consultez la formation à Google Analytics de WebRankInfo / Ranking Metrics
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.
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.
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".
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,...)
Hé, c'est ce que je viens de dire lol
Mais c'est vrai qu'avec un bout de code c'est mieux !
Mais faut juste pas mettre le where dans le $sql1 tout de suite parce que si tu ne passes dans aucun if, ta requête ne sera pas valable
Mais c'est vrai qu'avec un bout de code c'est mieux !
Mais faut juste pas mettre le where dans le $sql1 tout de suite parce que si tu ne passes dans aucun if, ta requête ne sera pas valable
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 Julien Coquet, expert certifié officiellement par Google Analytics.
Tous les détails sur le site Ranking Metrics : programme, prix, dates et lieux, inscription en ligne.
Lectures recommandées sur ce thème :
- Gestion des langues et des sessions en PHP / MySQL
- Nombre moyen de mots par requête : statistiques AOL Août 2006
- Ecrire un sitemap pour Google News
- Nuage de tags Wordle pour WebRankInfo
- Passage à l'heure d'été/hiver sur un forum phpBB
- GoogleStats : analyse temps réel des visites de Google sur votre site
- Sortie officielle de GoogleStats v2.0 !
- AdSense Tracking : statistiques détaillées sur les clics AdSense
- Le WRInaute du moment
- Interview Wikio : transcript du chat WebRankInfo
- Optimisation requetes MySQL
- Requêtes MySQL programmées à XXhXX
- Proble Base Mysql et requetes
- [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
- MySQL : optimisation des requêtes sql
- Voir les requetes mysql en temps réel ?
- Mysql - Récupérer des valeures de requetes récursives
- Evaluer temps d'éxécution requêtes MySQL sur un site
- [Résolu] 2 requêtes en une seule je galère
- [Résolu]- Requête MySql
- [résolu] mysql et regexp
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




le forum