PHP/MySQL : problème affichage articles

Fermé
oudini_ Messages postés 4 Date d'inscription lundi 28 décembre 2009 Statut Membre Dernière intervention 28 décembre 2009 - 28 déc. 2009 à 17:56
oudini_ Messages postés 4 Date d'inscription lundi 28 décembre 2009 Statut Membre Dernière intervention 28 décembre 2009 - 28 déc. 2009 à 22:04
Bonjour,

Je stocke des articles dans une base de données MySQL.

La listes des articles (10 articles par page) sur mon site se fait via les URL suivantes :
http://mon_domaine.fr/index.php?page=actualite&nb=0
http://mon_domaine.fr/index.php?page=actualite&nb=1
http://mon_domaine.fr/index.php?page=actualite&nb=2
...
ou nb=0=numéro de la page (affiche les 10 derniers articles)
nb=0=les 10 articles les plus récents
nb=1=du 11ième au 20ième articles les plus récents
...

L'affichage des articles se fait via l'URL suivante :
http://mon_domaine.fr/index.php?page=actualite&nb=0&id=345
http://mon_domaine.fr/index.php?page=actualite&nb=1&id=250

ou id= identifiant MySQL de l'article

Lorsque un article passe de la page 1 à la page 2 (par exemple) l'URL pour le visualiser change :
AVANT : http://mon_domaine.fr/index.php?page=actualite&nb=0&id=250
APRES : http://mon_domaine.fr/index.php?page=actualite&nb=1&id=250

Du coup les moteurs de recherches ne trouvent plus l'article. Ils référencent l'article à l'URL http://mon_domaine.fr/index.php?page=actualite&nb=0&id=250 alors qu'il est visible à cette nouvelle URL http://mon_domaine.fr/index.php?page=actualite&nb=1&id=250.

Lorsqu'un internaute surfe sur mon site, il n'y a pas de pbs puisque les URL sont correctes. Par contre lorsque l'internaute vient de google ou autre moteur de recherche, il y a souvent des pbs.

Je voudrais donc mettre en place un code php gérant les choses de la façon suivante :
- continuer de la même façon lorsque l'URL source vient de mon_domaine.fr
- mettre en place une solution lorsque la requête de vient pas de mon domaine pour afficher correctement l'article

Quelqu'un aurait il une ou des idée(s) ?

Merci d'avance
A voir également:

6 réponses

totofrancois Messages postés 398 Date d'inscription jeudi 19 novembre 2009 Statut Membre Dernière intervention 2 août 2013 44
28 déc. 2009 à 20:42
ne tiens pas compte du "nb" si tu as l "id"
0
oudini_ Messages postés 4 Date d'inscription lundi 28 décembre 2009 Statut Membre Dernière intervention 28 décembre 2009
28 déc. 2009 à 21:07
et comment gérer 2 traitements différents :

- URL source provient de http://mon_domaine.fr
- URL source ne provient pas de http://mon_domaine.fr
0
totofrancois Messages postés 398 Date d'inscription jeudi 19 novembre 2009 Statut Membre Dernière intervention 2 août 2013 44
28 déc. 2009 à 21:12
tu n'a pas besoin de du "nb" pour afficher un article, tu en a besoin pour naviguer sur tes pages ?

en gros :

SI $id alors
select * from article where id=$id
SiNONSI £nb alors
select * from article limit $nb*20, $nb

fin

et comme cela peu importe d'ou il vient si l'id est correcte il trouvera l'article
0
oudini_ Messages postés 4 Date d'inscription lundi 28 décembre 2009 Statut Membre Dernière intervention 28 décembre 2009
28 déc. 2009 à 21:45
exemple concret :

http://www.handball.fr/index.php?page=page_actu&nb=1&id_actu=173#173
=> cet article s'affiche

demain j'ajoute des articles et celui la (id=173) passe en page 2 (nb=2) mais les moteurs de recherche ne le verront pas...
http://www.handball.fr/index.php?page=page_actu&nb=2&id_actu=173#173
=> cet article ne s'affiche pas

voila ce que je cherche à résoudre ...

Du coup, je pensais faire un test :
si la requete vient de handball.fr je traite comme aujourd'hui
si la requete vient de l'extérieur, je prend juste page=page_actu et id_actu=173

Peux tu m'aider ?
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
totofrancois Messages postés 398 Date d'inscription jeudi 19 novembre 2009 Statut Membre Dernière intervention 2 août 2013 44
28 déc. 2009 à 21:51
en allant sur ton site j'ai pensé a un truc :

le nb tu n'en a pas besoin du tout tu peux le calculer : tu fait un

select count(article) where date>(select date from article where id=id

et après tu récupère ton nb avec un modulo
0
oudini_ Messages postés 4 Date d'inscription lundi 28 décembre 2009 Statut Membre Dernière intervention 28 décembre 2009
28 déc. 2009 à 22:04
bon je sens que je ne ferai pas ça ce soir, ça va entrainer pas mal de modifs ...

merci de ton aide

@+
0