[PHP/MySQL] Creation de lien

p_oum Messages postés 964 Date d'inscription   Statut Membre Dernière intervention   -  
 Lobsang Rampa -
Bonjour,

Voici mon probleme
J'ai deux tables dans ma base donnees: personne et ville
La table personne est compose de la facon suivante:
id
nom
description

La table ville est compose de la facon suivante
id
nom
description

Je voudrais que lors de l'affichage dans ma page des donnees de personne.description soit automatiquement cree des liens html vers la page contenant les donnes de ville.description

Exemple:
La page contenant les donnees personne affiche
Jean dupond habite a Paris(=lien vers la page contenant les donne de ville) depuis 3 mois. Il aime beaucoup Paris(=lien vers la page contenant les donne de ville) etc ...


J'ai regarde du cote de la fonction str_replace mais je n'arrive pas a lui passer un tableau contenant les donnees des tables et cela ne fonctionne pas nom plus si le mot a remplacer est present plusieurs fois dans le texte.

Merci
A voir également:

1 réponse

flav1313 Messages postés 751 Date d'inscription   Statut Membre Dernière intervention   100
 
Je te conseille de stocker "Jean dupond habite a Paris." dans une variable par exemple:

$string = "Jean dupond habite a Paris.";

Et d'effectuer la chose suivante :

$string = str_replace("Paris","<a href="tonlien.php">Paris</a>",$string);
echo $string;

Toutes les occurrences Paris vont être remplacé par Paris(=lien vers ta page).

Flavien
0
Lobsang Rampa
 
Bonjour, ce n'est pas possible avec les tables que vous avez (à moins que j'ai mal lu ).

Il faut qu'une des données des tables soit commune sinon pas de jointures possible. Et donnez des noms de champs plus évocateur(je vias utiliser le MCD(modèle conceptuel de données) donc enlever l'id qui ne me sembles pas l'identifiant naturel mais doit correspondre à une quelconque valeur numérique auto-incrémenté lors de l'insert:

[personne]
nom
prenom /*je rajoute ce champ sinon vous allez avoir des soucis avec les gens avec qui o,nt le meêm nom de famille, éventuellement il faut rajouter le champ id pour les homonymes de nom et prénom(il peut exister 2 ou plus de Jean Dupond mais ils auront des id différents)).*/
ville_residence
commentaire


[lieu]
ville
description


Vous pouvez recouper les deux tables en utilisant ville_residence et ville qui correspondent à des noms de ville(je les ait appelés différemment exprès, cela évites de les mélanger et quand on lit ville_residence on sait de suite que c'est la ville d'une personne).
Le champ ville_residence de la table personne est une clé étrangère. Elle permet de recouper les information pour la ville et ainsi obtenir la description de la ville.

Jetez un oeil sur un cours/tuto de SQL sur les clés étrangères et jointures de table. Vous verrez qu'au niveau requête c'est simple et logique(normal SQL est un langage simple et logique, peu évolué mais rapide, peu permissif il est dit de bas niveau: très proche de la logique informatique le binaire et les mathématiques de Boole).

Par exemple:

SELECT personne.nom, personne.prenom, lieu.ville, lieu.description FROM personne, lieu WHERE personne.ville_residence=lieu.ville

vous donne comme résultat le nom, le prénom d'une personne ainsi que sa ville et la description de sa ville.

SELECT personne.nom, personne.prenom lieu.villeFROM personne, lieu WHERE personne.ville_residence=lieu.ville DISTINCT lieu.ville

Vous donne la liste de toutes les personnes(nom, prénom) regroupés par ville.
0