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 :

[Conception] Tri des tables dans une jointure


Sujet :

PHP & Base de données

  1. #1
    Membre à l'essai
    Inscrit en
    Juillet 2006
    Messages
    17
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations forums :
    Inscription : Juillet 2006
    Messages : 17
    Points : 15
    Points
    15
    Par défaut [Conception] Tri des tables dans une jointure
    Bonjour,

    Je crée un sommaire pour un site qui se présente comme ceci :
    Titre 1
    Sous-titre 1
    Sous-titre 2
    Sous-titre 3

    Titre 2
    Sous-titre 1
    Sous-titre 2
    Sous-titre 3


    Les titres sont rangés dans ma base de donnée dans une table « php_sommaire_titre »
    Poids servant a les ranger dans l’ordre croissant et Id étant un auto incrément.
    De cette façon :

    Id , titre, poids
    1, Titre1, 1
    2, Titre2, 3
    3, Titre3, 2

    Les sous-titres sont rangés de cette façon dans la table « php_sommaire_soustitre »
    Poids servant à les ranger dans l’ordre croissant et Id étant un auto incrément et catégorie correspondant à l’Id de la table titre.

    Id, titre, categorie, poids, lien
    1, Sous-titre1, 1, 1, #
    2, Sous-titre2, 1, 3, #
    3, Sous-titre3, 1, 2, #
    4, Sous-titre1, 2, 1, #
    5, Sous-titre2, 2, 2, #
    6, Sous-titre3, 2, 3, #
    7, Sous-titre1, 3, 3, #
    8, Sous-titre2, 3, 1, #
    9, Sous-titre3, 3, 2, #

    J'ai fait une jointure entre les 2 tables

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    mysql_select_db($database_connexion, $connexion);
    $query_jointure = "SELECT * FROM php_sommaire_titre INNER JOIN php_sommaire_soustitre ON php_sommaire_soustitre.categorie = php_sommaire_titre.id ORDER BY php_sommaire_titre.poid";
    $jointure = mysql_query($query_jointure, $connexion) or die(mysql_error());
    $row_jointure = mysql_fetch_assoc($jointure);
    $totalRows_jointure = mysql_num_rows($jointure);
    J'aimerais qu'il trie la table php_sommaire_titre par la colone poid (ce qu'il fait grace à "ORDER BY php_sommaire_titre.poid"
    Mais qu'il trie aussi php_sommaire_soustitre par la colone poid... Es possible ?

    Dans l’attente de votre réponse,

    Merci,

    Antoine

  2. #2
    Membre expert Avatar de Amara
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    2 688
    Détails du profil
    Informations personnelles :
    Localisation : France, Sarthe (Pays de la Loire)

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 688
    Points : 3 115
    Points
    3 115
    Par défaut
    Ce n'est pas le bon forum car c'est un problème SQL et pas PHP.

    Ceci dit, quand tu fais ta jointure, il faut bien comprendre que c'est comme si tu créais une nouvelle table (ton résultat) et que c'est sur cette table qu'il faut raisonner notamment pour les tris, il ne faut plus raisonner sur tes tables de départ. Donc tu peux faire des tris sur plusieurs colonnes par ordre d'importance, en mettant ORDER BY table1.champ1 ASC, table2.champ2 ASC, le tri se fera d'abord sur champ1 puis en cas d'égalité sur champ2.

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2006
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Février 2006
    Messages : 29
    Points : 17
    Points
    17
    Par défaut
    Salut,
    Citation Envoyé par Tonio_35
    J'aimerais qu'il trie la table php_sommaire_titre par la colone poid (ce qu'il fait grace à "ORDER BY php_sommaire_titre.poid"
    Mais qu'il trie aussi php_sommaire_soustitre par la colone poid... Es possible ?
    Ben :

    ORDER BY php_sommaire_titre.poid, php_sommaire_titre.poid ... nan ?

  4. #4
    Membre expert Avatar de Amara
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    2 688
    Détails du profil
    Informations personnelles :
    Localisation : France, Sarthe (Pays de la Loire)

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 688
    Points : 3 115
    Points
    3 115
    Par défaut
    Citation Envoyé par @lexx
    Salut,

    Ben :

    ORDER BY php_sommaire_titre.poid, php_sommaire_soustitre.poid ... nan ?
    Bah essaie alors ça coûte rien. ca va trier d'abord par titre puis en cas d'égalité par sous-titre (si c'est ce que tu veux...).

  5. #5
    Membre à l'essai
    Inscrit en
    Juillet 2006
    Messages
    17
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations forums :
    Inscription : Juillet 2006
    Messages : 17
    Points : 15
    Points
    15
    Par défaut
    ORDER BY php_sommaire_titre.poid, php_sommaire_soustitre.poid

    Merci les gars ! C'était pas plus compliqué... Ca marche...

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Récupérer l'alias ou le nom des tables dans une jointure
    Par Morgoth777 dans le forum ASP.NET
    Réponses: 3
    Dernier message: 03/07/2008, 10h45
  2. [Conception] Enregistrer des tags dans une table ?
    Par Spylberg dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 20/07/2007, 12h54
  3. Réponses: 2
    Dernier message: 04/05/2007, 15h13
  4. insérer des tables dans une base de données oracle
    Par Spacy_green dans le forum Oracle
    Réponses: 3
    Dernier message: 16/03/2007, 11h23
  5. [Conception] Gestion des accents dans une base de données
    Par MiJack dans le forum PHP & Base de données
    Réponses: 7
    Dernier message: 07/07/2005, 11h41

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