Mysql_fetch_assoc()

Résolu/Fermé
Ar-Star52 Messages postés 24 Date d'inscription samedi 24 janvier 2015 Statut Membre Dernière intervention 28 mars 2015 - Modifié par Ar-Star52 le 25/01/2015 à 11:44
Ar-Star52 Messages postés 24 Date d'inscription samedi 24 janvier 2015 Statut Membre Dernière intervention 28 mars 2015 - 25 janv. 2015 à 13:12
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 :

<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

Utilisateur anonyme
25 janv. 2015 à 12:42
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 :
$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
1
Ar-Star52 Messages postés 24 Date d'inscription samedi 24 janvier 2015 Statut Membre Dernière intervention 28 mars 2015
25 janv. 2015 à 13:12
Merci j'ai corriger mon erreur ! :)
0