numero sur page

Avatar du membre
ViPHP
ViPHP | 3008 Messages

16 sept. 2005, 11:06

Colles moi ici le dernier code que tu utilises pour faire ces liens.

Utilises les balises pour qu'on voit mieux.

Avatar du membre
ViPHP
ViPHP | 3008 Messages

16 sept. 2005, 12:07

C'est résolu saxo2b ? Si c'est le cas, n'oublies pas le [résolu] ;)

Invité
Invité n'ayant pas de compte PHPfrance

16 sept. 2005, 12:12

non presque charabia regarde j'ai mis le code sur le site, tout marche sauf que je passe a la page 2 ok, je passe a la page 3 ok et quand je v retourner a la page 2 ou 1 y a un probleme ses se liens qui me pose probleme
echo '<a href="' . $_SERVER['SCRIPT_NAME'] . '?codefam='.$codefam.'&page='.($courant + 1).'"' . $i . '">' . $i . '</a>&nbsp;&nbsp;';

Avatar du membre
ViPHP
ViPHP | 3008 Messages

16 sept. 2005, 12:15

C'est donc ton code de retour qui pose un soucis. C'est pourtant dans la même logique...

Mets moi le code pour revenir à la page précédente que je vois.

Invité
Invité n'ayant pas de compte PHPfrance

16 sept. 2005, 12:16

le probleme aussi ses ke j'ai que 4 pages et il me met aussi le numero de page: 5 , j'aimerai que les numero s'arrete a 4. j'y suis presque grace a ton aide merci

Invité
Invité n'ayant pas de compte PHPfrance

16 sept. 2005, 12:18

 echo '<a href="' . $_SERVER['SCRIPT_NAME'] . '?codefam='.$codefam.'&page='. ($courant - 1) . '">Précédente</a>&nbsp;&nbsp;'; 
voila le code pour precedente

Avatar du membre
ViPHP
ViPHP | 3008 Messages

16 sept. 2005, 12:18

le plus simple serait de coller ton code ici. J'ai un peu de mal si je ne vois pas en gros ce que je dois voir...:p

Invité
Invité n'ayant pas de compte PHPfrance

16 sept. 2005, 12:21

<?
$nb_results_p_page = 2; // nombre de résultats par page 
$nb_avant = 4; // nombre de page avant la page courante 
$nb_apres = 5; // nombre de page après la page courante 
$premiere = 1; // aficher le lien "première page" (1 ou 0) 
$derniere = 0; // afficher le lien "dernière page" (1 ou 0) 
$courant = empty($_GET['page']) ? 1 : $_GET['page']; // page 
$start = ($courant - 1) * $nb_results_p_page; // start (requete mysql) 

 
					//if (!isset($debut)) $debut=0;
					$query="select * from famille where fam_code='$codefam'";
					$result=mysql_query($query);
					$fiche=mysql_fetch_object($result);
					$code=$fiche->fam_code;
					$nomf=$fiche->fam_nomf;
					$nomf=strtoupper($nomf);
					echo "<table border=1 width=572 cellpadding=5 cellspacing=0 align=left bordercolor=#993300>";
					echo "<tr><th colspan=10>$nomf";
					echo "<tr>";
					$result="select * from produit where pro_famille='$codefam' ORDER BY pro_date desc LIMIT $start, $nb_results_p_page";
					$res=mysql_query($result);
					$nb=mysql_num_rows($res);
					
					$i=0;
  					while ($i < $nb){
						$fiche=mysql_fetch_object($res);
						$code=$fiche->pro_code;
						$date=$fiche->pro_date;
						$dateentre=$fiche->pro_dateentre;
						$nom=$fiche->pro_nom;
						$desc=$fiche->pro_descriptif;
						$date=$fiche->pro_date;
						$famille=$fiche->pro_famille;
						$T=explode('-',$date);
						if ($i%1==0)
						$query2="SELECT COUNT(com_code) FROM commentaire WHERE com_produit=$code GROUP BY com_code";//affiche nbre de commentaire
						$result2=mysql_query($query2);
						$nbr2=mysql_num_rows($result2);
						echo "<tr>";
						echo "<td align=center>";
						echo "<table align=center border=1 cellepadding=0 cellspacing=0 bordercolor=#000000>";
						if (is_file("../../images/produit/$code.jpg"))
							echo "<td width=%><A href=javascript:PopupImage('../../images/produit/$code.jpg')><img src='../../images/produit/$code.jpg' height=50 border=0></a>";
							//echo "<td><a href='photo.php?code=$code' target='zoom'>						
						elseif (is_file("../../images/produit/$code.gif"))
							echo "<td width=%><A href=javascript:PopupImage('../../images/produit/$code.gif')><img src='../../images/produit/$code.gif' height=50 border=0></a>";
						else{
							echo "<b>Pas d'image</b>"; // pas d'image pour le produit
							}
							echo "<br>";
							echo "</table>";
							echo "<td width=80% align=center><font color=#993300><b>$nom</b><br></font>";
							echo "$desc<br>";
							echo "<font size=2>Date de Création:</font> <font size=2 color=#993300>$T[2]/$T[1]/$T[0]</font>";//ligne au dessus de l'image
							echo "<tr><td align=center colspan=2><font size=2><a href='ecrire_comm.php?code=$code&produit=$code&commentaire=$code'>Ajouter un Commentaire</a> ";
							$i++;
							if($nbr2>1)
							echo "<a href='lire_comm.php?produit=$code'> / $nbr2 Commentaires</a></font>";
							elseif($nbr2==1)
							echo "<a href='lire_comm.php?produit=$code'> / $nbr2 Commentaire</a></font>";
							else{
							echo "<font color=#993300 size=3> / $nbr2 Commentaire</a></font>";
						 
						}
			}
					
				

echo "<tr>
<td colspan=2 align=center>";
// comptage du nombre de lignes de la base 
$result = mysql_query("SELECT * FROM produit "); 
if(!$result) 
{ 
   // redirection erreur 
   header("location: erreur.php"); 
   exit; 
} 
$ret = mysql_fetch_array($result); 
// nombre de lignes 
$nb_results = $ret[0]; 
  
// exemple de requete 
$result = mysql_query("select * from produit where pro_famille='$codefam' ORDER BY pro_date desc LIMIT $start, $nb_results_p_page"); 
  
// nombre total de pages 
$nb_pages = ceil($nb_results / $nb_results_p_page); 
// nombre de pages avant 
$avant = $courant > ($nb_avant + 1) ? $nb_avant : $courant - 1; 
// nombre de pages après 
$apres = $courant <= $nb_pages - $nb_apres ? $nb_apres : $nb_pages - $courant; 
  
// première page 
if($premiere && $courant - $avant > 1) 
   echo '<a href="' . $_SERVER['SCRIPT_NAME'] . '?codefam='.$codefam.'">Première</a>&nbsp;&nbsp;'; 
    
// page précédente 
if($courant > 1) 
   echo '<a href="' . $_SERVER['SCRIPT_NAME'] . '?codefam='.$codefam.'&page='. ($courant - 1) . '">Précédente</a>&nbsp;&nbsp;'; 
  
// affichage des numéros de page 
for($i = $courant - $avant; $i <= $courant + $apres; $i++) 
{ 
   // page courante 
   if($i == $courant) 
      echo '<span style="color: #FF0000;">' . $i . '</span>&nbsp;&nbsp;'; 
   else 
      echo '<a href="' . $_SERVER['SCRIPT_NAME'] . '?codefam='.$codefam.'&page='.($courant + 1).'"' . $i . '">' . $i . '</a>&nbsp;&nbsp;'; 
} 
  
// page suivante 
if($courant < $nb_pages) 
   echo '<a href="' . $_SERVER['SCRIPT_NAME'] . '?codefam='.$codefam.'&page='.($courant + 1) . '">Suivante</a>&nbsp;&nbsp;'; 
    
if($derniere && $courant + $apres < $nb_pages) 
   echo '<a href="' . $_SERVER['SCRIPT_NAME'] . '?codefam='.$codefam.'"' . $derniere . '">Dernière</a>&nbsp;&nbsp;'; 



echo "</table>";
?>
[/php]

Eléphanteau du PHP | 18 Messages

16 sept. 2005, 13:45

je bloc sur le retour et sur le faite que j'ai 4 pages mais il me mes 15 pages

Eléphanteau du PHP | 18 Messages

16 sept. 2005, 13:51

le probleme aussi ses que quand je clic sur la pages 6 ou 5 ou 4 il m'affiche la page 2

Avatar du membre
ViPHP
ViPHP | 3008 Messages

16 sept. 2005, 14:45

En plus de ce code que tu as retravaillé, donnes moi le code initial que je puisse voir la différence entre les 2.

Eléphanteau du PHP | 18 Messages

16 sept. 2005, 14:50

probleme d'affichage du nombre exacte de page resolu, il me reste le retour avec les chiffre et l'avance et le faite qu'il m'affiche pas le liens derniere page

Eléphanteau du PHP | 18 Messages

16 sept. 2005, 14:52

$nb_results_p_page = 20; // nombre de résultats par page 
$nb_avant = 4; // nombre de page avant la page courante 
$nb_apres = 6; // nombre de page après la page courante 
$premiere = 1; // aficher le lien "première page" (1 ou 0) 
$derniere = 0; // afficher le lien "dernière page" (1 ou 0) 
$courant = empty($_GET['page']) ? 1 : $_GET['page']; // page 
$start = ($courant - 1) * $nb_results_p_page; // start (requete mysql) 
  
// comptage du nombre de lignes de la base 
$result = mysql_query("SELECT count(id) FROM table"); 
if(!$result) 
{ 
   // redirection erreur 
   header("location: erreur.php"); 
   exit; 
} 
$ret = mysql_fetch_array($result); 
// nombre de lignes 
$nb_results = $ret[0]; 
  
// exemple de requete 
$result = mysql_query("SELECT * FROM table LIMIT $start, $nb_results_p_page"); 
  
// nombre total de pages 
$nb_pages = ceil($nb_results / $nb_results_p_page); 
// nombre de pages avant 
$avant = $courant > ($nb_avant + 1) ? $nb_avant : $courant - 1; 
// nombre de pages après 
$apres = $courant <= $nb_pages - $nb_apres ? $nb_apres : $nb_pages - $courant; 
  
// première page 
if($premiere && $courant - $avant > 1) 
   echo '<a href="' . $_SERVER['SCRIPT_NAME'] . '">Première</a>&nbsp;&nbsp;'; 
    
// page précédente 
if($courant > 1) 
   echo '<a href="' . $_SERVER['SCRIPT_NAME'] . '?page=' . ($courant - 1) . '">Précédente</a>&nbsp;&nbsp;'; 
  
// affichage des numéros de page 
for($i = $courant - $avant; $i <= $courant + $apres; $i++) 
{ 
   // page courante 
   if($i == $courant) 
      echo '<span style="color: #FF0000;">' . $i . '</span>&nbsp;&nbsp;'; 
   else 
      echo '<a href="' . $_SERVER['SCRIPT_NAME'] . '?page=' . $i . '">' . $i . '</a>&nbsp;&nbsp;'; 
} 
  
// page suivante 
if($courant < $nb_pages) 
   echo '<a href="' . $_SERVER['SCRIPT_NAME'] . '?page=' . ($courant + 1) . '">Suivante</a>&nbsp;&nbsp;'; 
    
if($derniere && $courant + $apres < $nb_pages) 
   echo '<a href="' . $_SERVER['SCRIPT_NAME'] . '?page=' . $nb_pages . '">Dernière</a>&nbsp;&nbsp;'; 

Eléphanteau du PHP | 18 Messages

16 sept. 2005, 14:55

dernier code avec sa tout marche sauf retour avec chiffres et quand tu clic sur 4 ou 5 il va a la page 2
$nb_results_p_page = 2; // nombre de résultats par page 
$nb_avant = 4; // nombre de page avant la page courante 
$nb_apres = 5; // nombre de page après la page courante 
$premiere = 1; // aficher le lien "première page" (1 ou 0) 
$derniere = 0; // afficher le lien "dernière page" (1 ou 0) 
$courant = empty($_GET['page']) ? 1 : $_GET['page']; // page 
$start = ($courant - 1) * $nb_results_p_page; // start (requete mysql) 

 
					//if (!isset($debut)) $debut=0;
					$query="select * from famille where fam_code='$codefam '";
					$result=mysql_query($query);
					$fiche=mysql_fetch_object($result);
					$code=$fiche->fam_code;
					$nomf=$fiche->fam_nomf;
					$nomf=strtoupper($nomf);
					echo "<table border=1 width=572 cellpadding=5 cellspacing=0 align=left bordercolor=#993300>";
					echo "<tr><th colspan=10>$nomf";
					echo "<tr>";
					$result="select * from produit where pro_famille='$codefam' ORDER BY pro_date desc LIMIT $start, $nb_results_p_page";
					$res=mysql_query($result);
					$nb=mysql_num_rows($res);
					
					$i=0;
  					while ($i < $nb){
						$fiche=mysql_fetch_object($res);
						$code=$fiche->pro_code;
						$date=$fiche->pro_date;
						$dateentre=$fiche->pro_dateentre;
						$nom=$fiche->pro_nom;
						$desc=$fiche->pro_descriptif;
						$date=$fiche->pro_date;
						$famille=$fiche->pro_famille;
						$T=explode('-',$date);
						if ($i%1==0)
						$query2="SELECT COUNT(com_code) FROM commentaire WHERE com_produit=$code GROUP BY com_code";//affiche nbre de commentaire
						$result2=mysql_query($query2);
						$nbr2=mysql_num_rows($result2);
						echo "<tr>";
						echo "<td align=center>";
						echo "<table align=center border=1 cellepadding=0 cellspacing=0 bordercolor=#000000>";
						if (is_file("../../images/produit/$code.jpg"))
							echo "<td width=%><A href=javascript:PopupImage('../../images/produit/$code.jpg')><img src='../../images/produit/$code.jpg' height=50 border=0></a>";
							//echo "<td><a href='photo.php?code=$code' target='zoom'>						
						elseif (is_file("../../images/produit/$code.gif"))
							echo "<td width=%><A href=javascript:PopupImage('../../images/produit/$code.gif')><img src='../../images/produit/$code.gif' height=50 border=0></a>";
						else{
							echo "<b>Pas d'image</b>"; // pas d'image pour le produit
							}
							echo "<br>";
							echo "</table>";
							echo "<td width=80% align=center><font color=#993300><b>$nom</b><br></font>";
							echo "$desc<br>";
							echo "<font size=2>Date de Création:</font> <font size=2 color=#993300>$T[2]/$T[1]/$T[0]</font>";//ligne au dessus de l'image
							echo "<tr><td align=center colspan=2><font size=2><a href='ecrire_comm.php?code=$code&produit=$code&commentaire=$code'>Ajouter un Commentaire</a> ";
							$i++;
							if($nbr2>1)
							echo "<a href='lire_comm.php?produit=$code'> / $nbr2 Commentaires</a></font>";
							elseif($nbr2==1)
							echo "<a href='lire_comm.php?produit=$code'> / $nbr2 Commentaire</a></font>";
							else{
							echo "<font color=#993300 size=3> / $nbr2 Commentaire</a></font>";
						 
						}
			}
					
				

echo "<tr>
<td colspan=2 align=center>";
// comptage du nombre de lignes de la base 
$result = mysql_query("select COUNT(pro_code) from produit where pro_famille='$codefam'"); 
if(!$result) 
{ 
   // redirection erreur 
   header("location: erreur.php"); 
   exit; 
} 
$ret = mysql_fetch_array($result); 
// nombre de lignes 
$nb_results = $ret[0]; 
  
// exemple de requete 
//$result = mysql_query("select * from produit where pro_famille='$codefam' ORDER BY pro_date desc LIMIT '$start','$nb_results_p_page'"); 
  
// nombre total de pages 
$nb_pages = ceil($nb_results / $nb_results_p_page); 
// nombre de pages avant 
$avant = $courant > ($nb_avant + 1) ? $nb_avant : $courant - 1; 
// nombre de pages après 
$apres = $courant <= $nb_pages - $nb_apres ? $nb_apres : $nb_pages - $courant; 
  
// première page 
if($premiere && $courant - $avant > 1) 
   echo '<a href="' . $_SERVER['SCRIPT_NAME'] . '?codefam='.$codefam.'">Première</a>&nbsp;&nbsp;'; 
    
// page précédente 
if($courant > 1) 
   echo '<a href="' . $_SERVER['SCRIPT_NAME'] . '?codefam='.$codefam.'&page='. ($courant - 1) . '">Précédente</a>&nbsp;&nbsp;'; 
  
// affichage des numéros de page 
for($i = $courant - $avant; $i <= $courant + $apres; $i++) 
{ 

// page courante 
   if($i == $courant) 
      echo '<span style="color: #FF0000;">' . $i . '</span>&nbsp;&nbsp;'; 
   else 
      echo '<a href="' . $_SERVER['SCRIPT_NAME'] . '?codefam='.$codefam.'&page='.($courant + 1) .'"' . $i . '">' . $i . '</a>&nbsp;&nbsp;'; 
} 
  
// page suivante 
if($courant < $nb_pages) 
   echo '<a href="' . $_SERVER['SCRIPT_NAME'] . '?codefam='.$codefam.'&page='.($courant + 1) . '">Suivante</a>&nbsp;&nbsp;'; 
    
if($derniere && $courant + $apres < $nb_pages) 
   echo '<a href="' . $_SERVER['SCRIPT_NAME'] . '?codefam='.$codefam.'&page='. ($derniere) . '">Dernière</a>&nbsp;&nbsp;'; 



echo "</table>";

Eléphanteau du PHP | 18 Messages

16 sept. 2005, 15:00

le liens des chiffre il avance toujours de 1 page n'importe quelle chiffre que tu tape a cause de
($courant + 1)
faut pas mettre que +1 je cherche quoi je trouve pas