|
Voir le sujet précédent :: Voir le sujet suivant
|
| Auteur |
Message |
| |
|
wasabi WRInaute impliqué

Inscrit le: 13 Déc 2005 Messages: 420
|
Posté le : Sam Jan 07, 2006 12:27 Sujet du message: Récupérer un titre dans BDD et le mettre en URL |
|
|
Bonjour, j'ai dans ma base de données des news, dont je voudrais que le titre apparaisse en URL.
le chemin vers une news est du style :
-www.monsite.com/index.php?cat=1&id=23
avec l'url rewriting je peux faire ça :
-www.monsite.com/actualite-23.html
Mais ce que je voudrais, c'est récupérer le titre de la news en question dans la BDD pour avoir une URL du type :
-www.monsite.com/23-titre-news.html
est-ce possible? |
|
| |
|
 |
jOoL WRInaute impliqué

Inscrit le: 05 Mai 2005 Messages: 443 Localisation: par GPS
|
Posté le : Sam Jan 07, 2006 12:46 Sujet du message: Récupérer un titre dans BDD et le mettre en URL |
|
|
Oui c'est possible!
C'est ce que je fais pour tous mes sites. Par-contre, c'est pas tout simple à faire. On a développé un cms pour ça.
L'idée, c'est de faire une sortie de BDD avec tous les titres des articles .
Ensuite tu génères les liens avec titres en sorties (menu/sitempap/etc).
Tu utilise l'URLRW pour transformer tes liens "mon_article.html" vers "index.php?titre=mon_article
Il faut parser le tout pour avoir des résultats identiques.
Pour afficher le bon article, tu fais une requête sql SELECT * WHERE titre_new = "mon article".
Idéalement, c'est bien de mettre l'id de ton article dans l'url ("mon_article_21.html). De cette façon, tu peux avoir 2 articles avec le même nom.
Voilà pour le principe.
N'hésite pas à me poser d'autres questions.
jOoL |
|
| |
|
 |
venomelektro WRInaute occasionnel

Inscrit le: 16 Juin 2005 Messages: 246 Localisation: Montpellier
|
Posté le : Sam Jan 07, 2006 12:49 Sujet du message: Récupérer un titre dans BDD et le mettre en URL |
|
|
quel serait ton probleme?
au lien de passer un id en param , passe le titre
exemple
^article-(.*).html$ article.php?titre=$1
au lieu de :
^article-([0-9]+).html$ article.php?id=$1 |
|
| |
|
 |
wasabi WRInaute impliqué

Inscrit le: 13 Déc 2005 Messages: 420
|
Posté le : Sam Jan 07, 2006 13:06 Sujet du message: Récupérer un titre dans BDD et le mettre en URL |
|
|
jOoL > ah d'accord donc je sui quand même obligé de mettre le titre extrait de la BDD en url avant de faire l'url rewriting. j'ai la réponse à ma question. Merci bcp Jool.
venomelektro > le problème est que je n'ai pas le titre en paramètre, seulement des id, etc.. je voulais donc savoir s'il existait un moyen direct pour intégrer le titre dans le .htaccess  |
|
| |
|
 |
Takumi WRInaute occasionnel

Inscrit le: 04 Jan 2006 Messages: 115
|
Posté le : Sam Jan 07, 2006 13:29 Sujet du message: Récupérer un titre dans BDD et le mettre en URL |
|
|
L'idéal dans ce cas serait de construire tes URL avec à la fois le titre et l'id, comme ça dans ton url rewriting tu récupère juste le paramètre id comme tu le fais actuellement.
Par exemple pour ton -www.monsite.com/23-titre-news.html ça donnerait la règle suivante :
^([0-9]+)-(.*)-news.html$ article.php?cat=1&id=$1
Ainsi seul l'id unique te permet de retrouver la news, et tu pourra changer à volonté le titre de ta news sans casser le lien. La plupart des sites fonctionnent comme ça, sauf les wiki, sinon ça oblige à stocker dans la base de données le titre avec son format tel qu'il est dans l'url.
Dernière édition par Takumi le Sam Jan 07, 2006 13:33; édité 1 fois |
|
| |
|
 |
Phs-Creation Nouveau WRInaute
Inscrit le: 07 Jan 2006 Messages: 13 Localisation: Belgique
|
Posté le : Sam Jan 07, 2006 13:31 Sujet du message: Récupérer un titre dans BDD et le mettre en URL |
|
|
Sans l'id ... il y a quand meme un risque :
Si deux pages ont le même titre (Ca arrive assez vite), elles vont avoir la même url et là, tu va avoir quelques petits problèmes.
Donc, soit :
- T'es sur de toi et a chaque ajout d'article tu vérifie que le titre est unique.
- Soit l'id reste obligatoire.
Philippe |
|
| |
|
 |
wasabi WRInaute impliqué

Inscrit le: 13 Déc 2005 Messages: 420
|
Posté le : Sam Jan 07, 2006 13:37 Sujet du message: Récupérer un titre dans BDD et le mettre en URL |
|
|
Merci pour vos réponses
oui j'ai laissé l'id dans les exemples comme vous pouvez le voir "23-titre-news" ou 23 est l'id.
ma question portait plus sur la possibilité de récupérer le titre dans une BDD directement depuis le fichier .htaccess, sans passer le titre en paramètre d'url. |
|
| |
|
 |
jOoL WRInaute impliqué

Inscrit le: 05 Mai 2005 Messages: 443 Localisation: par GPS
|
Posté le : Sam Jan 07, 2006 13:41 Sujet du message: Récupérer un titre dans BDD et le mettre en URL |
|
|
| wasabi a écrit: |
| jOoL > ah d'accord donc je sui quand même obligé de mettre le titre extrait de la BDD en url avant de faire l'url rewriting. |
Bien sûr! L'URL RW ne fait qu'interpreter et modifier un url existant. Il faut donc construire préalablement l'url de la façon que tu veux qu'il soit visible. |
|
| |
|
 |
Phs-Creation Nouveau WRInaute
Inscrit le: 07 Jan 2006 Messages: 13 Localisation: Belgique
|
Posté le : Sam Jan 07, 2006 13:43 Sujet du message: Récupérer un titre dans BDD et le mettre en URL |
|
|
| wasabi a écrit: |
Merci pour vos réponses
oui j'ai laissé l'id dans les exemples comme vous pouvez le voir "23-titre-news" ou 23 est l'id.
ma question portait plus sur la possibilité de récupérer le titre dans une BDD directement depuis le fichier .htaccess, sans passer le titre en paramètre d'url. |
Le htaccess ne peux pas faire ca.
Tu dois creer les liens dans le fichier php source.
Philippe |
|
| |
|
 |
jOoL WRInaute impliqué

Inscrit le: 05 Mai 2005 Messages: 443 Localisation: par GPS
|
Posté le : Sam Jan 07, 2006 13:43 Sujet du message: Récupérer un titre dans BDD et le mettre en URL |
|
|
| Takumi a écrit: |
| sinon ça oblige à stocker dans la base de données le titre avec son format tel qu'il est dans l'url. |
Non! Par-contre ça oblige à "parser" les sorties de BDD et les URL à chaque requête pour pouvoir les comparer. |
|
| |
|
 |
wasabi WRInaute impliqué

Inscrit le: 13 Déc 2005 Messages: 420
|
Posté le : Sam Jan 07, 2006 13:45 Sujet du message: Récupérer un titre dans BDD et le mettre en URL |
|
|
D'accord merci à tous  |
|
| |
|
 |
| |
|
|