Afficher les 3 premier commentaires + lien Suivant Précédent [Résolu]

Messages postés
771
Date d'inscription
lundi 19 janvier 2009
Dernière intervention
31 mai 2017
- - Dernière réponse : djsquinje
Messages postés
771
Date d'inscription
lundi 19 janvier 2009
Dernière intervention
31 mai 2017
- 18 déc. 2015 à 12:52
Bonsoir à tout(e)

Je vous explique, je veux afficher les 3 premiers commentaire et faire des liens pour les 3 suivant / précédent. J'y arrive PRESQUE mais je bloque...

Voici mon code
<?php
    $limite = 0;
    $nombre = 3;
 
 
if(isset($_GET['id']) === false) {
    $id = 1;
} else {
    $id = $_GET['id'];
    if(is_numeric($id) === false) {
        exit('Error ID');
    }
}
// Connexion à la base de données
try
{
    $bdd = new PDO('mysql:host=localhost;dbname=test1;charset=utf8', 'root', '');
}
catch(Exception $e)
{
        die('Erreur : '.$e->getMessage());
}
 
// Récupération des 10 derniers messages
$reponse = $bdd->query("select * FROM minichat ORDER BY ID ASC limit ".$limite.",".$nombre."");
 
// Affichage de chaque message (toutes les données sont protégées par htmlspecialchars)
while ($donnee = $reponse->fetch())
if($donnee !== false) {
    echo htmlspecialchars($donnee['nom'].' : '.$donnee['message']).'<br>';
} else {
    echo 'Il n\'y à plus de commentaires';
}
 
if($nombre > 1) {
    echo '<li><a href="./test.php?limite='.($limite-1) and ($nombre-1).'"> << Précédent </a>';
}
if($donnee !== false) {
    echo '<a href="./test.php?limite='.($limite+1) and ($nombre+1).'">  Suivant  >> </a></li>
    </ul>';
}
 
?>


SVP soyez claire dans vos explication, je suis encore un grand débutant. Merci de vos conseil :)
Afficher la suite 

Votre réponse

2 réponses

Meilleure réponse
Messages postés
771
Date d'inscription
lundi 19 janvier 2009
Dernière intervention
31 mai 2017
2
2
Merci
RESOLUT :

<?php

try {
	$bdd = new PDO('mysql:host=localhost;dbname=test1;charset=utf8', 'root', '');
} catch(Exception $e) {
	die('Erreur : '.$e->getMessage());
}

	$reponse_count = $bdd->query('SELECT COUNT(*) AS count FROM minichat');
	$donnee_count = $reponse_count->fetch();
	$count = $donnee_count['count'];

if(isset($_GET['id']) === false) {
	$id = $count;
} else {
	$id = $_GET['id'];
	if(is_numeric($id) === false) {
		exit('Error ID');
	}
}

echo '<ul>';
$reponse = $bdd->query('SELECT * FROM minichat WHERE id <= '.$id.' ORDER BY id DESC LIMIT 3');
while($donnee = $reponse->fetch()) {
	if($donnee !== false) {
		echo '<li><img src="images/guillemets.png"> '.htmlspecialchars($donnee['nom'].' : '.$donnee['message']).'</li>';
	} else {
		echo '<img src="images/erreur.png">Il n\'y à plus de commentaires';
	}
}
echo '</ul>';

if($id > 3) {
	echo '<a href="?id='.($id-3).'"> << Précédent </a>';
}
if($id < $count) {
	echo '<a href="?id='.($id+3).'">  Suivant  >> </a>';
}

Dire « Merci » 2

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 120 internautes nous ont dit merci ce mois-ci

Commenter la réponse de djsquinje
Messages postés
25031
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
24 mars 2019
364
0
Merci
Bonjour,

Il y a pleins de petites anomalies dans ton code ....
pour commencer .... à quoi sert ta variable $id ??

Ensuite... à quel momment récupères tu la valeur de ta variable limite ?
Tu la fixes à 0 ... mets des valeurs dans l'url ... mais ne les récupère jamais.... Oo

n'aurais tu pas oublié :
 $limite = !empty($_GET['limite']) ? $_GET['limite'] : 0;

djsquinje
Messages postés
771
Date d'inscription
lundi 19 janvier 2009
Dernière intervention
31 mai 2017
2 -
Merci de ton aide, en effet il y a plein d'erreur que je n'arrive pas à corriger...

Sur OpenClassrom on ma donner ce conseille :

Salut pour commencer doucement, remplace :

$limite = 0;
$nombre = 3;


par

if(empty($_GET['limite'])) {
  $limite = 0;
} else {
  $limite = $_GET['limite'];
}
 
if(empty($_GET['nombre'])) {
  $nombre = 3;
} else {
  $nombre = $_GET['nombre'];
}


Si les paramètres sont vides ou innexistant, on force la page 1. Sinon on stocke les paramètre passés dans l'URL ($_GET) dans des variables.
Commenter la réponse de jordane45

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.