Afficher donnée de la bdd

Bonjour,

voila j'ai un probleme pour afficher les donnée de ma bdd
j'ai fais ça mais ça ne marche pas je ne sais pas les fair apparaitre

</div id="actu" width="600px">
<?php
mysql_connect('localhost','root','');
mysql_select_db('test');

$reponse = mysql_query("SELECT * FROM news");

while ($donnees = mysql_fetch_array($reponse) )
{
?>
<p>
<strong>titre</strong> : <?php echo $donnees['titre']; ?><br />
<?php echo $donnees['contenu']; ?>
</p>
<?php
}

mysql_close();
?>

</div>
Configuration: Windows XP
Firefox 2.0.0.14

12 réponses

  • Votes
  • Date
  • Date décroissante
Résumé de la discussion

Le problème concerne l'affichage des données d'une base MySQL dans une page, car le script PHP ne parvient pas à afficher correctement les résultats depuis la requête. Des éléments essentiels consistent à corriger la structure HTML et à sécuriser l'exécution du code PHP, notamment en plaçant l'affichage dans des balises appropriées et en effectuant une connexion MySQL suivie d'une requête. En pratique, utiliser une boucle while récupère chaque ligne et affiche les champs titre et contenu, en évitant les erreurs de fermeture des balises et en fermant correctement la connexion. En cas d'absence d'affichage, vérifier que le fichier porte bien l'extension .php et que le serveur autorise l'exécution de PHP.

Bobot (l’IA à votre service)
  1. Salut chronosXIII
    essai de mettre mysql_fetch_row à la place de mysql_fetch_array
    1. ok merci je vais tenté ça de suite
    2. @chronosXIII^^
      a la place de ton array, mets :
      $requete_sql="select * from TaTable";     //texte de la requête
      $res=mysql_query("$requete_sql");     // exécution de ta requête
      $row = mysql_fetch_row($res);     // sélectionné le résultat
      

      Pour afficher les résultats de ta requête, tu fais :
      echo $row[0];     //résultat de la première colonne
      echo $row[1];      //résultat de la deuxième colonne
      

      Et tu continues. Tu peux bien sur le faire dans une boucle!
    3. @feezj'ai essayé sous cette forme la

      <?php
      mysql_connect('localhost','root','');
      mysql_select_db('test');
      $requete_sql="select * from news";
      $res=mysql_query("$requete_sql");
      $row = mysql_fetch_row($res);

      while ($row)
      {

      <strong>titre</strong> : echo $row[1]; </br>
      echo $row[2];

      }

      mysql_close();
      ?>

      mais comme resutat j'ai

      titre : echo $row[1];
      echo $row[2];

      } mysql_close(); ?>
    4. @chronosXIIIpour ta boucle, fais ça.
      indice=0;
      while($row = mysql_fetch_row($res))
      {
       echo $row[indice];
       indice=indice+1;
      }

      Ca devrait marcher je pense
    5. @chronosXIII<?php
      while ($row)
      {

      echo "<strong>titre</strong> : ".$row[1]."</br>";
      echo $row[2];
      }
      ?>
  2. Si ça te mets ça comme ça, c'est que t'as fait une erreur de gillemets ou de parenthèses. Copie colle ce code :
    $nom_serveur_MYSQL="localhost" ;
    $utilisateur="root" ;
    $mot_de_passe="" ;
    if (mysql_connect("$nom_serveur_MYSQL", "$utilisateur", "$mot_de_passe"))
    {
    	echo"Vous êtes maintenant connecté à MySQL.<BR>";
    }
    else
    {
    	echo"La connexion à MySQL a échoué.<BR>";
    }
    
    $nom_de_la_base="test" ;
    if (mysql_select_db("$nom_de_la_base"))
    {
    	echo"Vous êtes maintenant connecté à la base.<BR>";
    }
    else
    {
    	echo"La connexion à la base a échoué.<BR>";
    }
    
    1. faut bien le mettre entre balise <?php ?>

      si oui ça me met exaactement comme au dessus

      inon l'erreur vient peut etre du code précedent le php

      <html>

      <head>
      <title>bienvenue sur le site de la société ********</title>
      <link rel="shortcut icon" type="image/x-icon" href="images/icon.png" />
      <link href="css/style.css" rel="stylesheet" type="text/css" />
      <style type="text/css">

      </style>
      </head>
      <body>
      <center>
      <tr><td>
      <center>
      <table width="700" background="images/pljk6.jpg" border="1">
      <tr><td>
      <div id="ban"></div>
      </div id="actu" width="600px">
      <?php
      $nom_serveur_MYSQL="localhost" ;
      $utilisateur="root" ;
      $mot_de_passe="" ;
      if (mysql_connect("$nom_serveur_MYSQL", "$utilisateur", "$mot_de_passe"))
      {
      echo"Vous êtes maintenant connecté à MySQL.<BR>";
      }
      else
      {
      echo"La connexion à MySQL a échoué.<BR>";
      }
      $nom_de_la_base="test" ;
      if (mysql_select_db("$nom_de_la_base"))
      {
      echo"Vous êtes maintenant connecté à la base.<BR>";
      }
      else
      {
      echo"La connexion à la base a échoué.<BR>";
      }
      ?>
      </div>
      <center><img src="images/mousse.png"></center>

      </div>
      </body>

      </html>
    2. j'ai vu que tu utilisais Firefox. Faut faire gaffe à tout au niveau du code php et html. Entre autre, pour les balises php, il faut pas mettre :
      <?
      
      ?>

      mais il faut mettre :
      <?php
      
      ?>

      C'est très pointilleux. Il est très sensible aux guillemets, accolades ou autre. Tout foire très rapidement. Si ca continue à foiré, installe notepad++ (si tu l'as pas déjà), vas sur ton site web avec ton navigateur. Quand t'es sur ta page, click droit --> afficher la source. Tu verra peut être ce qui foire.
    3. @chronosXIIIEffectivement, ca va pas dans tes balises <div>.
      Copie cole ce code :
      <html> 
      
      <head> 
      <title>bienvenue sur le site de la société ********</title> 
      <link rel="shortcut icon" type="image/x-icon" href="images/icon.png" /> 
      <link href="css/style.css" rel="stylesheet" type="text/css" /> 
      <style type="text/css"> 
      
      </style> 
      </head> 
      <body> 
      <center> 
      <tr><td> 
      <center> 
      <table width="700" background="images/pljk6.jpg" border="1"> 
      <tr><td> 
      <div id="ban"></div> 
      <div id="actu" width="600px"> 
      <?php 
      $nom_serveur_MYSQL="localhost" ; 
      $utilisateur="root" ; 
      $mot_de_passe="" ; 
      if (mysql_connect("$nom_serveur_MYSQL", "$utilisateur", "$mot_de_passe")) 
      { 
      echo"Vous êtes maintenant connecté à MySQL.<BR>"; 
      } 
      else 
      { 
      echo"La connexion à MySQL a échoué.<BR>"; 
      } 
      $nom_de_la_base="test" ; 
      if (mysql_select_db("$nom_de_la_base")) 
      { 
      echo"Vous êtes maintenant connecté à la base.<BR>"; 
      } 
      else 
      { 
      echo"La connexion à la base a échoué.<BR>"; 
      } 
      ?> 
      
      <center><img src="images/mousse.png"></center> 
      
      </div> 
      </body> 
      
      
      </html>
  3. bah je met toujour <?php ou alors oubli de ma part ...
    1. va voir le message numéro 16. C'est le dernier que j'ai posté mais il s'est pas mis à la fin...
  4. oui je viens de le voir ^^

    mais ça affiche pareil :/
    1. Fais un petit test. Crées un fichier "connexion.php"
      Dedans, met ce code :
      <?php 
      $nom_serveur_MYSQL="localhost" ; 
      $utilisateur="root" ; 
      $mot_de_passe="" ; 
      if (mysql_connect("$nom_serveur_MYSQL", "$utilisateur", "$mot_de_passe")) 
      { 
      echo"Vous êtes maintenant connecté à MySQL."; 
      } 
      else 
      { 
      echo"La connexion à MySQL a échoué."; 
      } 
      $nom_de_la_base="test" ; 
      if (mysql_select_db("$nom_de_la_base")) 
      { 
      echo"Vous êtes maintenant connecté à la base."; 
      } 
      else 
      { 
      echo"La connexion à la base a échoué."; 
      } 
      ?> 
      

      Tu le testes. Si ca marche alors c'est cool.
    2. @feezseul ça me met vous etes connecté 2 fois
    3. @feezsi ça te met :
      vous êtes connecté à mysql.
      vous êtes connecté à la base.
      ca veut dire que ca marche.
    4. @feezmais quand je met l'ancien code que tu ma paé ça marche pas :/
  5. bah les deux vous etes connecté my sql et la base voila exactement ce que ça met

    Vous êtes maintenant connecté à MySQL.Vous êtes maintenant connecté à la base.
    1. héhé, donc ca marche! c'était bien un problème de balises. Pour y remédier, je vais te dire ce qu'il faut faire.
    2. Garde ton fichier connexion.php et mets le dans le même dossier que ta page web. Tu vas l'inclure dans ton code html comme ça :
      <html> 
      <head> 
      <title>bienvenue sur le site de la société ********</title> 
      <link rel="shortcut icon" type="image/x-icon" href="images/icon.png" /> 
      <link href="css/style.css" rel="stylesheet" type="text/css" /> 
      <style type="text/css"> 
      
      </style> 
      </head> 
      <body> 
      <center> 
      <tr><td> 
      <center> 
      <table width="700" background="images/pljk6.jpg" border="1"> 
      <tr><td> 
      <div id="ban"></div> 
      <div id="actu" width="600px"> 
      <?php
      include("connexion.php");
      ?>
      <center><img src="images/mousse.png"></center> 
      </div> 
      </body> 
      </html>

      Normalement, ca devrait marcher...
  6. sur ce code ça me met parse error unexpected '=' ligne 11

    <?php
    mysql_connect('localhost','root','');
    mysql_select_db('test');
    $requete_sql="select * from news";
    $res=mysql_query("$requete_sql");
    ?>

    <strong>titre</strong> :

    <?php
    indice=0;
    while ($row = mysql_fetch_row($res); )
    {
    echo $row[indice];
    indice=indice+1;
    }
    mysql_close(); ?>
    1. elle m'en aura poser des probleme cette page d'actu :/

      toutça pour afficher

      titre : bla bla
      et texte de l'artcile

      ^^
      1. essaye en enlevant le point virgule après $row=mysql_fetch_row($res)
      2. @feezoups! prdon, c'est moi qui fais de la merde. Enlève le point virgule et met un $ devant indice à chaque fois qu'il y est.
      3. @feezBon, je te mets le code proprement bicoze, je suis embrouillée...^^
        <?php 
        mysql_connect('localhost','root',''); 
        mysql_select_db('test'); 
        $requete_sql="select * from news"; 
        $res=mysql_query("$requete_sql"); 
        ?> 
        
        <strong>titre</strong> : 
        
        <?php 
        $indice=0; 
        while ($row = mysql_fetch_row($res)) 
        { 
        echo $row['$indice']; 
        $indice=$indice+1; 
        } 
        mysql_close(); ?>
        

        Voila! t'as plus qu'à copier.^^
    2. non rien d'afficher jeste les graphisme sinon le php juste au dessu seul marche mais ça me met

      titre : 1test2dzdzedfef

      le 1 la clef ( ça j'aimerai qu'elle y soit pas )
      test2 le titre
      et le reste c'est le message

      bon ça c'est resolu mais il ne m'affiche qu'un message
      alors que j'en ai plusieur :/
      1. et bien c'est parfait! Si tu peux afficher les résultat de la table, c'est que tu es connecté. Si tu veux pas que la clé s'affiche, il te suffit de mettre $indice à 1 avant la boucle. (je l'avais mis à 0). Normalement, tout est bon.^^^
        T'as d'autres questions ou d'autres problèmes?
      2. @feezoui j'avais edité mon post car c'etait logiqe que ça venait de l'indice ^^

        oui il ne m'affiche qu'un article ... alors qu'il y en a plus faut que je fasse un for ?
      3. @chronosXIIIje me suis trompée dans ce que je t'ai dit. Le $row sert à afficher le contenu des colonnes pour un enregistrement de ta table. Pour afficher toutes les données de ta table, je pense que tu dois faire :
        <code>
        $requete_sql="SELECT * FROM news" ;
        $res = mysql_query("$requete_sql");
        while ($data= mysql_fetch_array($res))
        {
        echo $data['Numero_du_news'];
        }
        Je suis pas sure que ca marchera. Dis moi si ca marche. Je vais essayer de trouver autre chose.
      4. @feez^^
        héhé! ca y est j'ai trouvé!
        $requete_sql="SELECT * FROM news" ; 
        $res = mysql_query("$requete_sql"); 
        while ($data= mysql_fetch_array($res)) 
        { 
        echo $data['Numero_du_news']; 
        echo $data['nom_du_news'];
        echo $data['texte_du_news'];
        } 
        

        il va t'afficher le contenu de tes champs pour tout tes enregistrements! Dis moi si ca marche pas mais a priori, il devrait pas y avoir de problème! Pour moi, ça marche.
    3. merci enormement ^^ ça marche niquel et si a la place d'un contenu texte je veux mettre une image ? il faut fair quoi ?

      <img src="$data">?

      sinon tu pourra allez voir mon autre toic pour l'insertion dans la bdd stp
      1. dis moi le titre exact de ton topic et j'irais. Pour l'image je sais pas comment on fait. Mais, n'oublie pas de mettre ce topic en résolu.^^
      2. @feezoui alors le titre besoin d'aide pour intégration dans la BDD

        mais pour inserer une image a la place d'un texte il aurai fallu que je fasse quoi ?
      3. @chronosXIIIje sais pas. Stocker une image dans une base de données c'est pas très conseillé. Ca alourdi considérablement une base de données.
      4. @feezmais, j'aimerais bien savoir comment faire moi aussi!
    4. tu t souvien tu m'a fais un include dans le html et je t'ai dis qu'il ne archais pas ....

      je l'ai laissé et j'en ai mi un dans le php qu marche

      et le resultat est quil fait marché l'autre include mais voila c'est moche ... et en plus ça se repete indéfiniment :/

      regarde
      http://img299.imageshack.us/img299/4986/pngcopievc0.png

      pareil tu peu voir que su certain article le texte est a ralonge dans mon texte area ça me met un ascenseur verticale au lieu de me fair aller a la ligne tu sais pas comment resoudre ça ?

      ps le rectangle noir c'est juste un bannière a venir ^^
      1. donc si tu sais d'ou ça vient l'un des deux proble je suis preneur ^^
      2. @chronosXIIIsi l'autre include marche, enlève le premier.
        En ce qui concerne ta texte area, il doit y avoir une propriété qui dit pas de scrollbar horizontal.
        C'est à chercher sur google, ça doit se trouver.