Accueil > Forum > > > > problème d'affichage par page
problème d'affichage par page
mardi 29 août 2006 à 12:01:54 |
problème d'affichage par page

01cod10
|
Salut à tous
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 (); ?>
|
|
Cette discussion est classée dans : page, barre, echo, nb, cpt
Répondre à ce message
Sujets en rapport avec ce message
url rewriting et nombre de pages d'une requete [ par arnold002 ]
Bonjour ¨¤ tous,Je viens de me lancer dans la r¨¦¨¦criture d'URL pour augmenter l'indexation de mes pages sur les moteurs de recherche.J'utilise le mo
aide pour affichage galerie [ par speedylol ]
bonjour voila mon probléme id_gal est le speudo du membre qui introduit sa galerie et j'aimerais l'afficher une seule fois dans ma liste de galerie .
Garder la trace d 'une session [ par younes371 ]
Bonjour, moi j'ai un script qui affiche des données sur plusieurs pages, voilà ma page :session_start(); // Démarage de la session OBLIGATOIRE if (iss
sortie une seule fois un double champs d'une table [ par speedylol ]
bonjour voici mon probléme, j ai une liste de membres qui depose leur galerie dans la table galerie avec id_gal qui est egale au membre, j'aimerais l'
Problème dans ma recherche [ par R3dDragon ]
Bonjour, voilà j'ai un petit problème, j'ai crée un petit moteur de recherche pour mon site, celui-ci fouille la base de donnée et affiche les résulta
Problème de pagination [ par goboben ]
Bonjour à tous!Voila mon problème, qui n'est pas insurmontable mais bien embetant...J'ai crée un diaporama avec affichage par page (precedente 1 2 3 4
Problème de pagination [ par speedylol ]
Bonjour , j 'ai une petit problème avec ma pagination , depuis que je l'est rajouté mais donnée qui son dans ma base ne son plus extraite et je vois p
Ouvrir résultat dans une popup [ par ssi ]
Hello à tous, voici mon problèmej'ai un petit moteur de recherche qui m'affiche des lienset lorsque je clique dessus cela doit m'ouvrir une popuavec
tjs mon probleme d'affichage page par par page!!!! [ par piervs ]
Salut,Je vous avez deja poster ce message mais n'ayant tjs pas eu de solution fonctionnant je retente ma chance!!!J'ai un petit (en fait plutot gros)
HELP CODAGE / Affichage différent selon résultats requête [ par wynelle ]
Bonjour à tous,Et une galère de plus J'ai une base de données plutôt simple avec les champs classiques (Nom, Prénom, Rue, ...., Premium).J'aimerais lo
Livres en rapport
|
Derniers Blogs
ROSLYN FLUENT APIS: ROSLYNHELPER NUGET PACKAGEROSLYN FLUENT APIS: ROSLYNHELPER NUGET PACKAGE par Matthieu MEZIL
Si vous utilisez Roslyn et que vous vous voulez vous simplifier le code du code rewriter, je vous conseille d'installer mon NuGet package RoslynHelper ....(read more) ...
Cliquez pour lire la suite de l'article par Matthieu MEZIL POUR RAPPEL ! LES SPéCIFICATIONS DES PROTOCOLES OFFICE ET SHAREPOINT SONT DISPONIBLES SUR MSDNPOUR RAPPEL ! LES SPéCIFICATIONS DES PROTOCOLES OFFICE ET SHAREPOINT SONT DISPONIBLES SUR MSDN par neodante
Quelle est le point commun entre : Microsoft il y a 10 ans et Apple aujourd'hui ? Réponse: avoir une politique de protocoles propriétaires et fermés :) Car pour rappel (si si je vous assure c'est important de le rappeler), la majorité des spécifications e...
Cliquez pour lire la suite de l'article par neodante JOYEUX ANNIVERSAIRE NIXJOYEUX ANNIVERSAIRE NIX par ebartsoft
Souhaitons un bon et joyeux anniversaire à notre hôte à tous, Nix.
Je ne le répéterais jamais assez mais sans lui rien ne serait possible. Il défit en permanence les lois de la gravité et comme il le dit si bien, si tu lui fais confiance ça devra...
Cliquez pour lire la suite de l'article par ebartsoft IMAGINE CUP 2012, MAKE A SIGN EN FINALEIMAGINE CUP 2012, MAKE A SIGN EN FINALE par junarnoalg
Voilà qui est fait, la nouvelle est officielle ! L'équipe belge "Make a Sign" va au pays des kangourous défendre son projet dans la catégorie Software Design. http://www.imaginecup.com/CompetitionsContent/Competition/WorldwideFinalists.aspx V...
Cliquez pour lire la suite de l'article par junarnoalg KINECT 1.5 IS OUT !KINECT 1.5 IS OUT ! par Vko
La version 1.5 du Kinect For Microsoft vient tout juste de sortir ! Plein de nouveautés: Tracking de squelette en Near Mode Détection en position assise Détection faciale avec un SDK dédié Documentation et des guideline (enfin) Un out...
Cliquez pour lire la suite de l'article par Vko
Logiciels
sDEVIS-FACTURES vlPRO (8.1.0.3)SDEVIS-FACTURES VLPRO (8.1.0.3)sDEVIS-FACTURES vlPRO a été mis au point pour les particuliers, créateurs, entrepreneurs, artisa... Cliquez pour télécharger sDEVIS-FACTURES vlPRO 974 Application Server (12.2.4.6)974 APPLICATION SERVER (12.2.4.6)Développez de puissantes applications dans un environnement de 'cloud computing', clusterisé, séc... Cliquez pour télécharger 974 Application Server vPicture (1.4.2.1)VPICTURE (1.4.2.1)Avec vPicture, hébergez vos images facilement et rapidement.
vPicture est un utilitaire simple, ... Cliquez pour télécharger vPicture Easy-Planning (2.2.1.6)EASY-PLANNING (2.2.1.6)Easy-Planning permet de créer des plannings sous la représentation de diagrammes et est adapté au... Cliquez pour télécharger Easy-Planning COM-BACKUP (2.0)COM-BACKUP (2.0)
COM-BACKUP est un logiciel de sauvegarde qui permet de planifier les sauvegardes de vos dossiers ...
Cliquez pour télécharger COM-BACKUP
|