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 :

afficher 2 tables [Débutant(e)] [MySQL]


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2003
    Messages
    293
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2003
    Messages : 293
    Par défaut afficher 2 tables
    bonjour

    je vais essayer d'expliquer correctement ce que je veux faire

    j'ai 2 tables : table_tarifs et table_types

    dans table_tarifs il y a comme champ id, produit, type_produit et prix

    dans table_types il y a comme champ id et type_produit

    je voudrais afficher tous les types_produits avec pour chacun d'eux les produits pour chaque type

    ex

    Maquillage
    -rouge à lèvres
    - ...

    soins

    - ....
    - ....

    j'ai essayé cela comme code

    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
    16
    17
    18
    19
    20
    21
    22
    23
     
    <?php
    $host="localhost"; // localhost pour le local
    $user="root";//nom d'utilisateur
    $pass="";//mot de pass
    $base="base";//nom de la bases de données
    $link = mysql_connect ($host,$user,$pass) or die ('Erreur : '.mysql_error() );
    mysql_select_db($base) or die ('Erreur :'.mysql_error());
    $sql="select * FROM table_types";
    $result = mysql_query($sql,$link)  or die ('Erreur : '.mysql_error() );
    while($row = mysql_fetch_array($result)) 
    {
     
    echo $row['type'];?><br /><?php
       $sql2="select * FROM table_tarifs";
       $result2 = mysql_query($sql2,$link)  or die ('Erreur : '.mysql_error() );
       while($row = mysql_fetch_array($result2)) 
       {
       ?>
       <span style="color:#cccccc;"><?php echo $row['produit'];?></span><br /><?php
       }
    }
    ?>
    ce code me donne tous mes types_produit et pour chaque type il me donne tous les produits en ne faisant pas la classification par rapport au type de produit ce qui est normal avec ce code que j'ai fait

    donc je voudrais qu'il affiche tous les types_produits et pour chaque type tous les produits

    je pense qu'il faut changer cette ligne

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $sql2="select * FROM table_tarifs";
    mais comment faire pour qu'il affiche par rapport au type, il faudrait faire qqch comme cela mais je ne sais pas quoi

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $sql2="select * FROM table_tarifs where...";
    bon j'espère être clair

    merci

  2. #2
    Membre Expert
    Inscrit en
    Janvier 2005
    Messages
    2 291
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 291
    Par défaut
    Je dirai qu'il suffit de trier tes résultats selon le type_produit donc en faisant
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $sql2="select * FROM table_tarifs ORDER BY type_produit";
    Par contre je comprends pas l'intéret de ton autre table qui contient deux champs qui existent deja dans la première table.

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2003
    Messages
    293
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2003
    Messages : 293
    Par défaut
    c'est qu'il y a beaucoup de types produit donc c'est pour quand on fait un ajout de produit on a directement une list box avec tous les types de produits

  4. #4
    Membre Expert
    Inscrit en
    Janvier 2005
    Messages
    2 291
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 291
    Par défaut
    Ta première table permet de récupérer tous les types_produits avec quelquechose comment
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT DISTINCT(type_produit) from table_tarifs
    Normalement quand on a une structure comme la tienne, ce qu'on a c'est une table avec la liste des types produits en texte clair, un id entier comme identifiant pour chaque type. Dans l'autre table, on a pour chaque article un type_produit qui est un entier (et qui correspond à l'id de la table des types produits)
    mais dans ton cas, une unique table rend les choses beaucoup plus simples et claires (sauf si bien sur tu as un ensemble de tables derrière qui utilisent ces type_produit)

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2003
    Messages
    293
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2003
    Messages : 293
    Par défaut
    voilà dans ma

    table type_produits j'ai par ex

    id type
    1 maquillage
    2 soins
    3 manucurie
    ...

    table produits

    id produit type produit
    1 rouge à lèvres maquillage
    2 fond teint maquillage
    3 soin visage soins
    ....

    donc ce que je veux c'est que cela m'affiche tous les types de produits avec pour chaque type les produits correspondant

    j'aurais pu mettre dans mon select where type="soins" par ex

    mais si j'ajoute un type je dois à chaque fois faire une nouvelle requête donc je voudrais que ca se fasse automatiquement

    merci

  6. #6
    Membre Expert
    Inscrit en
    Janvier 2005
    Messages
    2 291
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 291
    Par défaut
    Dans ta table de produits tu devrais avoir ca :

    id produit type produit
    1 rouge à lèvres 1
    2 fond teint 1
    3 soin visage 2

    et non pas le nom du type_produit en double dans les tables, sinon cette table ne sert a rien!

    Pour ton probleme, je t'ai donné une solution, essaies de la tester avant de reformuler le meme probleme.

  7. #7
    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
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $sql2="select * FROM table_tarifs where type_produit = " . $row['type_produit'];
    ou un truc qui s'en approche suivant les correspondances de tes champs (et en supposant que type_produit est un champ entier)...

    mais +1 avec koopajah la structure semble bizarre, une explication textuelle des champs ne serait pas de trop

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

Discussions similaires

  1. Afficher des tables en SQL
    Par medinfo dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 04/04/2006, 10h14
  2. Formulaire affichant deux tables liées à une troisième
    Par Mimi-des-îles dans le forum Access
    Réponses: 1
    Dernier message: 23/02/2006, 13h47
  3. [C#] creer et afficher une table en code behind
    Par shams dans le forum ASP.NET
    Réponses: 9
    Dernier message: 13/07/2005, 16h51
  4. afficher les tables d'une BDD
    Par Samanta dans le forum Décisions SGBD
    Réponses: 2
    Dernier message: 04/07/2005, 18h09
  5. [JTable] afficher la table vide au début
    Par orgoz dans le forum Composants
    Réponses: 5
    Dernier message: 06/01/2005, 15h21

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