La Communauté Webmaster  forum rss


  Forum-webmaster
  Technique - programmation
  PHP / MySQL
(Modérateurs: Shain, Jey, erwinol, Lilian, lauryv, ToToMaStEr)
  jointures et nom de champs identiques
« Précédent Suivant »
Pages: [1] Descendre
Répondre    Aviser des réponses    Envoyer le sujet    Imprimer
  Auteur  Sujet: jointures et nom de champs identiques  (Lu 1189 fois)
jointures et nom de champs identiques
« sur: le 08-11-2004 a 17:42:22 »
pixyle
Habitué
***

Hors-Ligne

Sexe: Femelle
Messages: 332





Voir le Profil    E-Mail
Répondre avec citation

Salut,

Je reprend un site déjà presque fini (je précise hein parceque moi je fais pas ce genre de choses ... ) et je tombe sur un os : 2 champs du même nom dans 2 tables ... quans je les croise forcement j'ai pas la bonne chose qui s'affiche.

Savez vous si on peut renommer un champ à la manière des alias pour le nom des tables, ou une idée pour contourner ce problème ?

« Dernière Édition: le 08-11-2004 a 17:43:24 par pixyle » Rapporter au modérateur  

Se demande ce qu'il y a de pire qu'un bug inreproductible |-(

Re:jointures et nom de champs identiques
« Répondre #1 sur: le 09-11-2004 a 18:09:11 »
erwinol
Iznogoud Deluxe
Modérateur Global
*****

Hors-Ligne

Sexe: Male
Messages: 1845



Que la FARCE soit avec toi

Voir le Profil    WWW
Répondre avec citation

Ben il suffit d'utiliser nomTable.nomChamp dans tes requetes.

Par exemple

Code:

... FROM tb1, tb2
WHERE tb1.champ = tb2.champ


Oubien tu fais comme je fais toujours :

Code:

... FROM tb1 T, tb2 S
WHERE T.champ = S.champ


Quand je construit une base de données, les champs sur lesquels je dois faire des jointures portent toujours les mêmes noms et ça ne m'a jamais posé aucun problème

Rapporter au modérateur  

MySeoBox soumet vos sites sur des milliers d'annuaire
Vous possédez un annuaire ? Gagnez de l'argent avec celui-ci grâce à l'affiliation MySeoBox !
Re:jointures et nom de champs identiques
« Répondre #2 sur: le 10-11-2004 a 23:16:59 »
MarvinLeRouge
Superactif
****

Hors-Ligne

Messages: 584





Voir le Profil    WWW
Répondre avec citation

Salut,

Tu peux aussi renommer les champs avec des alias comme pour les tables. Exemple :
Code:

select cat.nom as categorie, scat.nom as sousCategorie
from tablecategorie cat inner join tablesouscategorie scat
on cat.idCategorie = scat.idCategorie
order by categorie, sousCategorie


Tu remarqueras que dans cet exemple, les tables ont des alias, les champs aussi et que les 2 tables ont des champs de même nom.

Rapporter au modérateur  

Développeur web / Création de site internet
jean@ceugniet.com
Jean Ceugniet, Développement web
SIRET : 523 611 044 00018
Re:jointures et nom de champs identiques
« Répondre #3 sur: le 16-11-2004 a 14:49:21 »
pixyle
Habitué
***

Hors-Ligne

Sexe: Femelle
Messages: 332





Voir le Profil    E-Mail
Répondre avec citation

Merci je vais étudier ça car j'ai trouvé une astuce mais qui ne règlera pas tout à chaque fois ...
Pour le tri des données pas de soucis c'est pour l'affichage, si je dois afficher les contenus des 2 champs nommés type, issus de la même requête.

J'ai bidouillé ...
Mettons les tables table1 et table2 avec chacune un champ nommé type.
La requête d'origine était du type :
$sql ="SELECT * FROM table1 AS A, table2 AS B, ...
WHERE A.type='$toto' AND .... ";

contruite par concaténation en fonction des champs remplis (donc  chaud de faire des alias sur les noms de champs)
$req = mysql_query($sql);
$list = mysql_fetch_array($req);
$list[type]
affiche le type de la table2
$sql ="SELECT * FROM table2 AS B, table1 AS A,...
(..)
$list[type] affiche le type de la table1

.. ou l'inverse j'ai pas le code sous les yeux ^_^

Rapporter au modérateur  

Se demande ce qu'il y a de pire qu'un bug inreproductible |-(
Re:jointures et nom de champs identiques
« Répondre #4 sur: le 17-11-2004 a 09:48:46 »
MarvinLeRouge
Superactif
****

Hors-Ligne

Messages: 584





Voir le Profil    WWW
Répondre avec citation

Salut,

Tu pourrais par exemple concaténer le nom de la table et celui du champ, pour tous les champs utilisés.
Ainsi pas de pb d'identification.
Code:

$query = "SELECT $col1 AS table1_$col1, ... FROM table1"

Ca me paraît viable, mais j'ai pas testé

Rapporter au modérateur  

Développeur web / Création de site internet
jean@ceugniet.com
Jean Ceugniet, Développement web
SIRET : 523 611 044 00018
Répondre    Aviser des réponses    Envoyer le sujet    Imprimer
Pages: [1] Monter
« Précédent Suivant »
Sauter à: 

Votre statut : Invité
Vous devez être membre pour participer.
 
 
Let’s Encrypt : le certificat SSL gratuit
Tester votre site internet sur différents navigateurs
[WordPress] Des problèmes avec l’administration ?
Rappel : Mettez à jour vos CMS et vos sites E-commerce
Le .fr fête ses 25 années d’existence !
Mesurer votre audience en temps réel avec BubbleStat
Porter réclamation contre Google Panda ?
Zlio n’est plus …
 
 
 
 
 

Copyright (c) Devclic 2002 - 2026 - Tous droits réservés

creation site internet strasbourg