Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1191 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  multi utilisateurs sql

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

multi utilisateurs sql

n°1259141
bob007
Posté le 05-12-2005 à 15:26:58  profilanswer
 

Salut a tous,
 
voila l'histoire j'ai plusieurs tables utilisateurs (clients, partenaires, ...) dont les utilisateurs doivent pouvoir se loguer par le meme formulaire.
Le probleme est que ne vois pas trop a quoi devrait resembler ma requete.
Soient client_t la table clients,
partenaire_t la table partenaires,
installateurs_t la table installateurs.
 
la requete:
$sql = "SELECT * FROM client_t cl, partenaire_t pa, installateurs_t ins
WHERE cl.pseudo='monpote'  
OR pa.pseudo='monpote'
OR ins.pseudo='monpote'";
 
Mais cette requete me renvoit plusieurs lignes de ces tables, sans tenir compte du pseudo. :heink:  
 
Merci de votre aide!  :jap:  
 
PS: ca urge ! lol


Message édité par bob007 le 05-12-2005 à 15:33:11
mood
Publicité
Posté le 05-12-2005 à 15:26:58  profilanswer
 

n°1259165
omega2
Posté le 05-12-2005 à 15:39:00  profilanswer
 

PROBLEME de SQL = SECTION SQL
 
 
Avec un or sans relier du tout les tables entre elles, tu demandes à la base de te retourner le produit cartésien de deux des trois tables à partir du moment où il y a pseudo qu'est égale à 'monpote' dans la troisiéme.
 
Là, soit c'est le même utilisateur obligatoirement dans les trois tables et il faut utiliser des "and", soit c'est le même dans une ou plusieurs tables et il te faut des jointures (table1 LEFT JOIN table2 on table1.colone1=table2.colone2), soit c'est une personne différente en fonction des tables et si tu demandes les même colones dans les trois tables alors tu peux faire un "union" (select patati from table1 where ... UNION select patati from table2 where ... UNION select patati from table3 where ... )

n°1259167
art_dupond
je suis neuneu... oui oui !!
Posté le 05-12-2005 à 15:41:01  profilanswer
 

ce ne serait pas mieux de faire une table 'utilisateurs' avec un champ "type" qui renverrait vers des tables "spécialisées (client, partenaire, ...) ?

n°1259170
bob007
Posté le 05-12-2005 à 15:45:48  profilanswer
 

OKay désolé pour la section, effectivement ca serait mieux en SQL
 
Le probleme est effectivement une personne différente en fonction des tables mais c'est pas tout a fait les memes colones en fonctions des users. Le UNION marcherait tout de meme ?
 
art_dupond >> l'idée est bonne mais chaque utilisateur correspond a un process et c'est compliqué de mettre ta solution en place (et contraire a mon cahier des charges en plus!). Mais merci beaucoup!

n°1259184
omega2
Posté le 05-12-2005 à 15:52:57  profilanswer
 

Le union n'est possible que si on demande un nesemble de colone identique. Par ensemble de colone identique, ca veut dire même nombre de colone et même type de donnée pour chaque colone par rapport à la même colone des autres tables.
Evidement, ca veut dire que si t'as des colones qui correspondent à rien dans les autres, il faudra soit ne pas les demander soit rajouter dans la liste des colones des autres requettes une colone contenant une valeur par défaut. Par exemple, si "select * from table1" retourne 6 colone et si "select * from table2" en retourne deux, pour que le union marche, il faudra faire (par exemple) un "select * from table1 union, select *, null as MaColoneEnPlus from table2" (null étant la valeur que contiendra la colone calculé nomé "MaColoneEnPlus" )
 
Je sais pas si je suis assez clair dans mes explications.

n°1259200
bob007
Posté le 05-12-2005 à 16:01:04  profilanswer
 

ah ok. Je ne pense pas que ca soit la bonne solution alors.
As-tu une autre idée ?

n°1259208
bob007
Posté le 05-12-2005 à 16:03:30  profilanswer
 

en fait je voudrais que ma requete me retourne une row de tout ce qu'il y a dans une des ces tables quand le pseudo est égal à 'monpote', qu'importe la table dans laquelle il la prend!

n°1259209
omega2
Posté le 05-12-2005 à 16:04:31  profilanswer
 

Si tu peux pas faire un union, si tu peux pas utiliser de "and", alors il te reste plus qu'a faire une requette sur chaque table.

n°1259213
bob007
Posté le 05-12-2005 à 16:06:55  profilanswer
 

aie. J'avais peur de ca!

n°1259225
art_dupond
je suis neuneu... oui oui !!
Posté le 05-12-2005 à 16:16:02  profilanswer
 

je sais que tu ne peux pas mais je voudrais juste avoir des avis ;)
 
 
alors je voyais ca comme ca:
 
 
une table juste pour l'authentification.
 
users:
login (unique)
password
table_type (table_partenaire, table_client, ...)
id_dans_table_type
 
 
 
une table par type (tu gardes tes tables actuelles)
 
table_partenaire
id
nom
...
 
 
pour le login, tu vérifies login/password.  
si c'est bon, stockes le type et l'id    et/ou    tu récupères les données utiles
 
Tu connais le type d'utlistateur, la table, et l'id de l'utilisateur -> tu peux continuer ton programme normalement
 
 
Lors de l'encodage des utlisateurs, il faut alimenter la table users. (mais c'est pas compliqué non plus. puis c'est plus facile de vérifier si ce login n'existe pas encore)
 
 
 
 
Je ne trouve pas ca très compliqué à mettre en place (en gros, deux petites requetes pour le login, et un requete supplémentaire lors de l'encodage des users)
 
Voilà, j'aimerais avoir l'avis des "gens" (je suis un peu neuneu: pas savoir si solution bancale ou pas) :jap:


Message édité par art_dupond le 05-12-2005 à 16:17:21
mood
Publicité
Posté le 05-12-2005 à 16:16:02  profilanswer
 

n°1259232
bob007
Posté le 05-12-2005 à 16:19:13  profilanswer
 

ouais ta solution tient debout, aucun probleme. Ca marcherait!

n°1259238
art_dupond
je suis neuneu... oui oui !!
Posté le 05-12-2005 à 16:21:13  profilanswer
 

ok merci :jap:


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  multi utilisateurs sql

 

Sujets relatifs
arguments utilisateurs pendant l'executionSélection des utilisateurs sur une page
Gestion des droits d'utilisateurs sur un forumAppli multi sgbd
Tri multi tableauxMatching entre profils utilisateurs dans une base
Tableau à multi dimension "variable[PHP/MySQL] Webmail multi utilisateurs pour 1 compte POP
rendre une application multi-utilisateurs...Débutant, cherche exemple de dev. avec base Access Multi-Utilisateurs
Plus de sujets relatifs à : multi utilisateurs sql


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR