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

Requêtes MySQL Discussion :

Tri qui me semble impossible


Sujet :

Requêtes MySQL

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Septembre 2016
    Messages
    35
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Santé

    Informations forums :
    Inscription : Septembre 2016
    Messages : 35
    Points : 28
    Points
    28
    Par défaut Tri qui me semble impossible
    Bonjour,

    Je cherche depuis un moment comment réussir ce tri à partir de ma base MySQL, c'est un peu tordu donc je vais essayer d'être clair :

    D'abord le contexte : c'est une extraction pour mon site http://aleph2at.free.fr (site non commercial) pour afficher les articles principaux d'éléments qui cite l'article en cours.
    Un élément peut avoir plusieurs articles mais il a forcément un article principal.
    Un élément peut être différente chose (donc différente table) une écriture, un homme, une machine d'imprimerie, un mot du glossaire....

    J'ai donc :
    - une table article
    - une table article-element avec le lien de parenté (article dans élément - ce cas veut dire que l'article est un des articles de l'élément - ou élément dans l'article - ce dernier cas veut dire que l'élément à un article qui cite l'article en question)
    - et différentes table (écritures, hommes, machines, glossaire....)

    et je fais donc la requête suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    SELECT articles_elements.Articles_Id 
    					FROM articles_elements, articles, articles_elements as articles_elements_01
    					wHERE (articles_elements.Elements_Id = ".$Article->Element->Id." AND articles_elements.Tables_Id = ".$Article->Element->Table->Id." 
    					AND articles_elements.Sens = 'ElDsArt') 
    					AND (articles_elements_01.Articles_Id = articles_elements.Articles_Id AND articles_elements_01.Sens = 'ArtDsEl')
    					AND articles.Id = articles_elements.Articles_Id
    					GROUP BY articles_elements.Articles_Id 
    					ORDER BY articles_elements_01.Tables_Id ASC
    Mais ce qui manque c'est de pouvoir trier sur le titre de l'élément. Mais ce titre est dans différentes tables.
    Pour voir un cas concret, regardez la page http://aleph2at.free.fr/index.php?art=779 en bas de page dans la zone : "Cet élément est cité dans les articles suivants"


    Si quelqu'un a une idée ???

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Il faudrait que tu fasses une UNION de tes différentes tables d'éléments.

    Par contre j'ai peur que ta structure soit déjà une pagaille.
    Je vois dans ta requête que tu fais des pseudo-jointure (déjà tu devrais faire de vraies jointures avec JOIN) d'une table vers l'autre puis de retour vers la table de départ.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Septembre 2016
    Messages
    35
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Santé

    Informations forums :
    Inscription : Septembre 2016
    Messages : 35
    Points : 28
    Points
    28
    Par défaut
    Le véritable problème est que Element peut être un enregistrement de différentes tables
    Citation Envoyé par sabotage Voir le message
    Il faudrait que tu fasses une UNION de tes différentes tables d'éléments.

    Par contre j'ai peur que ta structure soit déjà une pagaille.
    Je vois dans ta requête que tu fais des pseudo-jointure (déjà tu devrais faire de vraies jointures avec JOIN) d'une table vers l'autre puis de retour vers la table de départ.

  4. #4
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    En quoi cela empêche de faire une UNION justement ?
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  5. #5
    Nouveau membre du Club
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Septembre 2016
    Messages
    35
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Santé

    Informations forums :
    Inscription : Septembre 2016
    Messages : 35
    Points : 28
    Points
    28
    Par défaut
    Merci de me répondre.

    Le problème est que sur chaque enregistrement la table élément est différente
    Citation Envoyé par sabotage Voir le message
    En quoi cela empêche de faire une UNION justement ?

  6. #6
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Justement il faut faire une UNION entre ces tables pour recolter les valeurs dispersées.
    Tu as essayé avant de dire que ce n'était pas possible ou que ça ne fonctionnait pas ?
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  7. #7
    Nouveau membre du Club
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Septembre 2016
    Messages
    35
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Santé

    Informations forums :
    Inscription : Septembre 2016
    Messages : 35
    Points : 28
    Points
    28
    Par défaut
    Je pense que je n'ai pas assez décrit la situation pour permettre une bonne compréhension. Mais je tiens compte de tes bons conseils et je vais essayer à nouveau.
    Merci
    Citation Envoyé par sabotage Voir le message
    Justement il faut faire une UNION entre ces tables pour recolter les valeurs dispersées.
    Tu as essayé avant de dire que ce n'était pas possible ou que ça ne fonctionnait pas ?

  8. #8
    Expert éminent sénior Avatar de Artemus24
    Homme Profil pro
    Agent secret au service du président Ulysses S. Grant !
    Inscrit en
    Février 2011
    Messages
    6 378
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Agent secret au service du président Ulysses S. Grant !
    Secteur : Finance

    Informations forums :
    Inscription : Février 2011
    Messages : 6 378
    Points : 19 055
    Points
    19 055
    Par défaut
    Salut berthomhc.

    Au lieu d'un long commentaire où vous seriez le seul à comprendre, le mieux est de nous donner :

    --> un jeu d'essai pour chaque table
    --> le descriptif de toutes vos tables entrant dans votre requête.
    --> le résultat final que vous attendez.

    Merci.
    @+
    Si vous êtes de mon aide, vous pouvez cliquer sur .
    Mon site : http://www.jcz.fr

Discussions similaires

  1. Projet qui me semble impossible. Besoin d'avis !
    Par kershin dans le forum Général Conception Web
    Réponses: 7
    Dernier message: 14/04/2010, 14h37
  2. Réponses: 13
    Dernier message: 27/02/2007, 23h00
  3. [PDO] et bindValue qui ne semble pas fonctionner
    Par Tommyl dans le forum Bibliothèques et frameworks
    Réponses: 1
    Dernier message: 31/10/2006, 16h12
  4. [MySQL] ORDER BY qui ne semble pas pris en compte
    Par yongblood dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 09/03/2006, 12h53
  5. Un tri qui me plait pas...
    Par szdavid dans le forum Langage SQL
    Réponses: 5
    Dernier message: 24/05/2004, 11h07

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