Mysql_fetch_assoc()
Résolu
Ar-Star52
Messages postés
24
Statut
Membre
-
Ar-Star52 Messages postés 24 Statut Membre -
Ar-Star52 Messages postés 24 Statut Membre -
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