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 - 10 juil. 2022 à 19:07
- Ma BDD ne s'affiche pas sur le site
- Site de telechargement - Accueil - Outils
- Site comme coco - Accueil - Réseaux sociaux
- Site inaccessible - Guide
- Quel site remplace coco - Accueil - Réseaux sociaux
- Site pour vendre des objets d'occasion - Guide
5 réponses
9 juil. 2022 à 15:45
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
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
9 juil. 2022 à 20:04
oui bien sur
voila l'RL
http://localhost/tdphp/listenationalites.php
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é
9 juil. 2022 à 20:12
quand j'active laffichage des erreurs PDO c'est qui me sort
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
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());
}
?>
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
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>
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>
9 juil. 2022 à 21:51
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...
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
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
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question10 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());
}
?>