Bdd affichage des données

Résolu/Fermé
Nico_ Messages postés 1219 Date d'inscription vendredi 29 décembre 2006 Statut Membre Dernière intervention 15 mars 2016 - 12 juil. 2008 à 14:26
divland Messages postés 194 Date d'inscription dimanche 22 juin 2008 Statut Membre Dernière intervention 4 septembre 2009 - 12 juil. 2008 à 21:06
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

divland Messages postés 194 Date d'inscription dimanche 22 juin 2008 Statut Membre Dernière intervention 4 septembre 2009 13
12 juil. 2008 à 16:42
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 ...
0
Nico_ Messages postés 1219 Date d'inscription vendredi 29 décembre 2006 Statut Membre Dernière intervention 15 mars 2016 189
12 juil. 2008 à 18:21
Merci bien je fais les essais.
0
Nico_ Messages postés 1219 Date d'inscription vendredi 29 décembre 2006 Statut Membre Dernière intervention 15 mars 2016 189
12 juil. 2008 à 19:47
Merci, ça fonctionne comme je le souhaitais !

Bonne soirée
0
divland Messages postés 194 Date d'inscription dimanche 22 juin 2008 Statut Membre Dernière intervention 4 septembre 2009 13 > Nico_ Messages postés 1219 Date d'inscription vendredi 29 décembre 2006 Statut Membre Dernière intervention 15 mars 2016
12 juil. 2008 à 21:06
heureux d'avoir pu t'aider

0