Problème création forum

Fermé
kmorel Messages postés 13 Date d'inscription lundi 30 juillet 2018 Statut Membre Dernière intervention 22 octobre 2019 - Modifié le 27 nov. 2018 à 15:18
jordane45 Messages postés 38170 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 10 mai 2024 - 27 nov. 2018 à 15:20
Bonjoir a tous. je suis entrain de [ créer un forum] pour mon site web et je rencontre quelques problèmes.
voici mon code
<?php session_start();?>
<html>
<head>
<title>Forum de perfectionnement des Saints de l'avènement</title>
</head>
<body>

<!-- on place un lien permettant d'accéder à la page contenant le formulaire d'insertion d'un nouveau sujet -->
<a href="forum/insert_sujets.php">Insérer un sujet</a>

<br ><br />


// on se connecte à notre base de données
<?php error_reporting(E_ALL); ini_set('display_errors', TRUE);ini_set('display_startup_errors', TRUE);?>
  <?php try{
$bdd =new PDO('mysql:host=localhost; dbname=reveil; charset=utf8', 'root', '');
// Activation des erreurs PDO
 $bdd->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
// mode de fetch par défaut : FETCH_ASSOC / FETCH_OBJ / FETCH_BOTH
 $bdd->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_ASSOC);
} catch(PDOException $e) {
    die('Erreur : ' . $e->getMessage());}?>

 
<?php
// préparation de la requete
$sql = 'SELECT count(*)  FROM forum_sujets ORDER BY date_derniere_reponse DESC';
try{
 $req = $bdd->prepare($sql);
  }catch(Exception $e)
  {echo "<br>ERREUR dans la requête ! " . $sql ."<br>" .$e->getMessage();}
  
  $datas = $req->fetch(PDO::FETCH_ASSOC);
 
$result = mysql_fetch_row($req);
// on compte le nombre de sujets du forum
$nb_sujets = $result[0];

if ($nb_sujets == 0) {
 echo 'Aucun sujet';
}
else {
 ?>
 <table width="500" border="1"><tr>
 <td>
 Titre du sujet
 </td><td>
 Auteur
 </td><td>
 Date dernière réponse
 </td></tr>
 <?php
 // on va scanner tous les tuples un par un
 while ($data = mysql_fetch_array($req)) {

 // on décompose la date
 sscanf($data['date_derniere_reponse'], "%4s-%2s-%2s %2s:%2s:%2s", $annee, $mois, $jour, $heure, $minute, $seconde);

 // on affiche les résultats
 echo '<tr>';
 echo '<td>';

 // on affiche le nom de l'auteur de sujet
 echo htmlentities(trim($data['auteur']));
 echo '</td><td>';

 // on affiche le titre du sujet, et sur ce sujet, on insère le lien qui nous permettra de lire les différentes réponses de ce sujet
 echo '<a href="forum1/lire_sujet.php?id_sujet_a_lire=' , $data['id'] , '">' , htmlentities(trim($data['titre'])) , '</a>';

 echo '</td><td>';

 // on affiche la date de la dernière réponse de ce sujet
 echo $jour , '-' , $mois , '-' , $annee , ' ' , $heure , ':' , $minute;
 }
 ?>
 </td></tr></table>
 <?php
}

$req->CloseCursor();?>

</body>
</html>


et ce message d'erreur s'affiche: Warning: mysql_fetch_row() expects parameter 1 to be resource, object given in C:\wamp64\www\Test\forum\forum_index.php on line 36.

merci d'avance pour votre aide.

EDIT : Correction des balises de code

A voir également:

1 réponse

jordane45 Messages postés 38170 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 10 mai 2024 4 663
27 nov. 2018 à 15:20
Bonjour,

La solution est pourtant simple.....

Tu fais la connexion à ta BDD en PDO .... donc que vient faire ici une (ancienne...) instruction mysql_*
mysql_fetch_row
?

Tu as deux lignes
$datas = $req->fetch(PDO::FETCH_ASSOC);
 
$result = mysql_fetch_row($req);

Il faut faire un mixte des deux :
$result = $req->fetch(PDO::FETCH_ASSOC);

0