Ma BDD ne s'affiche pas sur le site
Résolubibou-23 Messages postés 17 Date d'inscription Statut Membre Dernière intervention -
- Ma BDD ne s'affiche pas sur le site
- Site comme coco - Accueil - Réseaux sociaux
- Site de telechargement - Accueil - Outils
- Quel site remplace coco - Accueil - Réseaux sociaux
- Site x - Guide
- Site pour vendre des objets d'occasion - Guide
5 réponses
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
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é
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());
}
?>
<?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>
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>
<?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
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 questionc'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());
}
?>