
le 01/01/2012 à 20:27
speedylol
je mais une close where avec qui est passé cela me donne rien quelqu'un aurais une idée
qui à une idée svp
- <?php
- 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;
- }
- //finde la fonction paginations
- /***********************************************************************************************************************************************/
- include("sources/secuk.php");
- include("cssstyle/haut.php");
- $datejr= date("Y-m-d");
- // 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 comptes ';
- // 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 {
- echo '<table align="center"><tr><td><td>passage des membres</td></tr>';
- // 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 = 10;
- // Préparation de la requête avec le LIMIT
- $sql = 'SELECT nom, heurepass FROM comptes WHERE quipass='.$datejr.' ORDER BY heurepass ASC LIMIT '.$_GET['debut'].','.$nb_affichage_par_page;
- // on exécute la requête
- $req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());
- // on va scanner tous les tuples un par un
- while ($data = mysql_fetch_array($req)) {
- // on affiches les résultats dans la <table>
- echo '<tr><td><td>' , htmlentities(trim($data['nom'])) , '' , htmlentities(trim($data['heurepass'])) , ' </td></tr>';
- }
- // 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'], 3).'</span>';
- }
- // 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 ();
- echo '</table><br />';
- include("cssstyle/bas.php");
- ?>
qui à une idée svp