Ma BDD ne s'affiche pas sur le site

Résolu
bibou-23 Messages postés 18 Statut Membre -  
bibou-23 Messages postés 18 Statut Membre -

je suis entrain d'apprendre a coder le PHP en utilisant le Wamp.

la connexion est bien faites mais quand je fait appelle a l'affichage des données y-a toujours pas de données qui s'affichent sur le site.

voila le code:

<?php include "header.php";

include "connexion.php";

$req=$monPdo->prepare("select * from nationalite");

$req->setFetchMode(PDO::FETCH_OBJ);

$req->execute();

$lesNationalites=$req->fetchAll();

?>

 <div class="container mt-5">

 <table class="table">

  <thead>

    <tr>

      <th scope="col">numéro</th>

      <th scope="col">libellé</th>

    </tr>

  </thead>

  <tbody class="table-group-divider">

  <?php foreach($lesNationalites as $nationalite){

        echo"<tr>";

        echo"<td>$nationalite->num</td>";

        echo"<td>$nationalite->libelle</td>";

        echo"</tr>";

  }

  ?>

5 réponses

  1. bibou-23 Messages postés 18 Statut Membre
     

    voila le résultat que j'ai eu

    0
  2. jordane45 Messages postés 30427 Date d'inscription   Statut Modérateur Dernière intervention   4 832
     

    Bonjour,

    Commence par activer l'affichage des erreurs php,  activer l'affichage des erreurs PDO dans la connexion à la base ET à mettre ta requête dans un bloc TRY/CATCH

    https://forums.commentcamarche.net/forum/affich-37584941-php-pdo-gerer-les-erreurs

    Fais nous également un var_dump de ta variable $lesNationalites

    https://www.lephpfacile.com/manuel-php/function.var-dump.php


    0
    1. jordane45 Messages postés 30427 Date d'inscription   Statut Modérateur Dernière intervention   4 832
       

      Et précises nous également l'URL que tu utilises pour afficher la page dans ton navigateur....

      Tu passes bien par le "localhost" ?  exemple:  http://localhost/tonfichier.php

      0
      1. bibou-23 Messages postés 18 Statut Membre > jordane45 Messages postés 30427 Date d'inscription   Statut Modérateur Dernière intervention  
         

        oui bien sur 

        voila l'RL

        http://localhost/tdphp/listenationalites.php

        0
      2. jordane45 Messages postés 30427 Date d'inscription   Statut Modérateur Dernière intervention   4 832 > bibou-23 Messages postés 18 Statut Membre
         

        donc, fais ce que je t'ai indiqué concernant la gestion des erreurs .. et montre nous ensuite le code modifié ( y compris la connexion à ta bdd) ainsi que l'éventuel message d'erreur.

        Montres nous aussi un capture du teste de ta requête DIRECTEMENT dans phpmyadmin pour nous montrer qu'elle te retourne bien des résultats.

        Pense aussi au var_dump que je t'ai demandé

        0
      3. bibou-23 Messages postés 18 Statut Membre > jordane45 Messages postés 30427 Date d'inscription   Statut Modérateur Dernière intervention  
         

        quand j'active laffichage des erreurs PDO c'est qui me sort

        0
      4. jordane45 Messages postés 30427 Date d'inscription   Statut Modérateur Dernière intervention   4 832 > bibou-23 Messages postés 18 Statut Membre
         

        En effet, tu fais le setFetchMode sur la mauvaise variable..

        Il faut le faire sur la variable monPdo

        Une autre solution, est d'utiliser le code de connexion qui se trouve dans le lien que je t'ai donné tu verras que tout y est

        0
  3. bibou-23 Messages postés 18 Statut Membre
     

    Voila le code que j'utilise 

    <?php

    $hostnom ='host:localhost';

    $username ='root';

    $password ='';

    $bdd ='mabiblio';

    try{

        $monPdo = new PDO("mysql:$hostnom;dbname=$bdd;charset=utf8",$username,$password);

        $bdd->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

        $bdd->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_ASSOC);

    } catch(PDOException $e) {

        die('Erreur : ' . $e->getMessage());

    }

    ?>

    0
    1. jordane45 Messages postés 30427 Date d'inscription   Statut Modérateur Dernière intervention   4 832
       

      Regardes le nom des variables...

      Tu as initié la connexion avec la variable $monPdo ..

      Ensuite, tu as copié/collé bêtement le code que je t'ai donné en y laissant la variable $bdd ....

      Il faut donc changer les $bdd par $monPdo

      0
  4. jordane45 Messages postés 30427 Date d'inscription   Statut Modérateur Dernière intervention   4 832
     
    <?php
    
    $hostnom ='host:localhost';
    $username ='root';
    $password ='';
    $bdd ='mabiblio';
    
    try{
        $monPdo = new PDO("mysql:$hostnom;dbname=$bdd;charset=utf8",$username,$password);
        $monPdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
        $monPdo->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_OBJ);
    } catch(PDOException $e) {
        die('Erreur : ' . $e->getMessage());
    }
    
    ?>
    <?php 
    error_reporting(E_ALL);
    
    require_once "connexion.php";
    
    $sql = "select * from nationalite";
    try{
      $req = $monPdo->prepare($sql);
      $req->execute();
      $lesNationalites=$req->fetchAll();
    }catch(Exception $e){
     echo "Erreur : " . $e->getMessage();
    }
    
    include "header.php";
    ?>
    
     <div class="container mt-5">
    
     <table class="table">
      <thead>
        <tr>
          <th scope="col">numéro</th>
          <th scope="col">libellé</th>
        </tr>
      </thead>
      <tbody class="table-group-divider">
      <?php foreach($lesNationalites as $nationalite){
            echo"<tr>";
            echo"<td>" . $nationalite->num . "</td>";
            echo"<td>" . $nationalite->libelle . "</td>";
            echo"</tr>";
      }
      ?>
      </tbody>
    </table>

    0
    1. bibou-23 Messages postés 18 Statut Membre
       

      merci beaucoup ça m'aide énormément 

      je comprend mieux 

      mais je sais tjr pas pourquoi ça marche pas 

      quand j'exécute le code y-a ce message qui s'affiche

      Notice: Undefined variable: lesNationalites in C:\wamp\www\tdphp\listenationalites.php on line 28

      Warning: Invalid argument supplied for foreach() in C:\wamp\www\tdphp\listenationalites.php on line 28

        </tbody>

      </table>

      0
    2. bibou-23 Messages postés 18 Statut Membre > bibou-23 Messages postés 18 Statut Membre
       
      0
    3. jordane45 Messages postés 30427 Date d'inscription   Statut Modérateur Dernière intervention   4 832 > bibou-23 Messages postés 18 Statut Membre
       

      Revérifier ton code il y avait une erreur au niveau du try (j'ai édité mon code pour la corriger)

      De plus, si tu ne partage pas ton code tel qu'il est écrit actuellement, nous ne pourrons pas deviner d'où provient éventuellement l'erreur...

      0
    4. bibou-23 Messages postés 18 Statut Membre > jordane45 Messages postés 30427 Date d'inscription   Statut Modérateur Dernière intervention  
       
      <?php
      
      error_reporting(E_ALL);
      
      include "header.php";
      
      require_once "connexion.php";
      
      $sql = "select * from nationalite";
      
      try{
      
        $req = $monPdo->prepare($sql);
      
        $req->execute();
      
        $lesNationalites=$req->fetchAll();
      
      }catch(Exception $e){
      
       echo "Erreur : " . $e->getMessage();
      
      }
      
      ?>
      
       <div class="container mt-5">
      
       <table class="table">
      
        <thead>
      
          <tr>
      
            <th scope="col">numéro</th>
      
            <th scope="col">libellé</th>
      
          </tr>
      
        </thead>
      
        <tbody class="table-group-divider">
      
        <?php foreach($lesNationalites as $nationalite){
      
              echo"<tr>";
      
              echo"<td>" . $nationalite->num . "</td>";
      
              echo"<td>" . $nationalite->libelle . "</td>";
      
              echo"</tr>";
      
        }
      
        ?>
      
        </tbody>
      
      </table>
      
      <?php
      
      include "footer.php";
      
      ?>

      EDIT : Ajout des balises de code

      0
    5. jordane45 Messages postés 30427 Date d'inscription   Statut Modérateur Dernière intervention   4 832 > bibou-23 Messages postés 18 Statut Membre
       

      et donc ? tu as toujours l'erreur ?

      Tu as fais le var_dump que je t'ai demandé ? il donne quoi ?

      Tu as testé ta requête directement dans phpmyadmin ? tu nous montres la captures du résultat ?

      NB: tu as remis l'include de ton header au début .. mais non !!! ... il faut le placer APRES ton code php. 

      NB² : Ajoute un exit dans le catch pour pouvoir voir l'erreur sans que le reste de la page ne s'affiche

      0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. bibou-23 Messages postés 18 Statut Membre
     

    c'est bon j'ai trouvé la solution.

    j'ai du faire quelques modification dans connexion.php.

    le voici

    ?php

    $hostnom ='host:localhost';

    $username ='root';

    $password ='';

    $bdd ='mabiblio';

    try{

        $monPdo = new PDO("mysql:host=localhost;dbname=mabiblio;charset=utf8",'root','');

        $monPdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

        $monPdo->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_OBJ);

    } catch(PDOException $e) {

        die('Erreur : ' . $e->getMessage());

    }

    ?>

    0