Gestion de la navigation par jour avec nombre d'affichage limité svp

Gestion de la navigation par jour avec nombre d'affichage limité svp - PHP - Programmation

Marsh Posté le 04-04-2007 à 12:44:28    

Bonjour à tous,  
 
Je développe un site perso qui rentre dans le cadre d'un projet pour l'école, le voici :  
http://info14.ovh.org/index.php?menu=astuces
 
J'arrive à afficher 5 astuces via la fonction LIMIT mais j'aimerais avec accès aux autres avec des liens  
 
du style précédent.1.2.3.4.5.6.suivant
 
Je pense que je suis dans un cas difficile et ca serait vraiment génial si vous pouviez me guider pas à pas car je débute dans le dev.
 
Voici le code de la page astuces.php
 
Merci d'avance :
 

Citation :

<p class="arborescence">
<a href="index.php?menu=">ACCUEIL > </a><a href="index.php?menu=astuces">ASTUCES</a></p>
 
<br />
<?php
  include ('fonctions/connect_sql.inc.php');
   
  // Si la valeur voir_article n'est pas envoyée, on  affiche le tableau des articles.
   
  if (!$_GET['voir_astuce']) {
   $requete = "SELECT * FROM astuce ORDER BY id_astuce DESC LIMIT 5";
   $query = mysql_query($requete) or die ($msg_error);
   
   while ($ligne = mysql_fetch_object($query)){
    echo '<p class="p_presentation"><a href="index.php?menu=astuces&voir_astuce=ok&id='.$ligne->id_astuce.'">'.$ligne->titre_astuce.' - Posté le '.$ligne->date_astuce.'</p>';
   }
  }
   
  // Sinon, si voir_articles est envoyé, on affiche seulement l'astuce
   
  elseif ($_GET['voir_astuce']) {
   $id = $_GET['id'];
   
   $requete = "SELECT * FROM astuce WHERE id_astuce='$id'";
   $query = mysql_query($requete);
   
   if($ligne = mysql_fetch_object($query)){
    echo '<p class="p_presentation">'.$ligne->titre_astuce.'</p>';
    echo '<p class="p_presentation">'.$ligne->contenu_astuce.'</p>';
   }
  }
   mysql_close();
?>


Message édité par StrAtoS14200 le 04-04-2007 à 13:15:48
Reply

Marsh Posté le 04-04-2007 à 12:44:28   

Reply

Marsh Posté le 04-04-2007 à 13:10:52    

J'ai ajouté les liens Précédent et suivant avant 1 il y a pas précédent donc ca c'est bon par contre le lien suivant ne s'arrete pas même si il n'y a plus d'astuces... voilà le code modifié :
 

Citation :

<p class="arborescence">
<a href="index.php?menu=">ACCUEIL > </a><a href="index.php?menu=astuces">ASTUCES</a></p>
 
<br />
<?php
  include ('fonctions/connect_sql.inc.php');
   
  // Si la valeur voir_article n'est pas envoyée, on  affiche le tableau des articles.
   
  if (!$_GET['voir_astuce']) {
   $requete = "SELECT * FROM astuce ORDER BY id_astuce DESC LIMIT 5";
   $query = mysql_query($requete) or die ($msg_error);
   
   while ($ligne = mysql_fetch_object($query)){
    echo '<p class="p_presentation"><a href="index.php?menu=astuces&voir_astuce=ok&id='.$ligne->id_astuce.'">'.$ligne->titre_astuce.' - Posté le '.$ligne->date_astuce.'</p>';
   }
  }
   
  // Sinon, si voir_articles est envoyé, on affiche seulement l'astuce
   
  elseif ($_GET['voir_astuce']) {
   $id = $_GET['id'];
   
   $requete = "SELECT * FROM astuce WHERE id_astuce='$id'";
   $query = mysql_query($requete);
   
   if($ligne = mysql_fetch_object($query)){
    echo '<p class="p_presentation">'.$ligne->titre_astuce.'</p>';
    echo '<p class="p_presentation">'.$ligne->contenu_astuce.'</p>';
   }
     echo '<br>';
   
      if ($ligne->id_astuce > 1)
      {
      $id = $ligne->id_astuce - 1 ;
       echo '<p class="p_presentation"><a href="index.php?menu=astuces&voir_astuce=ok&id='.$id.'"> astuce précédent </p>';
      $id = $ligne->id_astuce + 1 ;
       echo '<p class="p_presentation"><a href="index.php?menu=astuces&voir_astuce=ok&id='.$id.'"> astuce suivant </p>';
      }
      else  
      {
      $id = $ligne->id_astuce + 1 ;
       echo '<p class="p_presentation"><a href="index.php?menu=astuces&voir_astuce=ok&id='.$id.'"> astuce suivant </p>';
      }  
  }  
   mysql_close();


Message édité par StrAtoS14200 le 04-04-2007 à 13:11:12
Reply

Marsh Posté le 04-04-2007 à 13:14:21    

En faite j'aimerais avoir un résultat qui donne ca : http://www.jeuxvideo.fr/actu-0-0-0 [...] -rev-.html
 
gestion des astuces et articles avec gestion par jour + bouttons précédent et suivant...  
 
J'arrete de poster je vous attends :)

Reply

Marsh Posté le 04-04-2007 à 20:25:10    

Tu peux compter le nombres d'éléments dans ta table avec un COUNT() pour savoir combien il y en a exactement. Ou même prendre tout le contenu de table et faire un **_num_rows() pour savoir combien de résultats tu as et mettre la limite dans ton code php.
 
Une fois que tu sais combien tu as de lignes dans ta table ya plus vraiment de difficulté puisque
N°Page x Nb Elements/Page = Le Numero du dernier affiché
 
et donc si c'est égale au nombre total d'éléments c'est qu'il n'est pas nécessaire d'afficher le lien "suivant".
 
Si tu veux te contenter d'afficher "Précédent" et ésuivant" sans aucun lien vers d'autres pages au milieu, tu peux aussi te contenter de mettre un LIMIT +1 dans ta requête. Pour savoir si tu dois afficher "suivant", il te suffit de vérifier s'il y à un élément de plus que ta limite.


---------------
-- Debian -- Le système d'exploitation universel | Le gras c'est la vie! | /(bb|[^b]{2})/
Reply

Marsh Posté le 05-04-2007 à 00:34:38    

OK je vais tester ca merci

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed