begin process at 2012 02 12 10:12:11
  Trouver un code source :
 
dans
 
Accueil > Forum > 

PHP

 > 

Base de données

 > 

MySQL

 > 

url rewriting et nombre de pages d'une requete


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

url rewriting et nombre de pages d'une requete

mardi 8 août 2006 à 16:58:11 | url rewriting et nombre de pages d'une requete

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 mod_rewrite d'apache.
Tout fonctionne correctement mais je rencontre un probl??me dans cette situation :

J'ai une page de news, qui r?|cup??re les donn?|es contenues dans ma BDD. J'ai 100 news au total.
L'URL initiale est ../news.php?sujet=12
En mod_rewrite, cela donne ../news-12.html
Jusqu'ici tout fonctionne.
Sur ma page news, je ne veux pas afficher les 100 news mais seulement 10 et afficher un lien vers la page suivante.
Cela donne ../news.php?sujet=12&debut=10 pour la page 2, ..&debut=20 pour la page 3 etc...
La fonction d'affichage page par page est une fonction toute faite trouv?|e sur internet, que j'utilise pour toutes mes requ?ºtes.
Les liens vers les pages pr?|c?|dentes et suivantes sont g?|n?|r?|s automatiquement ?? partir de l'url de la page courante, et sont de la forme $query = $_SERVER['PHP_SELF'].&debut=

Je voudrai transformer cette URL pour obtenir ../news-12-20.html (id news=12 et debut affichage=20) mais je n'arrive pas ?? transformer la fonction.

Voici la fonction d'affichage compl??te.
Merci de votre aide

function

barre_navigation($nb_total,$nb_affichage_par_page,$debut,$nb_liens_dans_la_barre){
$barre='';

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=';
}
}
}

$page_active=floor(($debut/$nb_affichage_par_page)+1);
$nb_pages_total=ceil($nb_total/$nb_affichage_par_page);

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;
}
echo'<div style="float:left; width:240px; text-align:left; height:20px;">';
echo'Page&nbsp;'.$page_active;
echo'</div>';

if($cpt_deb!=1){
$cible
=$query.(0);
$lien
='<A HREF="'.$cible.'"><img src="../images/prec_white.gif" border="0" width="5" height="10" alt="Premi§Úre page"><img src="../images/prec_white.gif" border="0" width="5" height="10" alt="Premi§Úre page"></A>&nbsp;&nbsp;';
}
else{
$lien
='';
}
$barre
.=$lien;

for($cpt=$cpt_deb;$cpt<=$cpt_fin;$cpt++){
if($cpt==$page_active){
if($cpt==$nb_pages_total){
$barre
.="".$cpt."";
}
else{
$barre
.="".$cpt."&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;";
}
}
}

$fin
=($nb_total-($nb_total%$nb_affichage_par_page));
if(($nb_total%$nb_affichage_par_page)==0){
$fin
=$fin-$nb_affichage_par_page;
}

if($cpt_fin!=$nb_pages_total){
$cible
=$query.$fin;
$lien
='&nbsp;&nbsp;<A HREF="'.$cible.'"><img src="../images/suiv_white.gif" border="0" width="5" height="10" alt="Derni§Úre page"><img src="../images/suiv_white.gif" border="0" width="5" height="10" alt="Derni§Úre page"></A>';
}
else{
$lien
='';
}
$barre
.=$lien;
echo'<div style="float:right; width:130px; text-align:right; height:20px;">';
echo$nb_total.'&nbsp;r§Ûsultats&nbsp;-&nbsp;'.$nb_pages_total.'&nbsp;pages';
echo'</div>';

return$barre;
}


mercredi 9 août 2006 à 14:56:49 | Re : url rewriting et nombre de pages d'une requete

arnold002

Bonjour,

En cherchant un peu, j'ai finalement réussi à bidouiller cette fonction pour arriver à ce que je voulais en faire.

Me voilà confronter à un nouveau problème.... la gestion des variables par GET ou POST

Sur des liens statiques, pas de problèmes
Je ne vois pas comment faire pour des formulaires en GET ou POST
J'ai un moteur de recherche qui me permet de rechercher des mots particuliers dans des recettes.
Auparavant, je passais ces variables par l'url.
avec l'url rewriting, comment peut on faire ? 



Cette discussion est classée dans : page, barre, nb, total, cpt


Répondre à ce message

Sujets en rapport avec ce message

problème d'affichage par page [ par 01cod10 ] Salut à tousLa première page s'affiche correctement mais qd je clique sur 2 rien ne s'affiche <span style= 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 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 pagination formulaire [ par raouen ] je suis entrain de travailler avec un système de pagination simple que je l'applique pour afficher une liste de formulaire de ma table mysql ;il m'aff aide conserver variable avec pagination [ par kilvan90 ] bonjourdonc voila j'ai fais une page ou on fait une rechecher et apres une pagination pour afficher les resultats de la recherche page par pagela requ probleme pagination avec plusieur requet sql [ par dpk1 ] bonjour à tous, je suis débutant autodidacte et je fais mon premier site en php. voila j'ai une pagination que j"ai repris qui fonctionne très bien l Affichage différents selon requête SQL [ 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 boucle for, while et condition if [ par WrestlingMan ] Bonjour !! J'ai un souci et j'espère que vous pourrez le résoudre !! J'ai une zone de texte, dans laquelle on doit saisir une ou plusieurs lettres !! livre d'or ( message de : X à X ) [ par piteur30 ] Bonjourdans le cadre de mon livre d'or j'aimerai afficher le nombre du 1er et dernier messa erreur mysql_fetch_array() pour resortire les message [ par speedylol ] Bonjour je vois pas l'erreur que j'ai faite sur un script que j ai repris et modifier pour qu'il fonction sous session seriez vous me dire car je suis


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
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 : 1,981 sec (4)

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