[résolu] PHP - Limiter l'affichage par page - au secours...
Forum Programmation : [résolu] PHP - Limiter l'affichage par page - au secours...
Bonjour,
J'ai dans mon site une rubrique revue de presse qui affiche les articles que j'insère dans ma base de données. Le problème est que j'aimerais mettre une limite d'affichage à 4 articles par page pourne pas avoir des pages de 20m de long...
J'ai donc trouvé un script qui me semble bien que j'ai essayé d'adapter à mon code mais sans succès puisque maintenant mes articles ne s'affichent plus. Quelqu'un pourrait m'aider à trouver mon erreur? Merci d'avance pour votre aide
Script de départ :
<?php
include ("connexion.php" );
$reponse = mysql_query ("SELECT *, DATE_FORMAT(`date`, '%d/%m/%Y') as date_fr FROM pressearies ORDER BY identifiant DESC" )or die(mysql_error());
while ($donnees = mysql_fetch_array($reponse))
{
;
?>
<br>
</span><span class="Style2"><?php echo $donnees['titre']; ?> <?php echo $donnees['titraille']; ?></span><br>
<span class="Style5">Le <?php echo $donnees['date_fr']; ?>, <?php echo $donnees['journal']; ?> (<?php echo $donnees['rubrique']; ?> )</span><br>
<span class="Style3"><?php echo $donnees['resume']; ?></span><span class="Style9"></span><span class="Style8"><br>
<span class="Style3"><?php echo $donnees['auteur']; ?></span><br>
<span class="Style7"><?php echo "<a href=".$donnees['lien']." target="._blank.">".$donnees['lien']."</a>"; ?></span></span></div></td>
</tr>
<tr>
<td><div align="justify"><span class="Style8">
<?php
}
mysql_close();
?>
Script modifié pour limiter l'affichage :
<?php
include ("connexion.php" );
$page = isset($_GET['essaipresselimit.php']) ? $_GET['essaipresselimit.php'] : '';
// Prepare le requete MySql
$requete = "SELECT *, DATE_FORMAT(`date`, '%d/%m/%Y') as date_fr FROM pressearies ORDER BY identifiant DESC";
$ret = mysql_query($requete) or die(mysql_error());
// Variable nombre d'enreg par page
$limit=4;
if($debut=="" ){$debut=0;}
$debut=$page*$limit;
// Compte le nombre de champ
$nb_total=mysql_num_rows($ret);
// Requete
$limite=mysql_query("$requete limit $debut,$limit" );
// Affiche le page par page avec ses liens
if ($page>0) {
$precedent=$page-1;
echo "<a href=\"$PHP_SELF?page=$precedent\">PRECEDENT</a>";
}
$i=0;
$j=1;
if($nb_total>$limit) {
while($i<($nb_total/$limit)) {
if($i!=$page){echo "<a href=\"$PHP_SELF?page=$i\">$j</a> ";}
else { echo "<b>$j</b>";}
$i++;$j++;
}
}
if($debut+$limit<$nb_total) {
$suivant=$page+1;
echo "<a href=\"$PHP_SELF?page=$suivant\">SUIVANT</a>";
}
//Affichage le contenu de votre table
//avec une limite, dans l'exemple $limit est à 4
$limit_str = "LIMIT ". $page * $limit .",$limit";
$result = mysql_query("SELECT *, DATE_FORMAT(`date`, '%d/%m/%Y') as date_fr FROM pressearies ORDER BY identifiant DESC $limit_str" );
while ($row =mysql_fetch_array ($result) )
{
;
?>
<br>
</span><span class="Style2"><?php echo $donnees['titre']; ?> <?php echo $donnees['titraille']; ?></span><br>
<span class="Style5">Le <?php echo $donnees['date_fr']; ?>, <?php echo $donnees['journal']; ?> (<?php echo $donnees['rubrique']; ?> )</span><br>
<span class="Style3"><?php echo $donnees['resume']; ?></span><span class="Style9"></span><span class="Style8"><br>
<span class="Style3"><?php echo $donnees['auteur']; ?></span><br>
<span class="Style7"><?php echo "<a href=".$donnees['lien']." target="._blank.">".$donnees['lien']."</a>"; ?></span></span></div></td>
</tr>
<tr>
<td><div align="justify"><span class="Style8">
<?php
}
mysql_close();
?>
Message édité par maudus le 15-06-2007 à 15:55:22
met sa dans un .txt sur ton site et donne nous l'url car c'est franchement pas facile à regarder ici.
$result = mysql_query("SELECT *, DATE_FORMAT(`date`, '%d/%m/%Y') as date_fr FROM pressearies ORDER BY identifiant DESC $limit_str" );
while ($row =mysql_fetch_array ($result) )
{
;
?>
<br>
</span><span class="Style2"><?php echo $donnees['titre']; ?> <?php echo $donnees['titraille']; ?></span><br>
<span class="Style5">Le <?php echo $donnees['date_fr']; ?>, <?php echo $donnees['journal']; ?> (<?php echo $donnees['rubrique']; ?> )</span><br>
<span class="Style3"><?php echo $donnees['resume']; ?></span><span class="Style9"></span><span class="Style8"><br>
<span class="Style3"><?php echo $donnees['auteur']; ?></span><br>
<span class="Style7"><?php echo "<a href=".$donnees['lien']." target="._blank.">".$donnees['lien']."</a>"; ?></span></span></div></td>
</tr>
<tr>
<td><div align="justify"><span class="Style8">
<?php
}
mysql_close();
?>
salut je sais pas si ton pb viens de la g regardé vite mais dans ton while tu as $row=mysql_fetch_array et ensuite tu fais des echo $donnees[]
faudrait peut être mettre le même nom de variable...
salut,
désolée mais je ne peux pas vraiment donner l'url de mon site maintenant, il est en ligne pour que je bosse dessus mais c'est tout, il n'est pas sorti "officiellement"
@ confitureauxcochons :
ah oui merde j'ai complètement oublié de regarder par là quand j'ai changé mon code! (étourdie...) je regarde merci!
Alors effectivement j'ai changé le $donnees en $row et mes données s'affichent bien, mais maintenant le problème se situe au niveau du lien entre les pages, qui ne fonctionne pas du tout
pour un long code, tu peux le poster sur http://pastebin.archlinux.fr, ca permet d'avoir la colorisation et c'est plus lisible pour ceux qui t'aident.
et puis en indentant, ca facilite l'aide:
http://pastebin.archlinux.fr/1368
Penser à voir les tutos, ca peut aider!
Répondre à coca25
et si tu remplaces $_GET['essaipresselimit.php'] par $_GET['page'] ?
ah oui comme ca c'est beaucoup mieux effectivement...
Merci bcp!
de rien.
Bonjour,
J'ai un problème similaire à celui évoqué précedemment.
Je suis en train de développer un site commerce avec des produits et des catégories.
Sur ma page affichage, selon la recherche effectuée, on affiche pas la même chose.
J'ai utilisé la même méthode pour mon back office où laà j'affichais tous les produits, donc plus simple.
Et là, j'ai bien le bon nombre de produits qui s'affichent sur la première page mais quand je clique sur page 2, rien ne s'affiche. Et si je reclique sur 1, pareil....
Je vous mets mon code sur le site dont vous parliez
http://pastebin.archlinux.fr/2155
Message édité par ccsuperstar le 13-09-2007 à 14:28:20
Salut,
Fais voir ta fonction affichePages()
Répondre à OmaR
Là comme ça je ne vois pas le problème, est-ce que tu as le code généré ? Ou un lien vers ta page ?
Répondre à OmaR
Alors le lien vers mon site:
http://www.saachiweb.fr/stickhers/index.php
Si tu fais une recherche par genre et que tu choisis stickhers, normalement il y en a 3 et j'ai limité à 2, donc y'en a 2 qui s'affichent mais quand tu cliques sur 2, y'a rien et si tu reviens sur 1 y'a rien
je te remets le lien de mon fichier php car je l'ai modifié un peu
http://pastebin.archlinux.fr/2164
Quand j'ai fait une recherche pas genre sur les stickers, y'en a trois qui sont affichés...
Répondre à OmaR
oui j'ai remis la version dans la limitation de l'affichage...
Il y a 1372 utilisateurs connus et inconnus. Pour voir la liste des connectés connus, cliquez ici.
