Téléchargement
illégal
Posez votre question Signaler

Bdd affichage des données [Résolu]

Nico_ 1129Messages postés 29 décembre 2006Date d'inscription 28 mai 2012Dernière intervention - Dernière réponse le 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.
Lire la suite 

Bdd affichage des données »

4 réponses
Réponse
+0
moins plus
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 ...
Nico_- 12 juil. 2008 à 18:21
Merci bien je fais les essais.
Nico_- 12 juil. 2008 à 19:47
Merci, ça fonctionne comme je le souhaitais !

Bonne soirée
divland- 12 juil. 2008 à 21:06
heureux d'avoir pu t'aider

Ajouter un commentaire
Ce document intitulé « bdd affichage des données » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.
Dossier à la une
Passage au tout numérique : quel coût pour les particuliers ?