Remplacer un id par le nom récupéré dans une base de données
15 messages
• Page 1 sur 1
Consultez la formation URL Rewriting et sites dynamiques de WebRankInfo / Ranking Metrics
- phm2000
- Nouveau WRInaute

- Messages: 24
- Inscription: 18 Mai 2010
Remplacer un id par le nom récupéré dans une base de données
Bonjour
je souhaite réécrire une url du style :
www.exemple.fr/offre.php?code-region=25 en www.exemple.fr/offre-nom de la région
sachant qu'à un id correspond un nom de région dans ma base de données
Je sais réécrire en www.exemple.fr/offre-25 avec le .htaccess mais je ne vois pas comment remplacer le numéro par le nom
Quelqu'un aurait-il des idées, car je n'ai rien trouvé de concluant lors de mes recherches
merci
je souhaite réécrire une url du style :
www.exemple.fr/offre.php?code-region=25 en www.exemple.fr/offre-nom de la région
sachant qu'à un id correspond un nom de région dans ma base de données
Je sais réécrire en www.exemple.fr/offre-25 avec le .htaccess mais je ne vois pas comment remplacer le numéro par le nom
Quelqu'un aurait-il des idées, car je n'ai rien trouvé de concluant lors de mes recherches
merci
-
Anto1982 - WRInaute passionné

- Messages: 1334
- Inscription: 7 Mai 2009
Re: Remplacer un id par le nom récupéré dans une base de données
si tu sais réécrire "www.exemple.fr/offre-25" alors tu sais réécrire "www.exemple.fr/offre-offre" et donc "www.exemple.fr/offre-nom" non...?
Ensuite, au lieu de chercher dans ta base de données par l'id, tu cherches par le nom (à condition qu'il y ait une relation 1<=> 1 entre l'id et le nom)
(Ou alors j'ai rient compris à ton problème...)
Ensuite, au lieu de chercher dans ta base de données par l'id, tu cherches par le nom (à condition qu'il y ait une relation 1<=> 1 entre l'id et le nom)
(Ou alors j'ai rient compris à ton problème...)
- phm2000
- Nouveau WRInaute

- Messages: 24
- Inscription: 18 Mai 2010
Re: Remplacer un id par le nom récupéré dans une base de données
Anto1982 a écrit:si tu sais réécrire "www.exemple.fr/offre-25" alors tu sais réécrire "www.exemple.fr/offre-offre" et donc "www.exemple.fr/offre-nom" non...?
Oui , mais je voudrais l'automatiser pour ne pas avoir à saisir chaque nom à la main sachant que j'en ai plus de 100
Anto1982 a écrit:Ensuite, au lieu de chercher dans ta base de données par l'id, tu cherches par le nom (à condition qu'il y ait une relation 1<=> 1 entre l'id et le nom)
(Ou alors j'ai rient compris à ton problème...)
Comme je n'ai pas créé le site je souhaiterais éviter de modifier le code, mais pour les relations 1-1 c'est peu être le plus simple
-
Anto1982 - WRInaute passionné

- Messages: 1334
- Inscription: 7 Mai 2009
Re: Remplacer un id par le nom récupéré dans une base de données
OK, en fait, tu n'as pas de problème... juste un petit souci de logique.
pour avoir des adresses du type: "www.exemple.fr/offre-nom"
Tu as une base de données:
id|nom
1|nom1
2|nom2
...
n|nomn
sur ta page d'accueil (c'est un exemple). Tu vas faire appel à ta base de données pour afficher les liens vers les pages relatives à l'id 2 et l'id 6.
=> requete mysq
=> tu récupères les noms (nom2 et nom6)
=> tu écris tes liens vers tes pages <a href="www.exemple.fr/nom2">Nom2</a> et <a href="www.exemple.fr/nom6">Nom6</a>
=> Tu modifies ton htaccess avec un truc du genre:
RewriteRule ^([(a-z)(A-Z)(0-9)_]*)$ /offre.php?nom=$1 [L]
L'url "www.exemple.fr/nom2" pointera sur ton fichier php "offre.php"
dans ton fichier "offre.php" tu récupère la variable nom ($_GET['nom'])
=> requete mysql, (tu récuperes ce que tu veux dans ta base en cherchant par ta variable nom - qui aura la valeur "nom2")
=> Tu affiches ce que tu veux.

C'est ce que tu veux faire non?
pour avoir des adresses du type: "www.exemple.fr/offre-nom"
Tu as une base de données:
id|nom
1|nom1
2|nom2
...
n|nomn
sur ta page d'accueil (c'est un exemple). Tu vas faire appel à ta base de données pour afficher les liens vers les pages relatives à l'id 2 et l'id 6.
=> requete mysq
=> tu récupères les noms (nom2 et nom6)
=> tu écris tes liens vers tes pages <a href="www.exemple.fr/nom2">Nom2</a> et <a href="www.exemple.fr/nom6">Nom6</a>
=> Tu modifies ton htaccess avec un truc du genre:
RewriteRule ^([(a-z)(A-Z)(0-9)_]*)$ /offre.php?nom=$1 [L]
L'url "www.exemple.fr/nom2" pointera sur ton fichier php "offre.php"
dans ton fichier "offre.php" tu récupère la variable nom ($_GET['nom'])
=> requete mysql, (tu récuperes ce que tu veux dans ta base en cherchant par ta variable nom - qui aura la valeur "nom2")
=> Tu affiches ce que tu veux.
C'est ce que tu veux faire non?
- phm2000
- Nouveau WRInaute

- Messages: 24
- Inscription: 18 Mai 2010
Re: Remplacer un id par le nom récupéré dans une base de données
Anto1982 a écrit:OK, en fait, tu n'as pas de problème... juste un petit souci de logique.
pour avoir des adresses du type: "www.exemple.fr/offre-nom"
Tu as une base de données:
id|nom
1|nom1
2|nom2
...
n|nomn
sur ta page d'accueil (c'est un exemple). Tu vas faire appel à ta base de données pour afficher les liens vers les pages relatives à l'id 2 et l'id 6.
=> requete mysq
=> tu récupères les noms (nom2 et nom6)
=> tu écris tes liens vers tes pages <a href="www.exemple.fr/nom2">Nom2</a> et <a href="www.exemple.fr/nom6">Nom6</a>
Je comprends à peu près la logique que tu as l'air de dominer, mais malheureusement je n'y connais rien en requêtes sql.
J'ai lu des articles traitant mon problème, mais je n'ai rien trouvé d'assez clair pour un néophyte comme moi.
Je vais tenter. Pourquoi choisir la page index ? Est-ce que ça a une importance?
Merci
-
Anto1982 - WRInaute passionné

- Messages: 1334
- Inscription: 7 Mai 2009
Re: Remplacer un id par le nom récupéré dans une base de données
Arg...; effectivement, sans avoir de base de données derrière, ça risque d'être non pas plus compliqué (enfin pour moi si) mais plus difficile à entretenir et mettre à jour...
- mahdivitchee
- WRInaute discret

- Messages: 175
- Inscription: 22 Mar 2010
Re: Remplacer un id par le nom récupéré dans une base de données
phm2000 a écrit:Bonjour
Quelqu'un aurait-il des idées, car je n'ai rien trouvé de concluant lors de mes recherches
merci
Bonjour
lire ce post http://forum.webrankinfo.com/des-codes-pour-redirection-htaccess-t110832.html
cordialement
- phm2000
- Nouveau WRInaute

- Messages: 24
- Inscription: 18 Mai 2010
Re: Remplacer un id par le nom récupéré dans une base de données
Anto1982 a écrit:Arg...; effectivement, sans avoir de base de données derrière, ça risque d'être non pas plus compliqué (enfin pour moi si) mais plus difficile à entretenir et mettre à jour...
J'ai bien une base de données.
Je reprends mon problème en détaillant
Je souhaite afficher des offres de formations selon des régions. je suis sur la page www.ex.fr/offres.php?all
J'ai un menu déroulant des régions de france
Je choisis Alsace une qui m'ouvre la page www.ex.fr/offre.php?code_region=25
je souhaiterais que cette url soit www.ex.fr/offre-alsace
Je peux déjà la réécrire sous la forme www.ex.fr/offre-25
Ensuite je plante pour remplacer 25 par alsace. Quelle requête sql dois-je faire?
Merci
-
Anto1982 - WRInaute passionné

- Messages: 1334
- Inscription: 7 Mai 2009
Re: Remplacer un id par le nom récupéré dans une base de données
Ton menu, tu le récupères bien en faisant une requête dans ta base? (ou bien est-il écrit en "dur"?)
Quand tu écris ton menu, au lieu de mettre des liens
www.ex.fr/offre.php?code_region=25
tu mets des liens
www.ex.fr/offre-alsace
(en fait, tu fait ce que tu veux!)
(à cette étape, on n'en est pas encore à la réécriture!)
ensuite, quand tu vas cliquer sur ces liens, c'est la que la réécriture d'url entre en jeu.
Si tu n'as pas encore commencé à coder... on est un peu en train de parler dans le vide...
Anto
Quand tu écris ton menu, au lieu de mettre des liens
www.ex.fr/offre.php?code_region=25
tu mets des liens
www.ex.fr/offre-alsace
(en fait, tu fait ce que tu veux!)
(à cette étape, on n'en est pas encore à la réécriture!)
ensuite, quand tu vas cliquer sur ces liens, c'est la que la réécriture d'url entre en jeu.
Si tu n'as pas encore commencé à coder... on est un peu en train de parler dans le vide...
Anto
-

gg00xiv - Nouveau WRInaute

- Messages: 43
- Inscription: 10 Juin 2010
Re: Remplacer un id par le nom récupéré dans une base de données
L'idéal quand tu as des noms dont l'orthographe peut contenir des caractères spéciaux est de rajouter une colonne : "name_rewrited" par exemple, et de faire ta requête basé sur ce nom :
url : "/offre-pyrenees"
en base : ID = 25, name = "Pyrénées", name_rewrited = "pyrenees"
en PHP tu pourrais faire une petite fonction de ce style pour générer les noms ré-écrits :
url : "/offre-pyrenees"
en base : ID = 25, name = "Pyrénées", name_rewrited = "pyrenees"
en PHP tu pourrais faire une petite fonction de ce style pour générer les noms ré-écrits :
- Code: Tout sélectionner
function get_rewrited_name($name)
{
$rname = str_replace("é","e",$name);
$rname = str_replace(" ","_",$rname);
...
return strtolower($name);
}
- phm2000
- Nouveau WRInaute

- Messages: 24
- Inscription: 18 Mai 2010
Re: Remplacer un id par le nom récupéré dans une base de données
Le site est ici : http://www.alternance.enils.fr/offres.php?all
Voici la fonction qui créé le lien vers les offres de la région à partir du choix effectué dans la liste
FIRST_REG_ est le nom de la région
Je pense que c'est la ligne $htm. qui définit le lien. J'aimerais ajouter au lien crée le nom de la région, mais là je coince
Voici la fonction qui créé le lien vers les offres de la région à partir du choix effectué dans la liste
FIRST_REG_ est le nom de la région
- Code: Tout sélectionner
function selectRegion() {
$htm="<select name='CODE_REG'>\n";
$htm.="<option value='' $sel>Toutes les régions</option>\n";
$sql = "select CODE_REG , FIRST_REG_ from region order by FIRST_REG_ asc ";
$res =mysql_query($sql);
while ($r =mysql_fetch_array($res)) {
if ($r[CODE_REG]==$_REQUEST['CODE_REG']) $sel =" selected " ; else $sel ="";
$htm.="<option value='".$r[CODE_REG]."' $sel>".ucfirst(strtolower( $r[FIRST_REG_] ))." </option>\n";
}
$htm.="</select>\n";
return $htm;
Je pense que c'est la ligne $htm. qui définit le lien. J'aimerais ajouter au lien crée le nom de la région, mais là je coince
-
Anto1982 - WRInaute passionné

- Messages: 1334
- Inscription: 7 Mai 2009
Re: Remplacer un id par le nom récupéré dans une base de données
function selectRegion() {
$htm="<select name='CODE_REG'>\n";
$htm.="<option value='' $sel>Toutes les régions</option>\n";
$sql = "select CODE_REG , FIRST_REG_ from region order by FIRST_REG_ asc ";
$res =mysql_query($sql);
while ($r =mysql_fetch_array($res)) {
if ($r[CODE_REG]==$_REQUEST['CODE_REG']) $sel =" selected " ; else $sel ="";
$htm.="<option value='".$r[CODE_REG]."' $sel>".ucfirst(strtolower( $r[FIRST_REG_] ))." </option>\n";
}
$htm.="</select>\n";
return $htm;
En fait, dans ce code, il n'y a pas de lien... Je pense que c'est juste une liste, avec un formulaire qui te renvoi quelque part... (??) juste une liste déroulante (ou alors, tu as un code javascript qui te crée des liens...
Pour récuperer le nom de la region il faudrait faire un truc du genre
$sql = "select NOM_REG,CODE_REG , FIRST_REG_ from region order by FIRST_REG_ asc ";
$res =mysql_query($sql);
while ($r =mysql_fetch_array($res)) {
if ($r[CODE_REG]==$_REQUEST['CODE_REG']) $sel =" selected " ; else $sel ="";
$htm.="<option value='".$r[NOM_REG]."' $sel>".ucfirst(strtolower( $r[FIRST_REG_] ))." </option>\n";
}
ou "NOM_REG" serait le nom de la colonne dans laquelle se trouve le nom de la region dans Mysql...
- phm2000
- Nouveau WRInaute

- Messages: 24
- Inscription: 18 Mai 2010
Re: Remplacer un id par le nom récupéré dans une base de données
Je viens de faire la modif, j'ai le lien
http://www.alternance.enils.fr/offres.php?FIRST_REG_=Languedoc-Roussillon
Mais effectivement je ne sais pas où est créé le lien pour modifier son aspect, je vais chercher
http://www.alternance.enils.fr/offres.php?FIRST_REG_=Languedoc-Roussillon
Mais effectivement je ne sais pas où est créé le lien pour modifier son aspect, je vais chercher
- phm2000
- Nouveau WRInaute

- Messages: 24
- Inscription: 18 Mai 2010
Re: Remplacer un id par le nom récupéré dans une base de données
J'ai trouvé une autre fonction
elle appelle la précédente
- Code: Tout sélectionner
if (isset($_REQUEST[CODE_REG])) {
echo "<form method=get>";
echo "<div id=SelectTitre>Région</div>";
echo $this->selectRegion();
echo "<input type=image src=img/go.gif onClick=\"submit();\" />";
echo "</form >";
}
elle appelle la précédente
-
Anto1982 - WRInaute passionné

- Messages: 1334
- Inscription: 7 Mai 2009
Re: Remplacer un id par le nom récupéré dans une base de données
En fait, c'est parceque tu ne publie pas des liens. Tu soumets un formulaire... Ce n'est pas la même methode (et du coup, c'est normal...
Pour naviguer dans certaines parties de mon site, je fais ça: (mais c'est pas bon pour le référencement...
Pour naviguer dans certaines parties de mon site, je fais ça: (mais c'est pas bon pour le référencement...
- Code: Tout sélectionner
<select onchange="if(this.value != ''){window.open(this.value, '_self')};" id="select_url">
<option value="http://tonurl.com/Offres/Region">Region</option>
<option value="http://tonurl.com/Offres/Region1">Region1</option>
</select>
<script type="text/javascript" language="javascript">var label = 'Go to Url'
var select01 = new selectRef.init('select_url', label)</script>
15 messages
• Page 1 sur 1
Formation recommandée sur ce thème :
Formation URL Rewriting et sites dynamiques : apprenez comment mettre en place la réécriture d'URL, comment optimiser vos URL et profiter de vos pages dynamiques pour booster votre référencement. Formation animée par Olivier Duffez et Fabien Facériès, experts en référencement naturel.
Tous les détails sur le site Ranking Metrics : programme, prix, dates et lieux, inscription en ligne.
Lectures recommandées sur ce thème :
Consultez la description détaillée des produits ou services de Google suivants : Google Secure Access
- Test de positionnement sur data centers
Cet outil vous permet d'afficher sur une seule page les résultats Google effectués sur de nombreux data centers (centres de données). - Suggestion de mots-clés Google
Cet outil vous permet d'obtenir une liste de 10 mots ou expressions suggérés par Google sur la base d'un mot que vous fournissez.
Qui est en ligne
Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités
