La première page s'affiche correctement mais qd je clique sur 2 rien ne s'affiche
<?
function barre_navigation ( $nb_total ,
$nb_affichage_par_page ,
$debut ,
$nb_liens_dans_la_barre ) {
$barre = '' ;
// on recherche l'URL courante munie de ses paramètre auxquels on ajoute le paramètre 'debut' qui jouera le role du premier élément de notre LIMIT
if ( $_SERVER [ 'QUERY_STRING' ] == "" ) {
$query = $_SERVER [ 'PHP_SELF' ]. '?debut=' ;
}
else {
$tableau = explode ( "debut=" , $_SERVER [ 'QUERY_STRING' ]);
$nb_element = count ( $tableau );
if ( $nb_element == 1 ) {
$query = $_SERVER [ 'PHP_SELF' ]. '?' . $_SERVER [ 'QUERY_STRING' ]. '&debut=' ;
}
else {
if ( $tableau [ 0 ] == "" ) {
$query = $_SERVER [ 'PHP_SELF' ]. '?debut=' ;
}
else {
$query = $_SERVER [ 'PHP_SELF' ]. '?' . $tableau [ 0 ]. 'debut=' ;
}
}
}
// on calcul le numéro de la page active
$page_active = floor (( $debut / $nb_affichage_par_page )+ 1 );
// on calcul le nombre de pages total que va prendre notre affichage
$nb_pages_total = ceil ( $nb_total / $nb_affichage_par_page );
// on calcul le premier numero de la barre qui va s'afficher, ainsi que le dernier ($cpt_deb et $cpt_fin)
// exemple : 2 3 4 5 6 7 8 9 10 11 << $cpt_deb = 2 et $cpt_fin = 11
if ( $nb_liens_dans_la_barre % 2 == 0 ) {
$cpt_deb1 = $page_active - ( $nb_liens_dans_la_barre / 2 )+ 1 ;
$cpt_fin1 = $page_active + ( $nb_liens_dans_la_barre / 2 );
}
else {
$cpt_deb1 = $page_active - floor (( $nb_liens_dans_la_barre / 2 ));
$cpt_fin1 = $page_active + floor (( $nb_liens_dans_la_barre / 2 ));
}
if ( $cpt_deb1 <= 1 ) {
$cpt_deb = 1 ;
$cpt_fin = $nb_liens_dans_la_barre ;
}
elseif ( $cpt_deb1 > 1 && $cpt_fin1 < $nb_pages_total ) {
$cpt_deb = $cpt_deb1 ;
$cpt_fin = $cpt_fin1 ;
}
else {
$cpt_deb = ( $nb_pages_total - $nb_liens_dans_la_barre )+ 1 ;
$cpt_fin = $nb_pages_total ;
}
if ( $nb_pages_total <= $nb_liens_dans_la_barre ) {
$cpt_deb = 1 ;
$cpt_fin = $nb_pages_total ;
}
// si le premier numéro qui s'affiche est différent de 1, on affiche << qui sera un lien vers la premiere page
if ( $cpt_deb != 1 ) {
$cible = $query .( 0 );
$lien = '<A HREF="' . $cible . '"><<</A> ' ;
}
else {
$lien = '' ;
}
$barre .= $lien ;
// on affiche tous les liens de notre barre, tout en vérifiant de ne pas mettre de lien pour la page active
for ( $cpt = $cpt_deb ; $cpt <= $cpt_fin ; $cpt ++) {
if ( $cpt == $page_active ) {
if ( $cpt == $nb_pages_total ) {
$barre .= $cpt ;
}
else {
$barre .= $cpt . ' - ' ;
}
}
else {
if ( $cpt == $cpt_fin ) {
$barre .= "<A HREF='" . $query .(( $cpt - 1 )* $nb_affichage_par_page );
$barre .= "'>" . $cpt . "</A>" ;
}
else {
$barre .= "<A HREF='" . $query .(( $cpt - 1 )* $nb_affichage_par_page );
$barre .= "'>" . $cpt . "</A> - " ;
}
}
}
$fin = ( $nb_total - ( $nb_total % $nb_affichage_par_page ));
if (( $nb_total % $nb_affichage_par_page ) == 0 ) {
$fin = $fin - $nb_affichage_par_page ;
}
// si $cpt_fin ne vaut pas la dernière page de la barre de navigation, on affiche un >> qui sera un lien vers la dernière page de navigation
if ( $cpt_fin != $nb_pages_total ) {
$cible = $query . $fin ;
$lien = ' <A HREF="' . $cible . '">>></A>' ;
}
else {
$lien = '' ;
}
$barre .= $lien ;
return $barre ;
}
$BD_serveur = "localhost" ;
$BD_utilisateur = "root" ;
$BD_motDePasse = "" ;
$BD_base = "base" ;
$description = isset( $_POST [ "description" ]) ? $_POST [ "description" ] : "" ;
$typevent = isset( $_POST [ "typevent" ]) ? $_POST [ "typevent" ] : "" ;
$ville = isset( $_POST [ "ville" ]) ? $_POST [ "ville" ] : "" ;
$date = "" ;
@ mysql_pconnect ( $BD_serveur , $BD_utilisateur , $BD_motDePasse )
or die( "Impossible de se connecter au serveur de bases de données." );
@ mysql_select_db ( $BD_base )
or die( "Impossible de se connecter à la base de données." );
// on prépare une requête permettant de calculer le nombre total d'éléments qu'il faudra afficher sur nos différentes pages
$sql = 'SELECT count(*) FROM event' ;
// on exécute cette requête
$resultat = mysql_query ( $sql ) or die( 'Erreur SQL !<br />' . $sql . '<br />' . mysql_error ());
// on récupère le nombre d'éléments à afficher
$nb_total = mysql_fetch_array ( $resultat );
// on teste si ce nombre de vaut pas 0
if (( $nb_total = $nb_total [ 0 ]) == 0 ) {
echo 'Aucune réponse trouvée' ;
}
else {
// sinon, on regarde si la variable $debut (le x de notre LIMIT) n'a pas déjà été déclarée, et dans ce cas, on l'initialise à 0
if (!isset( $_GET [ 'debut' ])) $_GET [ 'debut' ] = 0 ;
$nb_affichage_par_page = 3 ;
// Préparation de la requête avec le LIMIT
$sql = "SELECT id,description,lieu,ville,prix,DATE_FORMAT(date, '%d-%m-%Y') as dateevent FROM event WHERE ville='$ville' AND ORDER BY ville ASC
LIMIT " . $_GET [ 'debut ' ]. ", " . $nb_affichage_par_page ";
//ORDER BY id ASC LIMIT '.$_GET['debut'].','.$nb_affichage_par_page;
// on envoie la requête
$req = mysql_query ($sql) or die('Erreur SQL !<br>'.$sql.'<br>'. mysql_error ());
if($req) {
echo '<table border=" 0 " bgcolor="">'." n ";
// on fait une boucle qui va faire un tour pour chaque enregistrement
while($row = mysql_fetch_array ($req)) {
echo '<tr>';
echo '<td colspan=" 3 "><font face=" Verdana , Arial , Helvetica , sans - serif " color=" #000000" size="+3"><strong>Evènements à :</font><font face="Verdana, Arial, Helvetica, sans-serif" color="#0000FF" size="+3"> '.$ville.'</strong></font></td>';
echo '</tr>' ;
echo '<tr>' ;
echo '<td></td>' ;
echo '<td><font face="Verdana, Arial, Helvetica, sans-serif" color="#0000FF" size="+1"><b>Description :</font></b></td>' ; echo '<td><font face="Verdana, Arial, Helvetica, sans-serif" color="#000000" size="+2"><strong>' . $row [ "description" ]. '</strong></font></td>' ;
echo '</tr>' ;
echo '<tr>' ;
echo '<td></td>' ;
echo '<td><font face="Verdana, Arial, Helvetica, sans-serif" color="#0000FF" size="+1"><b>Lieu: </font></b></td>' ; echo '<td><font face="Verdana, Arial, Helvetica, sans-serif" color="#000000" size="+1">' . $row [ "lieu" ]. '</font></td>' ;
echo '</tr>' ;
echo '<tr>' ;
echo ' <td></td>' ;
echo '<td></td>' ;
echo '</tr>' ;
echo '<tr>' ;
echo '<td></td>' ;
echo '<td><font face="Verdana, Arial, Helvetica, sans-serif" color="#0000FF" size="+1"><b>Date :</font></b></td>' ; echo '<td><font face="Verdana, Arial, Helvetica, sans-serif" color="#000000" size="+1">' . $row [ "dateevent" ]. '</font></td>' ;
echo '</tr>' ;
echo '<tr>' ;
echo '<td></td>' ;
echo '<td><font face="Verdana, Arial, Helvetica, sans-serif" color="#0000FF" size="+1"><b>Entrée:</font></b></td>' ; echo '<td><font face="Verdana, Arial, Helvetica, sans-serif" color="#000000" size="+1">' . $row [ "prix" ]. ' Euros</font></td>' ;
echo '<td></td>' ;
echo '</tr>' ;
}
echo '</table>' . "\n" ;
}
// on libère l'espace mémoire alloué pour cette requête
mysql_free_result ( $req );
echo '</table><br />' ;
// on affiche enfin notre barre
echo '<span class="gras">' . barre_navigation ( $nb_total , $nb_affichage_par_page , $_GET [ 'debut' ], 2 ). '</span>' ;
}
else
{
echo "pas d'évènement" ;
}
}
// on libère l'espace mémoire alloué pour cette requête
mysql_free_result ( $resultat );
// on ferme la connexion à la base de données.
mysql_close ();
?>