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] Aide pour les liaison entre 2 table [Débutant(e)]


Sujet :

PHP & Base de données

  1. #1
    Débutant  
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 096
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 096
    Points : 944
    Points
    944
    Par défaut [Conception] Aide pour les liaison entre 2 table
    Bonjour,
    j'ai besoine de votre présieuce aide.
    Voic ma structure:
    J'ai 2 table, 1 user l'autre category

    Dans ma tabel user
    ==============

    J'ai 3 champs, "id", "user", "id_cat"

    Dans ma table cat
    ================
    J'ai 3 champs, "id, id_cat","categorie"

    J'aimerai faire un while qui:
    -->Affiche la categorie, puis toutes les personne qui appartienne a cette categore
    --> Puis affiche la deuxieme categorie et toutes les personne qui appartienne a cette categorie
    --> et ainsi de suite jusqu'a la derniere categorie.

    Je sais qu'il faut commencer par un while qui va regarder dans la table "cat" puis un deuxieme while, inclu dans le premier qui va regarder dans la table >"user"

    Mais comment faire pour qu'il puisse faire la liaison entre les 2 "id_cat"


    Pourriez vous m'aider avec du code?

    Merci merci beaucoup

  2. #2
    Membre confirmé Avatar de papyphp
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    438
    Détails du profil
    Informations personnelles :
    Âge : 74
    Localisation : Belgique

    Informations professionnelles :
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2005
    Messages : 438
    Points : 587
    Points
    587
    Par défaut
    Bonjour,

    select user, categorie from user, cat where user.id_cat=cat.id_cat
    Mais il y a une chose que je ne comprends pas c'est la façon de créer tes tables.
    A quoi correspond 'id' dans la table cat

    perso j'utiliserais trois tables
    users ('id_user','user')
    categories('id_cat','categorie')
    lien('id_user','id_cat')
    et le select deviendrait
    select user, categorie from users, categories, liens where users.id_user=lien.id_user and categories.id_cat=lien.id_cat order by user
    Dans le cas de figure qui te préoccupes le gain est minime si pas inexistant mais si tu avais plus de champs dans ta table user, le gain augmenterait en conséquence

    [edit] va aussi voir du coté de JOIN

  3. #3
    wkd
    wkd est déconnecté
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    112
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 112
    Points : 65
    Points
    65
    Par défaut
    Sans hesiter:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    SELECT *
    FROM user, cat
    WHERE user.id_cat=cat.id_cat
    normalement, tu devrais faire 2 tables qui ressemble à ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    user(id_user,#id_cat)
    cat(id_cat,catégorie)
    si tu fais:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    user(id,id_user,#id_cat)
    cat(id,id_cat,catégorie)
    cela revient à faire 2 fois la meme chose

  4. #4
    Débutant  
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 096
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 096
    Points : 944
    Points
    944
    Par défaut
    Oui mais ca marce pas.

    qu'il ya t il de faut
    Mes table
    ========
    user (id_category, user)
    user_category(id_category, category_fr, category_en, category_order)

    mon code
    =======
    $select_category = "SELECT * FROM user_category WHERE id_category <> 3 ORDER BY category_order";
    $query_category = mysql_query($select_category) or die('Erreur SQL : <br>'.$select_category.'<br>'.mysql_error());
    while($result_category = mysql_fetch_array($query_category))
    [... code ...]


    $select_user = "SELECT * FROM user, user_category WHERE user.id_category=user_category.id_category ORDER BY user_category.category_order";
    $query_user = mysql_query($select_user) or die('Erreur SQL : <br>'.$select_user.'<br>'.mysql_error());

    while ($result_user = mysql_fetch_array($query_user)){

    echo htmlentities($result_user["position_en"]);

    }


    [... code ...]
    }
    ?>

  5. #5
    Membre confirmé Avatar de papyphp
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    438
    Détails du profil
    Informations personnelles :
    Âge : 74
    Localisation : Belgique

    Informations professionnelles :
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2005
    Messages : 438
    Points : 587
    Points
    587
    Par défaut
    Ce serait plus facile si tu nous disait ce qui ne va pas.
    Comme ça, a pouf :
    echo htmlentities($result_user["position_en"]);
    position_en ne se trouve dans aucune de tes tables

  6. #6
    Débutant  
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 096
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 096
    Points : 944
    Points
    944
    Par défaut
    Oui, il se trouve, mais y en a tellement que je n'ai enumeré celle qu'il rentre en jeu.

    Mon probleme, c'est que dans mon deuxieme while, il affiche tous le utilisateurs, categorie mélangées (j'ai 3 categories). alors qu'il devrait lister , dans la premier boucle tous les utilisateur de la table "user", appartenant a la categorie la categorie 1

    dans la deuxiemen boucle lister tous les utilisateur de la categorie 2

    dans la troiseme boucle lister tous les utilisateur de la categorie 3.

    Puis il a plus de boucle carj e n'ai que 3 categorie listée dans ma table " user_categorie.

    Dans le chanp "id_categorie" de ma table "user_categorie", j'ai les valeur "1"+, "2" et "3" qui corresponde a des categorie

    Dans le champs "id_categorie" de la table "user", 'ai les valeur soit 1 ou 2 ou 3 en fonction de leur affectation.

    Merci pour ton/votre aide

  7. #7
    Débutant  
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 096
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 096
    Points : 944
    Points
    944
    Par défaut
    (le reste fonctionne)

  8. #8
    Membre confirmé Avatar de papyphp
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    438
    Détails du profil
    Informations personnelles :
    Âge : 74
    Localisation : Belgique

    Informations professionnelles :
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2005
    Messages : 438
    Points : 587
    Points
    587
    Par défaut
    Il faut mettre un where dans ta requête

    $select_user = "SELECT * FROM user, user_category WHERE user.id_category=user_category.id_category and user_category.id_category = 1 ORDER BY user_category.category_order";
    Tu récupère ainsi tous les user de la catégorie 1
    Tu fais la même chose avec user_category.id_category = 2 pour ceux de la catégorie 2 et ainsi de suite

    Si j'ai bien compris ta question

  9. #9
    Débutant  
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 096
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 096
    Points : 944
    Points
    944
    Par défaut
    merci beaucoup,

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

Discussions similaires

  1. Réponses: 13
    Dernier message: 09/05/2011, 11h20
  2. [Lazarus] SGBD, tables liées, SQLDB, comment créer les liaisons entre ces tables
    Par thierrybo dans le forum Lazarus
    Réponses: 3
    Dernier message: 23/03/2010, 07h55
  3. Besoin d'aide sur les relations entre mes tables
    Par Jenojen dans le forum Bases de données
    Réponses: 102
    Dernier message: 06/09/2008, 12h27
  4. [1.0.2][Zend_db_table] Gérer les liaisons entre les tables
    Par Baptiste Wicht dans le forum Zend_Db
    Réponses: 8
    Dernier message: 05/10/2007, 09h00
  5. [MySQL] aide pour MyAdmin-relation entre les tables
    Par bucarest dans le forum PHP & Base de données
    Réponses: 9
    Dernier message: 13/04/2006, 13h35

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