begin process at 2012 05 31 06:41:26
  Trouver un code source :
 
dans
 
Accueil > Forum > 

PHP

 > 

Divers

 > 

Débutant(e)

 > 

problème d'affichage par page


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

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 > &&  $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 . '">&lt;&lt;</A>&nbsp;&nbsp;'
;
    }
    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 . '&nbsp;-&nbsp;'
;
            }
        }
        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>&nbsp;-&nbsp;"
;
            }
        }
    }
    
    
$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  '&nbsp;&nbsp;<A HREF="' . $cible . '">&gt;&gt;</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


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,764 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales