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 données Mysql avec PHP


Sujet :

PHP & Base de données

  1. #1
    Futur Membre du Club
    Inscrit en
    Janvier 2007
    Messages
    23
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 23
    Points : 7
    Points
    7
    Par défaut Afficher données Mysql avec PHP
    Bonjour,

    J'ai créer une base de donnée MySQL de citations et de proverbes pour mon site, mais je ne sais pas comment prendre les citation de ma base pour les afficher sur mon site en php.

    Ma BDD comporte 5 tables:
    -Auteur:
    => avec 2 champs, "id" et nom"
    -citations:
    => avec 4 champs, "id", "id_auteur", "id_cat_cit" et "citation"
    -cat_citation
    => avec 2 champs, "id" et "cat_cit"
    -proverbes:
    => avec 3 champs, "id", "id_cat_prov" et "proverbe"
    -cat_proverbe:
    => avec 2 champs, "id", "cat_prov"

    Je voudrais donc afficher les citations et les proverbes avec le nom de leur auteurs.

    Je crois que ça démarre avec ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <?php
    mysql_connect('srv', 'login', 'password');  
    mysql_select_db('name_bdd');                    
     
    mysql_close($db);  
    ?>
    Mais il manque le principal.

    Merci de m'aider.
    Cordialement

  2. #2
    Membre expérimenté

    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    1 138
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Octobre 2002
    Messages : 1 138
    Points : 1 504
    Points
    1 504
    Par défaut
    Pour afficher toutes les citations, tu peux faire la requete suivante (au passage, il doit te manque le nom de la catégorie citation dans la table cat_citation).

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    $requete="select citations.id,citations.citation, auteur.nom from cat_citation,citations,auteur where citations.id_auteur=auteur.id and citations.id_cat_cit=cat_citation.cat_cit";
    $ressource=mysql_query($requete);
    if($ressource){
       while($liste_citations=mysql_fetch_assoc($exe)){
            echo $liste_citations[citation].' par '.$liste_citations[nom];
       }
    }

  3. #3
    Membre expérimenté

    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    1 138
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Octobre 2002
    Messages : 1 138
    Points : 1 504
    Points
    1 504
    Par défaut
    Au passage, je te laisse une petite explication sur la requete.
    On demande en fait de sélectionner (SELECT) le nom de l'auteur et la citation parmi (FROM) les tables citations, cat_citation et auteur pour lesquelles (WHERE) l'id_auteur de la table citation correspond à l'auteur de la table auteur et l'id_cat_cit de la table citation correspond à la catégorie id_cat de la table cat_citation.

    Je te conseille toutefois de jeter un oeil à des tutoriels que les bases de données relationnelles et sur le language MYSQL car tu risques d'en avoir besoin.

  4. #4
    Futur Membre du Club
    Inscrit en
    Janvier 2007
    Messages
    23
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 23
    Points : 7
    Points
    7
    Par défaut
    Ça donnerait donc ça?
    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
     
    <?php
    mysql_connect('srv', 'login', 'password');  
    mysql_select_db('name_bdd');                    
     
    $requete="select citations.id,citations.citation, auteur.nom from cat_citation,citations,auteur where citations.id_auteur=auteur.id and citations.id_cat_cit=cat_citation.cat_cit";
    $ressource=mysql_query($requete);
    if($ressource)
     {
       while($liste_citations=mysql_fetch_assoc($exe))
           {
           echo $liste_citations[citation].' par '.$liste_citations[nom];
            }
     }
     
    mysql_close($db);  
    ?>

  5. #5
    Membre actif
    Inscrit en
    Juillet 2007
    Messages
    201
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 201
    Points : 241
    Points
    241
    Par défaut
    D'ou vient cette variable? $exe?

    ne serait ce pas plustot $ressource?

  6. #6
    Futur Membre du Club
    Inscrit en
    Janvier 2007
    Messages
    23
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 23
    Points : 7
    Points
    7
    Par défaut
    Arf je suis perdu...

    Que dois-je changer dans ce code?
    (j'ai mis en gras ce que je pense devoir changer par leurs valeurs)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    $requete="select citations.id,citations.citation, auteur.nom from cat_citation,citations,auteur where citations.id_auteur=auteur.id and citations.id_cat_cit=cat_citation.cat_cit";
    $ressource=mysql_query($requete);
    if($ressource)
     {
       while($liste_citations=mysql_fetch_assoc($ressource))
           {
           echo $liste_citations[citation].' par '.$liste_citations[nom];
            }
     }
    J'ai télécharger le cour Mysql de CyberZoïde et je suis en train de le lire mais y'a trop d'infos d'un coup alors si vous pouviez m'aider en attendant ^^

    Merci de votre aide.

  7. #7
    Futur Membre du Club
    Inscrit en
    Janvier 2007
    Messages
    23
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 23
    Points : 7
    Points
    7
    Par défaut
    Le script entier donnerais ça?!
    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
    <?php
    mysql_connect('srv', 'login', 'passwd');  
    mysql_select_db('bdd_name');                    
     
    $requete="select citations.id,citations.citation, auteur.nom 
              from cat_citation,citations,auteur 
              where citations.id_auteur=auteur.id and citations.id_cat_cit=cat_citation.cat_cit";
    $ressource=mysql_query($requete);
    if($ressource){
       while($liste_citations=mysql_fetch_assoc($ressource)){
            echo $liste_citations[citation].' par '.$liste_citations[nom];
       }
    }
     
    mysql_close();  
    ?>
    Mais ça n'affiche rien!

  8. #8
    Membre actif
    Inscrit en
    Juillet 2007
    Messages
    201
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 201
    Points : 241
    Points
    241
    Par défaut
    C'est normal que cela n'affiche rien.Ta requete n'est pas bonne à mon avis...

    Ton 'where' aparemment n'est pas super.. .tu n'as pas selectionné (SELECT) citations.id_auteur mais tu essaies de l'utiliser dans ton where mysql ne la pas selectionner du coup ne peux pas faire de where et rencoit du vide....

    soit tu rajoutes dans ton select les champs que tu utilises dans ton where soit tu fais ceci mais moins optimisé est celle-ci:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    $requete="select * from table1,table2 
              where table1.clolonne1=table2.colonne2 and...blablaaa..........";

  9. #9
    Futur Membre du Club
    Inscrit en
    Janvier 2007
    Messages
    23
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 23
    Points : 7
    Points
    7
    Par défaut
    Voilà ce que j'ai fait!
    Mais sans resultat...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    <?php
    mysql_connect('srv', 'login', 'passwd');  
    mysql_select_db('bdd_name');                    
     
    $requete="SELECT * FROM cat_citation,citations,auteur WHERE citations.id_auteur=auteur.id and citations.id_cat_cit=cat_citation.cat_cit";
    $ressource=mysql_query($requete);
    if($ressource){
       while($liste_citations=mysql_fetch_assoc($ressource)){
            echo $liste_citations[citation].' par '.$liste_citations[nom];
       }
    }
     
    mysql_close();  
    ?>

  10. #10
    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
    En testant la requête dans phpmyadmln par exemple tu as bien des résultats au moins ?

    Sinon pour voir les éventuels messages d'erreur SQL il faut rajouter or die mysql_error :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $ressource=mysql_query($requete) or die(mysql_error());
    Et pour les tableaux associatifs il faut entourer les noms de colonnes par des quotes ça peut être source de problèmes.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo $liste_citations['citation'] . ' par ' . $liste_citations['nom'];
    Pas de questions techniques par MP, le forum est là pour ça et est plus efficace.

    Orthographe : une connexion (avec un x), un langage (sans u), une requête (un seul t), 'une quote' (avec qu), une syntaxe (sans h)

  11. #11
    Membre averti Avatar de Linio
    Inscrit en
    Octobre 2005
    Messages
    431
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 431
    Points : 332
    Points
    332
    Par défaut
    Au passage des jointures sur les clés liées, ce serait peut être un peu plus clair non?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT * FROM cat_citation
    JOIN citations ON citations.id_cat_cit=cat_citation.cat_cit
    JOIN auteur ON citations.id_auteur=auteur.id;
    Linio

  12. #12
    Membre actif
    Inscrit en
    Juillet 2007
    Messages
    201
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 201
    Points : 241
    Points
    241
    Par défaut
    Est ce que tes identifiants entre chez toi en local et sur ton hébergeur sont bon?et le nom de ta base de donnée?
    Ton serveur est bien:srv?
    ton login:login?
    ton password:password?

  13. #13
    Futur Membre du Club
    Inscrit en
    Janvier 2007
    Messages
    23
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 23
    Points : 7
    Points
    7
    Par défaut
    Super ça marche!!!
    Enfin ça s'affiche

    Mais comment faire pour y mettre de l'ordre => test ici

    A ce niveau mon code donne ça:
    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
    <?php
    mysql_connect('srv', 'login', 'password');  
    mysql_select_db('bdd');                    
     
    $requete="SELECT citations.id,citations.citation, auteur.nom 
                   FROM cat_citation,citations,auteur 
                   WHERE citations.id_auteur=auteur.id and citations.id_cat_cit=cat_citation.id";
    $ressource=mysql_query($requete) or die(mysql_error());
    if($ressource){
       while($liste_citations=mysql_fetch_assoc($ressource)){
            echo $liste_citations['citation'].' par '.$liste_citations['nom'];
       }
    }
     
    mysql_close();  
    ?>
    Y'avais un probléme dans le WHERE, c'est "citations.id_cat_cit=cat_citation.id" et pas "cat_cit"


    Merci à vous de m'avoir aider jusque là
    Et de m'aider à nouveau^^

  14. #14
    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
    Tu rajoutes un ORDER BY à la fin de ta requête pour trier le résultat.
    Pas de questions techniques par MP, le forum est là pour ça et est plus efficace.

    Orthographe : une connexion (avec un x), un langage (sans u), une requête (un seul t), 'une quote' (avec qu), une syntaxe (sans h)

  15. #15
    Futur Membre du Club
    Inscrit en
    Janvier 2007
    Messages
    23
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 23
    Points : 7
    Points
    7
    Par défaut
    Nan ce que je veux dire par là, c'est que j'aimerais mettre le texte différemment.

    Le nom de l'auteur en gras, et chaque citations dans un paragraphe...

    J'ai essayais ça
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo .'<p>'.$liste_citations['citation'].' par <b>'.$liste_citations['nom'].'</b></p>';
    mais il aime pas la balise "<p>" après "echo".
    Où dois-je la mettre?

  16. #16
    Membre averti Avatar de Linio
    Inscrit en
    Octobre 2005
    Messages
    431
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 431
    Points : 332
    Points
    332
    Par défaut
    C'est pas le <p> qu'il aime pas c'est le .
    Linio

Discussions similaires

  1. Réponses: 0
    Dernier message: 26/10/2013, 13h32
  2. Réponses: 3
    Dernier message: 15/10/2012, 15h19
  3. [MySQL] probleme de replication de base donnée mysql avec php
    Par christclamard dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 28/02/2008, 20h42
  4. Problème de copie d'une base de données MySQL avec PHP
    Par rheem dans le forum SQL Procédural
    Réponses: 4
    Dernier message: 15/10/2007, 14h52
  5. Réponses: 1
    Dernier message: 31/01/2007, 11h59

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