Problème pagination php my sql [Résolu/Fermé]

- - Dernière réponse :  jo150 - 2 août 2012 à 16:29
Bonjour,

je n'arrive pas a obtenir le nombre de news pour ma pagination voila mon code

<?php
// Connexion ?a base de données 
try
{
	$bdd = new PDO('mysql:host=localhost;dbname=rockstories', 'root', '');
}
catch(Exception $e)
{
        die('Erreur : '.$e->getMessage());
}

// On r?p? les 5 derniers news

?>

<?php
// On écrit les liens vers chacune des pages
// -----------------------------------------
 
// On met dans une variable le nombre de messages qu'on veut par page
$nombreDeMessagesParPage = 20; // Essayez de changer ce nombre pour voir :o)
// On récupère le nombre total de messages

$retour_total=mysql_query('SELECT COUNT(*) AS total FROM news'); //Nous récupérons le contenu de la requête dans $retour_total
$donnees_total=mysql_fetch_assoc($retour_total);
$totalDesMessages = $donnees_total['total'];
// On calcule le nombre de pages à créer
$nombreDePages  = ceil($totalDesMessages / $nombreDeMessagesParPage);
// Puis on fait une boucle pour écrire les liens vers chacune des pages
echo 'Page : ';
for ($i = 1 ; $i <= $nombreDePages ; $i++)
{
    echo '<a href="index.php?page=' . $i . '">' . $i . '</a> ';
}

if (isset($_GET['page']))
{
        $page = $_GET['page']; // On récupère le numéro de la page indiqué dans l'adresse (livreor.php?page=4)
}
else // La variable n'existe pas, c'est la première fois qu'on charge la page
{
        $page = 1; // On se met sur la page 1 (par défaut)
}
 
// On calcule le numéro du premier message qu'on prend pour le LIMIT de MySQL
$premierMessageAafficher = ($page - 1) * $nombreDeMessagesParPage;
 

$req = $bdd->query('SELECT id, titre, contenu, auteur, categorie, DATE_FORMAT(date_creation, \'%d/%m/%Y \')  AS date_creation_fr FROM news  WHERE publie=\'1\' ORDER BY date_creation DESC LIMIT ' . $premierMessageAafficher . ', ' . $nombreDeMessagesParPage);

while ($donnees = $req->fetch())
{
?>
<?php
include('../rockstoires/anecdote.php');
?>


quand je remplace $donnees_total['total']; par le nombr de mes news tout fonctionne mais j'aimerais que ca soit automatique !

donc voila ou est mon erreur

$retour_total=mysql_query('SELECT COUNT(*) AS total FROM news'); //Nous récupérons le contenu de la requête dans $retour_total
$donnees_total=mysql_fetch_assoc($retour_total);
$totalDesMessages = $donnees_total['total'];


sur mon site il y a cette erreur Warning: mysql_fetch_assoc() expects parameter 1 to be resource, boolean given in C:\wamp\www\rockstoires\index.php on line 113

Merci d'avance !


Afficher la suite 

1 réponse

0
Merci
Bonjour

En effet, mysql_query ne risque pas de marcher, ni mysql_fetch_assoc d'ailleurs.

En php, il y a plusieurs interfaces possibles pour utiliser mysql, et tu les mélanges.
Tu utilises PDO pour te connecter, et les fonction classiques mysql_qqchose pour ton SELECT COUNT(*)

Comme tu as commencé à utiliser PDO, il faut continuer :

$retour_total=$bdd->query('SELECT COUNT(*) AS total FROM news'); //Nous récupérons le contenu de la requête dans $retour_total
$donnees_total=$retour_total->fetch(PDO::FETCH_ASSOC);
$totalDesMessages = $donnees_total['total'];
merci beaucoup pour ton aide ca fonctionne !