IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

pb de requête php /mysql


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre très actif
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    295
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 295
    Par défaut pb de requête php /mysql
    bonjour,

    J'ai un pb avec ma requete sql qui fausse le resulat, je me precise, cette requete provient d'un moteur de recherche de vehicule avec des lisbox qui contient marque modele ect..
    si les listbox ne sont pas cochée ca liste tous les resultat.
    la ca marche mais quand le met un clause order by dans la requete
    la requete me retoune toutes les lignes sant tenir compte des listbox qui filtre le resulat
    voici ma requete
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    $tri = $_GET["tri"]; 
    $query_rs="SELECT annonce.idannonce, annonce.km, annonce.modele, marque.marque, membre.statut, annonce.km, annonce.energie, annonce.prix, annonce.am, region.name
    FROM annonce, marque,membre, region
    WHERE marque.idmarque = annonce.idmarque and membre.idmembre=annonce.idmembre and membre.idreg=region.idreg and annonce.visible='oui' order by '$tri' ";
    if($_GET[idmarque]){ $query_rs .= " AND marque.idmarque='$_GET[idmarque]' ";}
    if($_GET[modele]){ $query_rs .= " AND modele='$_GET[modele]' ";}
    if($_GET[energie]){ $query_rs .= " and energie='$_GET[energie]' ";}
    if($_GET[type]){ $query_rs .= " and type='$_GET[type]' ";}
    if($_GET[idreg]){ $query_rs .= " and region.idreg='$_GET[idreg]' ";}
    if($_GET[statut]){ $query_rs .= " and membre.statut ='$_GET[statut]' ";}
    if($_GET[am]){ $query_rs .= " and annonce.am >='$_GET[am]' ";}
    if($_GET[am2]){ $query_rs .= " and annonce.am <='$_GET[am]' ";}
    if($_GET[prix]){ $query_rs .= " and annonce.prix >='$_GET[prix]' ";}
    if($_GET[prix2]){ $query_rs .= " and annonce.prix <='$_GET[prix2]' ";}
    si j'enleve le order by tri ca marche
    mais je voudrais par la suite qu el'on puisse trier le resulat dans des colonnes
    mais la ca fonctionne plus

  2. #2
    Membre expérimenté

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    6 152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 6 152
    Par défaut
    Normal il devient mal placé par rapport aux conditions qui sont rajoutées :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    $query_rs="SELECT annonce.idannonce, annonce.km, annonce.modele, marque.marque, membre.statut, annonce.km, annonce.energie, annonce.prix, annonce.am, region.name
    FROM annonce, marque,membre, region
    WHERE marque.idmarque = annonce.idmarque and membre.idmembre=annonce.idmembre and membre.idreg=region.idreg and annonce.visible='oui'";
    if($_GET[idmarque]){ $query_rs .= " AND marque.idmarque='$_GET[idmarque]' ";}
    if($_GET[modele]){ $query_rs .= " AND modele='$_GET[modele]' ";}
    if($_GET[energie]){ $query_rs .= " and energie='$_GET[energie]' ";}
    if($_GET[type]){ $query_rs .= " and type='$_GET[type]' ";}
    if($_GET[idreg]){ $query_rs .= " and region.idreg='$_GET[idreg]' ";}
    if($_GET[statut]){ $query_rs .= " and membre.statut ='$_GET[statut]' ";}
    if($_GET[am]){ $query_rs .= " and annonce.am >='$_GET[am]' ";}
    if($_GET[am2]){ $query_rs .= " and annonce.am <='$_GET[am]' ";}
    if($_GET[prix]){ $query_rs .= " and annonce.prix >='$_GET[prix]' ";}
    if($_GET[prix2]){ $query_rs .= " and annonce.prix <='$_GET[prix2]' ";}
    $query_rs .= " order by $tri";
    Il vous suffit de l'ajouter en toute fin. Même chose pour le LIMIT que vous vouliez ajouter pour faire la pagination ...

  3. #3
    Membre très actif
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    295
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 295
    Par défaut merci
    je n'arrive pas à faire passez le $query_rs dans le trie de mes colonne

    sur ma colonne prix j'ai un lien du style <a href="recherchebis.php?tri=prix"

    quand je clique dessus il trie toute la base de donnée sur le prix et non pas simplement le resulat de la requete
    comme faire pour faire passer le resulat de ma requete dans le tableau

  4. #4
    Membre expérimenté

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    6 152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 6 152
    Par défaut
    Citation Envoyé par digger
    quand je clique dessus il trie toute la base de donnée sur le prix et non pas simplement le resulat de la requete
    comme faire pour faire passer le resulat de ma requete dans le tableau
    La clause ORDER BY trie le résultat de la requête sur un ou plusieurs des champs de chaque enregistrement retourné et sur lesquels on peut éventuellement préciser l'ordre de tri (ASC vs DESC, ASC par défaut si je ne m'abuse). Avez-vous testé votre requête avec phpMyAdmin par exemple ? A quel tableau faites-vous allusion ?

    Citation Envoyé par digger
    je n'arrive pas à faire passez le $query_rs dans le trie de mes colonne
    C'est à dire ?

  5. #5
    Membre très actif
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    295
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 295
    Par défaut re
    ma requete marche bien mais si je fais un order by à la fin de la requete c'est pour trier le resulat de cet requete (par prix,marque ect)
    sur le resulat de ma page ou il y a ma requete j'ai un tri par colonne sur le prix par exemple http://www.bestoccaz.com/recherchebi...=3000&am=&am2= ou il y a un tri sur le prix comme vous pouvez le constater mais quan don clique dessus, le tri ne sefait plus sur le resultat de la requete mais sur toute la base
    ma question est donc la suivante
    comment passez le parametre $query_rs dans le lien
    <h ref="recherchebisphp?tri=prix">Prix</a>

  6. #6
    Membre Expert
    Inscrit en
    Janvier 2005
    Messages
    2 291
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 291
    Par défaut
    Bonjour!

    Je ne suis pas sur non plus d'avoir bien compris ton probleme. Mais j'ai l'impression que tu cherches à faire le tri en deux étapes. D'abord récupérer les résultats à ta requete (filtrée par les listbox) et ensuite que tu veux trier ce résultat en fonction de la colonne choisie.
    Dans ce cas, il faut que quand tu cliques sur une colonne pour trier tu relances la requete entière et pas seulement que tu cherches à faire un order by sur la requete précédente.
    L'autre solution serait de trier tes résultats en php et non plus par mysql.

Discussions similaires

  1. [MySQL] Question sur les Variables dans une requête php-Mysql
    Par rvtoulon dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 23/02/2012, 12h06
  2. Problème pour construire une requête PHP/MySql
    Par Lionel_aw dans le forum Langage
    Réponses: 11
    Dernier message: 22/02/2012, 11h51
  3. [PHP 4] problème requête php mysql
    Par webduweb dans le forum Langage
    Réponses: 6
    Dernier message: 16/02/2012, 11h27
  4. comment créer un array js à partir d'une requête PHP Mysql
    Par tavarlindar dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 17/08/2008, 23h29
  5. [AJAX] InlineMod - Ajax - Requêtes PHP-MySQL
    Par funkyy dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 09/04/2008, 17h17

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo