Ma BDD ne s'affiche pas sur le site

Résolu
bibou-23 Messages postés 17 Date d'inscription   Statut Membre Dernière intervention   -  
bibou-23 Messages postés 17 Date d'inscription   Statut Membre Dernière intervention   -

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>";

  }

  ?>

A voir également:

5 réponses

bibou-23 Messages postés 17 Date d'inscription   Statut Membre Dernière intervention  
 
voila le résultat que j'ai eu
0
jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752
 

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
jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752
 

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
bibou-23 Messages postés 17 Date d'inscription   Statut Membre Dernière intervention   > jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention  
 

oui bien sur 

voila l'RL

http://localhost/tdphp/listenationalites.php

0
jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752 > bibou-23 Messages postés 17 Date d'inscription   Statut Membre Dernière intervention  
 

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
bibou-23 Messages postés 17 Date d'inscription   Statut Membre Dernière intervention   > jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention  
 

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

0
jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752 > bibou-23 Messages postés 17 Date d'inscription   Statut Membre Dernière intervention  
 

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
bibou-23 Messages postés 17 Date d'inscription   Statut Membre Dernière intervention  
 

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
jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752
 

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
jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752
 
<?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
bibou-23 Messages postés 17 Date d'inscription   Statut Membre Dernière intervention  
 

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
bibou-23 Messages postés 17 Date d'inscription   Statut Membre Dernière intervention   > bibou-23 Messages postés 17 Date d'inscription   Statut Membre Dernière intervention  
 
0
jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752 > bibou-23 Messages postés 17 Date d'inscription   Statut Membre Dernière intervention  
 

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
bibou-23 Messages postés 17 Date d'inscription   Statut Membre Dernière intervention   > jordane45 Messages postés 38486 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
jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752 > bibou-23 Messages postés 17 Date d'inscription   Statut Membre Dernière intervention  
 

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

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

Posez votre question
bibou-23 Messages postés 17 Date d'inscription   Statut Membre Dernière intervention  
 

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