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 :

Tri ne fonctionne pas


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de paradeofphp
    Inscrit en
    Décembre 2005
    Messages
    313
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 313
    Par défaut Tri ne fonctionne pas
    Bonjour tout le monde,

    J'ai la requête suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    $select = 'SELECT  devis_habitation.timestamp "Date de génération devis",devis_habitation.timestampAgent "Date de prise en charge de l\'agent",devis_habitation.statut_devis Statut, devis_habitation.timefinish "Date de conclusion",client_particulier.nom Nom, client_particulier.prenom Prénom,devis_habitation.conclusion Conclusion,devis_habitation.comments Commentaire, agents.cabinet Cabinet,agents.titulaire Titulaire, agents.ville "Ville agent",devis_habitation.id_devis_habitation, devis_habitation.ville, devis_habitation.type, devis_habitation.statut_souscripteur,devis_habitation.prix, devis_habitation.adresse_expeditaiton, devis_habitation.ville_expedition, devis_habitation.email, devis_habitation.code, devis_habitation.id_habitation, devis_habitation.type_forfait, devis_habitation.assurance_debut, devis_habitation.adresse_habitation, devis_habitation.valeur_batiment, devis_habitation.valeur_contenu, devis_habitation.detail, devis_habitation.choix, devis_habitation.visible, devis_habitation.timestamp_real,agents.code,  agents.adresse, agents.quartier, agents.tel, agents.fax, agents.email, agents.pass, agents.tel_2, agents.gsm,client_particulier.cin,client_particulier.date_naissance, client_particulier.email, client_particulier.id client_particulier,client.email, client.adresse, client.tel_professionel, client.gsm, client.mot_de_passe, client.situation_familiale, client.nombre_enfants, client.sexe, client.profession, client.client_cnia, client.client_cnia_forfait, client.ville, client.date_creation 
    FROM `devis_habitation` , `agents` , `client_particulier`, `client`
    WHERE devis_habitation.code <>0 AND devis_habitation.code = agents.code AND visible =0 AND devis_habitation.email = client_particulier.email AND client.email = client_particulier.email
    UNION SELECT *
    FROM `devis_habitation` , `agents` , `client_entreprise`, `client`
    WHERE devis_habitation.code <>0 AND devis_habitation.code = agents.code AND visible =0 AND devis_habitation.email = client_entreprise.email AND client.email = client_entreprise.email
    ORDER BY timestamp_real DESC';
    la requête est ordonnée par le champs timestamp_real qui est de type datetime. Le problème est que le résultat n'est pas bien trié. Un collègue m'a dit que les champs de type datetime posent problème dans les tri.
    Avez*vous une idée de ce problème ? merci

  2. #2
    Rédacteur/Modérateur

    Avatar de Antoun
    Homme Profil pro
    Architecte décisionnel
    Inscrit en
    Octobre 2006
    Messages
    6 288
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Architecte décisionnel
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2006
    Messages : 6 288
    Par défaut
    Citation Envoyé par paradeofphp
    Le problème est que le résultat n'est pas bien trié.
    Peux-tu nous donner un exemple de données mal triées que tu obtiens ?

  3. #3
    Membre confirmé
    Inscrit en
    Janvier 2008
    Messages
    31
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 31
    Par défaut
    Une supposition : ton order by ne s'applique peut-être qu'au second SELECT de ton UNION.

    Essaye avec :

    SELECT *
    FROM
    (
    [Ta requête sans la clause ORDER]
    )
    ORDER BY timestamp_real DESC

    PS: je suis pas sur du résultat

  4. #4
    Membre éclairé Avatar de paradeofphp
    Inscrit en
    Décembre 2005
    Messages
    313
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 313
    Par défaut
    Bonjour pour ta réponse, tu veux dire que je fasse de cette façon :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    $select = 'SELECT  devis_habitation.timestamp "Date de génération devis",devis_habitation.timestampAgent "Date de prise en charge de l\'agent",devis_habitation.statut_devis Statut, devis_habitation.timefinish "Date de conclusion",client_particulier.nom Nom, client_particulier.prenom Prénom,devis_habitation.conclusion Conclusion,devis_habitation.comments Commentaire, agents.cabinet Cabinet,agents.titulaire Titulaire, agents.ville "Ville agent",devis_habitation.id_devis_habitation, devis_habitation.ville, devis_habitation.type, devis_habitation.statut_souscripteur,devis_habitation.prix, devis_habitation.adresse_expeditaiton, devis_habitation.ville_expedition, devis_habitation.email, devis_habitation.code, devis_habitation.id_habitation, devis_habitation.type_forfait, devis_habitation.assurance_debut, devis_habitation.adresse_habitation, devis_habitation.valeur_batiment, devis_habitation.valeur_contenu, devis_habitation.detail, devis_habitation.choix, devis_habitation.visible, devis_habitation.timestamp_real,agents.code,  agents.adresse, agents.quartier, agents.tel, agents.fax, agents.email, agents.pass, agents.tel_2, agents.gsm,client_particulier.cin,client_particulier.date_naissance, client_particulier.email, client_particulier.id client_particulier,client.email, client.adresse, client.tel_professionel, client.gsm, client.mot_de_passe, client.situation_familiale, client.nombre_enfants, client.sexe, client.profession, client.client_cnia, client.client_cnia_forfait, client.ville, client.date_creation 
    FROM `devis_habitation` , `agents` , `client_particulier`, `client`
    WHERE devis_habitation.code <>0 AND devis_habitation.code = agents.code AND visible =0 AND devis_habitation.email = client_particulier.email AND client.email = client_particulier.email ORDER BY timestamp_real DESC';
    UNION SELECT *
    FROM `devis_habitation` , `agents` , `client_entreprise`, `client`
    WHERE devis_habitation.code <>0 AND devis_habitation.code = agents.code AND visible =0 AND devis_habitation.email = client_entreprise.email AND client.email = client_entreprise.email
    ORDER BY timestamp_real DESC';
    j'ai rajouté
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ORDER BY timestamp_real DESC';
    même dans le premier select.

    ça marche pas . Je l'ai testé directement sous Mysql, j'ai eu l'erreur suivante :
    #1221 - Incorrect usage of UNION and ORDER BY

  5. #5
    Membre confirmé
    Inscrit en
    Janvier 2008
    Messages
    31
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 31
    Par défaut
    non en fait je parlais d'essayer avec ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    $select = '
    SELECt *
    FROM (
    SELECT  devis_habitation.timestamp "Date de génération devis",devis_habitation.timestampAgent "Date de prise en charge de l\'agent",devis_habitation.statut_devis Statut, devis_habitation.timefinish "Date de conclusion",client_particulier.nom Nom, client_particulier.prenom Prénom,devis_habitation.conclusion Conclusion,devis_habitation.comments Commentaire, agents.cabinet Cabinet,agents.titulaire Titulaire, agents.ville "Ville agent",devis_habitation.id_devis_habitation, devis_habitation.ville, devis_habitation.type, devis_habitation.statut_souscripteur,devis_habitation.prix, devis_habitation.adresse_expeditaiton, devis_habitation.ville_expedition, devis_habitation.email, devis_habitation.code, devis_habitation.id_habitation, devis_habitation.type_forfait, devis_habitation.assurance_debut, devis_habitation.adresse_habitation, devis_habitation.valeur_batiment, devis_habitation.valeur_contenu, devis_habitation.detail, devis_habitation.choix, devis_habitation.visible, devis_habitation.timestamp_real,agents.code,  agents.adresse, agents.quartier, agents.tel, agents.fax, agents.email, agents.pass, agents.tel_2, agents.gsm,client_particulier.cin,client_particulier.date_naissance, client_particulier.email, client_particulier.id client_particulier,client.email, client.adresse, client.tel_professionel, client.gsm, client.mot_de_passe, client.situation_familiale, client.nombre_enfants, client.sexe, client.profession, client.client_cnia, client.client_cnia_forfait, client.ville, client.date_creation 
    FROM `devis_habitation` , `agents` , `client_particulier`, `client`
    WHERE devis_habitation.code <>0 AND devis_habitation.code = agents.code AND visible =0 AND devis_habitation.email = client_particulier.email AND client.email = client_particulier.email
    UNION 
    SELECT *
    FROM `devis_habitation` , `agents` , `client_entreprise`, `client`
    WHERE devis_habitation.code <>0 AND devis_habitation.code = agents.code AND visible =0 AND devis_habitation.email = client_entreprise.email AND client.email = client_entreprise.email
    )
    ORDER BY timestamp_real DESC

  6. #6
    Membre éclairé Avatar de paradeofphp
    Inscrit en
    Décembre 2005
    Messages
    313
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 313
    Par défaut
    Merci, mais j'ai eu cette erreur :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    #1248 - Every derived table must have its own alias

Discussions similaires

  1. [AC-2003] Le filtre de tri dans un formulaire ne fonctionne pas
    Par Pierre-alain dans le forum IHM
    Réponses: 4
    Dernier message: 18/04/2011, 09h48
  2. [AC-2003] mon formulaire de tri ne fonctionne pas
    Par revemane dans le forum IHM
    Réponses: 2
    Dernier message: 03/03/2011, 19h47
  3. Le tri d'un tableau ne fonctionne pas
    Par neerou dans le forum GWT et Vaadin
    Réponses: 0
    Dernier message: 23/11/2009, 12h55
  4. Mon tri de date ne fonctionne pas bien :(
    Par rohstev dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 18/07/2007, 10h58
  5. [VBA-Excel] Tri de listview ne fonctionne pas avec des nombres à virgule
    Par marsupilami34 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 12/09/2006, 15h32

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