Mysql_fetch_assoc()
Résolu
Ar-Star52
Messages postés
24
Date d'inscription
Statut
Membre
Dernière intervention
-
Ar-Star52 Messages postés 24 Date d'inscription Statut Membre Dernière intervention -
Ar-Star52 Messages postés 24 Date d'inscription Statut Membre Dernière intervention -
Salut tous le monde j'ai un probléme de paramétre a la ligne 39 et je n'arrive pas a trouvé d'ou cela proviens ! Quelqu'un pourrais m'aider ?
code 1 :
Code 2 :
code 1 :
<meta charset="utf-8"> <?php include("afficher.func.php"); $bdd = new PDO('mysql:host=localhost;dbname=blog;charset=utf8', 'root', ''); if (isset($_POST['submit'])) { $pseudo = htmlspecialchars(trim($_POST['pseudo'])); $corps = htmlspecialchars(trim($_POST['corps'])); if(empty($pseudo) || empty($corps)) { echo"Veuillez completer tous lezs champs"; } else{ inserer_article($pseudo,$corps); } } ?> <form method="post" action=""> <p>Votre pseudo</p> <input type="text" name="pseudo" /><br> <p>Votre article</p> <textarea name="corps" cols="20" rows="7"></textarea><br><br> <input type="submit" name="submit" value="Poster" /> </form> <?php $afficher_articles = afficher_articles(); foreach($afficher_articles as $afficher_article) { echo "Poster par".$afficher_article['pseudo']."<br>"; echo $afficher_article['corps']."<br>"; echo "Le ".date('d/m/Y à H:i:s',strtotime($afficher_article['date'])); } ?>
Code 2 :
<?php function inserer_article($pseudo,$corps) { try { // On se connecte à MySQL $bdd = new PDO('mysql:host=localhost;dbname=blog;charset=utf8', 'root', ''); } catch(Exception $e) { // En cas d'erreur, on affiche un message et on arrête tout die('Erreur : '.$e->getMessage()); } // Si tout va bien, on peut continuer $req = $bdd->prepare('INSERT INTO articles(pseudo, corps, date) VALUES(:pseudo, :corps, NOW())'); $req->execute(array( 'pseudo' => $pseudo, 'corps' => $corps, )); } function afficher_articles() { $articles = array(); try { // On se connecte à MySQL $bdd = new PDO('mysql:host=localhost;dbname=blog;charset=utf8', 'root', ''); } catch(Exception $e) { // En cas d'erreur, on affiche un message et on arrête tout die('Erreur : '.$e->getMessage()); } $req = $bdd->prepare('SELECT * FROM articles ORDER BY date DESC'); while ($row = mysql_fetch_assoc($req)) { $articles[] = $row; } return $articles; } ?>
2 réponses
Bonjour
$req = $bdd->prepare('SELECT * FROM articles ORDER BY date DESC');
while ($row = mysql_fetch_assoc($req))
Tu mélanges les fonctions PDO avec celles de l'ancienne interface mysql_, ça ne peut pas marcher.
Et de plus, tu as préparé une requête mais tu ne l'exécutes pas !
Puisque tu as choisi d'utiliser PDO (comme M. Jourdain peut-être, mais c'est un bon choix quand même), utilise la fonction fetch de PDO :
voir https://www.php.net/manual/fr/pdostatement.fetch.php
$req = $bdd->prepare('SELECT * FROM articles ORDER BY date DESC');
while ($row = mysql_fetch_assoc($req))
Tu mélanges les fonctions PDO avec celles de l'ancienne interface mysql_, ça ne peut pas marcher.
Et de plus, tu as préparé une requête mais tu ne l'exécutes pas !
Puisque tu as choisi d'utiliser PDO (comme M. Jourdain peut-être, mais c'est un bon choix quand même), utilise la fonction fetch de PDO :
$req = $bdd->prepare('SELECT * FROM articles ORDER BY date DESC'); $req->execute(); // exécute la requête préparée while ($row = $req->fetch(PDO::FETCH_ASSOC))
voir https://www.php.net/manual/fr/pdostatement.fetch.php