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

MySQL Discussion :

Requete dans une table pour en classer une autre


Sujet :

MySQL

  1. #1
    Membre habitué Avatar de spawns
    Homme Profil pro
    Inscrit en
    Juillet 2004
    Messages
    558
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Juillet 2004
    Messages : 558
    Points : 193
    Points
    193
    Par défaut Requete dans une table pour en classer une autre
    Slt à tous,
    j'essaie de faire un truc mais je patauge un peu
    je vous explique :

    j'ai une table N°1
    ID │ ORDRE │ NOM
    1 3 Alimentation
    2 1 Deco
    3 2 Meuble

    Puis la table N°2
    ID │ ORDRE │ CAT │ NOM
    1 2 Alimentation Fruit
    2 3 Deco Cuisine
    3 1 Meuble Salon


    voici le code que j'ai essaye mais cela ne fonctionne pas :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    $req4 = mysql_query("SELECT * FROM tableN°1") or die("Erreur SQL4 !"); 
    while($data4 = mysql_fetch_array($req4)) {
    $ordre4=$data4['ordre'];
    }
     
    $req1 = mysql_query("SELECT cat, COUNT(*) AS nbre0 FROM produit GROUP BY cat ORDER BY $ordre4") or die("Erreur SQL1 !"); 
    $nb1=mysql_num_rows($req1); 
    if ($nb1=="0")	{	
    			}
    	else{	 
    	while($data1 = mysql_fetch_array($req1)) {
    $bob=$data1[nom];
    echo ''.$bob.' ('.$data1['nbre0'].')<br />';
    }
    }
    Au final c'est une histoire de categories et sous categories.

    Je voudrais donc pouvoir classer la table N°2 à l'affichage, dans l'ordre saisi dans le champ "ordre" de la table N°1

    Merci d'avance de votre aide.

  2. #2
    Rédacteur/Modérateur

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

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

    Informations forums :
    Inscription : Octobre 2006
    Messages : 6 284
    Points : 11 738
    Points
    11 738
    Par défaut
    Citation Envoyé par spawns Voir le message
    Je voudrais donc pouvoir classer la table N°2 à l'affichage, dans l'ordre saisi dans le champ "ordre" de la table N°1
    Comme ça ?

    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    select t2.*
    from table1 t1
      inner join table2 t2 on t1.ID = t2.ID
    order by t1.ordre

    Mais je ne comprends pas trop l'intérêt de la redondance dans ton modèle de données...

  3. #3
    Membre habitué Avatar de spawns
    Homme Profil pro
    Inscrit en
    Juillet 2004
    Messages
    558
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Juillet 2004
    Messages : 558
    Points : 193
    Points
    193
    Par défaut
    Slt
    j'ai essayé en adaptant le code avec mes tables

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    $req12 = mysql_query("SELECT souscat.* 
    FROM cat t1   
    INNER JOIN souscat t2 ON t1.id = t2.id 
    ORDER BY t1.ordre")or die("Erreur SQL12 !"); 
    while($data12 = mysql_fetch_array($req12)) {
    $moi=$data12['cat'];
    echo ''.$moi.'<br />';
    }
    mais cela m'affiche une erreur SQL

  4. #4
    Rédacteur/Modérateur

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

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

    Informations forums :
    Inscription : Octobre 2006
    Messages : 6 284
    Points : 11 738
    Points
    11 738
    Par défaut
    l'alias masque la table, donc il faut que tu utilises SELECT t2.* au lieu de SELECT souscat.*.

    Par ailleurs, plutôt que de faire OR die("Erreur SQL12 !"), tu devrais faire OR die(mysql_error()), ça te permettrait d'avoir le message d'erreur SQL.

  5. #5
    Membre habitué Avatar de spawns
    Homme Profil pro
    Inscrit en
    Juillet 2004
    Messages
    558
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Juillet 2004
    Messages : 558
    Points : 193
    Points
    193
    Par défaut
    Merci c'est nikel
    @+

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

Discussions similaires

  1. Réponses: 9
    Dernier message: 12/04/2012, 17h03
  2. Réponses: 6
    Dernier message: 15/06/2010, 03h18
  3. [MySQL] Requete dans plusieurs tables a partir d'une variable
    Par thefxage dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 05/04/2009, 18h28
  4. [MySQL] lire une table pour en créer une autre de structure différente
    Par przvl dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 13/03/2009, 16h58
  5. [A-03] Se servir d'une table pour en remplir une autre
    Par keeepcoool dans le forum Modélisation
    Réponses: 9
    Dernier message: 26/12/2008, 12h44

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