Bdd affichage des données

Résolu/Fermé
Signaler
Messages postés
1219
Date d'inscription
vendredi 29 décembre 2006
Statut
Membre
Dernière intervention
15 mars 2016
-
Messages postés
194
Date d'inscription
dimanche 22 juin 2008
Statut
Membre
Dernière intervention
4 septembre 2009
-
Bonjour,

j'ai sur mon site des messages que j'ajoute régulièrement dans une BDD.
Je les affiches par ordre décroissant.
Je vais bientôt avoir trop de message sur une page (celle-ci commence à ce déformer)
Quel est le code pour faire afficher les 10 premiers message, et qu'a la fin du 10ème messages,
il y ai page 1 2 3 4 5
je souhaite qu'il y ai 10 messages par page.
Automatiquement, que je ne soit pas obligé de faire ces page a la main.

Merci, bonne journée et bon weekend.

1 réponse

Messages postés
194
Date d'inscription
dimanche 22 juin 2008
Statut
Membre
Dernière intervention
4 septembre 2009
13
bonjour,
j'ai retrouvé ce bout de script...je pense que ça correspond à ce que vous recherchez..

//début
<?
//récupération de $limite
if(isset($_GET['limite']))
$limite=$_GET['limite']; else $limite=0;

function verifLimite($limite,$total,$nombre) {
// je verifie si limite est un nombre.
if(is_numeric($limite)) {

// si $limite est entre 0 et $total, $limite est ok
// sinon $limite n'est pas valide.
if(($limite >=0) && ($limite <= $total) && (($limite%$nombre)==0)) {
// j'assigne 1 à $valide si $limite est entre 0 et $max
$valide = 1;
}
else {
// sinon j'assigne 0 à $valide
$valide = 0;
}
}
else {
// si $limite n'est pas numérique j'assigne 0 à $valide
$valide = 0;
}
// je renvois $valide
return $valide;
}
?>
<?
function affichePages($nb,$page,$total,$gras) {
$nbpages=ceil($total/$nb);
$numeroPages = 1;
$compteurPages = 1;
$limite = 0;
echo '<table border = "0" ><tr>'."\n";
while($numeroPages <= $nbpages) {
if($gras == $numeroPages) {
echo '<td ><span class = "numeropage">  '.$numeroPages.'  </span></td>'."\n";
}
else {
echo '<td ><span class = "numeropage_gras"><a href = "'.$page.'?limite='.$limite.'">'.$numeroPages.'</a></span></td>'."\n";
}
$limite = $limite + $nb;
$numeroPages = $numeroPages + 1;
$compteurPages = $compteurPages + 1;
if($compteurPages == 10) {
$compteurPages = 1;
echo '<br>'."\n";
}
}
echo '</tr></table>'."\n";
}
?>
<?
//=========================================
// information pour la connection à le DB
//=========================================
$host = 'xxxxxxx';
$user = 'xxxxxxx';
$pass = 'xxxxxxx';
$db = 'xxxxxxxxx';
//=========================================
// initialisation des variables
//=========================================
// on va afficher 5 résultats par page.
$nombre = 5;
// si limite n'existe pas on l'initialise à zéro
if (!$limite) $limite = 0;
// on cherche le nom de la page.
$path_parts = pathinfo($_SERVER['PHP_SELF']);
$page = $path_parts["basename"];
$gras = ($limite / $nombre)+1;
//=========================================
// connection à la DB
//=========================================
$link = mysql_connect ($host,$user,$pass) or die ('Erreur : '.mysql_error() );
mysql_select_db($db) or die ('Erreur :'.mysql_error());

//=========================================
// requête SQL qui compte le nombre total
// d'enregistrements dans la table.
//=========================================
$select = "SELECT count(xxxxxxxxxxxxx) FROM xxxxxxxxx";
$result = mysql_query($select,$link) or die ('Erreur : '.mysql_error() );
$row = mysql_fetch_row($result);
$total = $row[0];

//=========================================
// vérifier la validité de notre variable
// $limite;
//=========================================
$verifLimite= verifLimite($limite,$total,$nombre);
// si la limite passée n'est pas valide on la remet à zéro
if(!$verifLimite) {
$limite = 0;
}

$sql = "SELECT * FROM xxxxxxx ORDER BY id DESC limit ".$limite.','.$nombre;

// on envoie la requete
$req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());


// on fait une boucle qui va faire un tour pour chaque enregistrements
while($data = mysql_fetch_array($req))
{
// on affiche les informations de l'enregistrements en cours
echo 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx';
}

// on ferme la connexion à mysql
mysql_close();


//=========================================
// si le nombre d'enregistrement à afficher
// est plus grand que $nombre
//=========================================
if($total > $nombre) {
// affichage des liens vers les pages
affichePages($nombre,$page,$total,$gras);
}
?>
//fin

en remplaçant les x par les bonnes valeurs ...
Messages postés
1219
Date d'inscription
vendredi 29 décembre 2006
Statut
Membre
Dernière intervention
15 mars 2016
188
Merci bien je fais les essais.
Messages postés
1219
Date d'inscription
vendredi 29 décembre 2006
Statut
Membre
Dernière intervention
15 mars 2016
188
Merci, ça fonctionne comme je le souhaitais !

Bonne soirée
Messages postés
194
Date d'inscription
dimanche 22 juin 2008
Statut
Membre
Dernière intervention
4 septembre 2009
13 >
Messages postés
1219
Date d'inscription
vendredi 29 décembre 2006
Statut
Membre
Dernière intervention
15 mars 2016

heureux d'avoir pu t'aider