Ma BDD ne s'affiche pas sur le site

Résolu/Fermé
bibou-23 Messages postés 17 Date d'inscription samedi 9 juillet 2022 Statut Membre Dernière intervention 16 septembre 2022 - 9 juil. 2022 à 15:42
bibou-23 Messages postés 17 Date d'inscription samedi 9 juillet 2022 Statut Membre Dernière intervention 16 septembre 2022 - 10 juil. 2022 à 19:07

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

bibou-23 Messages postés 17 Date d'inscription samedi 9 juillet 2022 Statut Membre Dernière intervention 16 septembre 2022
9 juil. 2022 à 15:45
voila le résultat que j'ai eu
0
jordane45 Messages postés 38144 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 21 avril 2024 4 650
9 juil. 2022 à 18:49

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 38144 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 21 avril 2024 4 650
9 juil. 2022 à 18:50

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 samedi 9 juillet 2022 Statut Membre Dernière intervention 16 septembre 2022 > jordane45 Messages postés 38144 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 21 avril 2024
9 juil. 2022 à 20:04

oui bien sur 

voila l'RL

http://localhost/tdphp/listenationalites.php

0
jordane45 Messages postés 38144 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 21 avril 2024 4 650 > bibou-23 Messages postés 17 Date d'inscription samedi 9 juillet 2022 Statut Membre Dernière intervention 16 septembre 2022
9 juil. 2022 à 20:06

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 samedi 9 juillet 2022 Statut Membre Dernière intervention 16 septembre 2022 > jordane45 Messages postés 38144 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 21 avril 2024
9 juil. 2022 à 20:12

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

0
jordane45 Messages postés 38144 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 21 avril 2024 4 650 > bibou-23 Messages postés 17 Date d'inscription samedi 9 juillet 2022 Statut Membre Dernière intervention 16 septembre 2022
9 juil. 2022 à 20:25

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 samedi 9 juillet 2022 Statut Membre Dernière intervention 16 septembre 2022
9 juil. 2022 à 20:45

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 38144 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 21 avril 2024 4 650
9 juil. 2022 à 21:06

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 38144 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 21 avril 2024 4 650
Modifié le 9 juil. 2022 à 22:09
<?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 samedi 9 juillet 2022 Statut Membre Dernière intervention 16 septembre 2022
9 juil. 2022 à 21:47

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 samedi 9 juillet 2022 Statut Membre Dernière intervention 16 septembre 2022 > bibou-23 Messages postés 17 Date d'inscription samedi 9 juillet 2022 Statut Membre Dernière intervention 16 septembre 2022
9 juil. 2022 à 21:51
0
jordane45 Messages postés 38144 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 21 avril 2024 4 650 > bibou-23 Messages postés 17 Date d'inscription samedi 9 juillet 2022 Statut Membre Dernière intervention 16 septembre 2022
9 juil. 2022 à 22:10

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 samedi 9 juillet 2022 Statut Membre Dernière intervention 16 septembre 2022 > jordane45 Messages postés 38144 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 21 avril 2024
Modifié le 9 juil. 2022 à 23:58
<?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 38144 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 21 avril 2024 4 650 > bibou-23 Messages postés 17 Date d'inscription samedi 9 juillet 2022 Statut Membre Dernière intervention 16 septembre 2022
10 juil. 2022 à 00:00

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 samedi 9 juillet 2022 Statut Membre Dernière intervention 16 septembre 2022
10 juil. 2022 à 19:07

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