UPDATE complexe [SQL] - SQL/NoSQL - Programmation
Marsh Posté le 02-06-2004 à 16:43:44
AND a.numat IN (SELECT a.numat FROM ateliers a WHERE a.nom='Direction')
c'est ça qui ne va pas, il faut mettre le nom de la colonne de la table atelier, soit numat tout court
Marsh Posté le 02-06-2004 à 16:43:59
La Buvette a écrit : Bonjour, |
moi ya deja un truc qui me parait bizarre :
AND a.numat ...
a mon avis il faut pas mettre le "a."
Marsh Posté le 02-06-2004 à 16:45:18
C'est édité.
Mais ça ne fonctionne toujours pas, je désespère...
Marsh Posté le 02-06-2004 à 16:46:15
c'est quoi le message retourné ?
quoi comme base de données ?
Marsh Posté le 02-06-2004 à 16:47:36
UPDATE utilisateurs
SET mdp='roscot',droits='5'
WHERE login='test'
AND numat IN (SELECT a.numat FROM ateliers a WHERE a.nom='Direction')
c'est mieux comme ça
Marsh Posté le 02-06-2004 à 16:47:58
BDD=MySql
Message: Something is wrong in your syntax près de 'SELECT numat FROM ateliers a WHERE a.nom='Direction')' à la ligne 2
Pourtant cette requete (SELECT numat...'Direction') fonctionne parfaitement toute seule
Marsh Posté le 02-06-2004 à 16:48:32
ddr555 a écrit : c'est quoi le message retourné ? |
encore un truc???
pkoi tu met ca?? :
utilisateurs.numat=ateliers.numat
Marsh Posté le 02-06-2004 à 16:51:12
ReplyMarsh Posté le 02-06-2004 à 16:51:50
jeromejanson a écrit : encore un truc??? |
Parce que ça se présente comme ça:
_ Ateliers ('1','Direction')
_ Utilisateurs('test','ancienmdp','2','5')
Je veux donc faire une jointure entre les numat, qui sont les numéros d'atelier
Marsh Posté le 02-06-2004 à 16:53:09
La Buvette a écrit : Parce que ça se présente comme ça: |
tu veux le modifier ton numero de matiere?
Marsh Posté le 02-06-2004 à 16:54:28
Numéro d'atelier.
Oui, c'est exactement ça, pour que utilisateur 'test' passe de l'atelier 2 vers le 1
Marsh Posté le 02-06-2004 à 16:56:05
Parce qu'en fait les données viennent d'un formulaire PHP et la variable $atelier est égale au nom d'atelier (en l'occurence 'Direction' pour cet exemple)
Par mesure de simplification j'ai mis pour vous la requete avec 'Direction' mais normalement c'est '$atelier'
Voilà pourquoi je cherche à passer par le nom de l'atelier pour changer le numéro d'atelier
Marsh Posté le 02-06-2004 à 16:57:03
je suis pas sure d'avoir bien compris depuis le debut
tu peux reformuler ton besoin?
Marsh Posté le 02-06-2004 à 17:00:35
J'ai un formulaire PHP.
Il envoi des valeurs pour modifier un utilisateur:
_ $mdp, $login, $droits, $atelier...
Par exemple: $login='test', $mdp='roscot',$droits='5',$atelier='Direction'
Le fichier qui reçoit ces valeurs fait une requete pour UPDATEr la table utilisateurs.
Mais il faut passer consulter la table Ateliers pour transformer le nom d'atelier (ex: 'Direction') en un numéro d'atelier (numat='1')
Marsh Posté le 02-06-2004 à 17:03:39
La Buvette a écrit : J'ai un formulaire PHP. |
ben tu fais une requete avant qui te recupere dans une variable ton umero de matiere
et tu l'insere apres dans ton update
Marsh Posté le 02-06-2004 à 17:05:10
Je crois que je vais faire ça
C'est de la bidouille mais après tout pourquoi pas, très bonne idée
Marsh Posté le 02-06-2004 à 17:07:21
sinon essaye un truc du genre :
UPDATE utilisateurs
SET mdp='roscot',droits='5',numat=(SELECT numat FROM ateliers WHERE nom='Direction')
WHERE login='test' ;
masi je suis pas sur du tout
Marsh Posté le 02-06-2004 à 17:08:14
Non :
Something is wrong in your syntax près de 'SELECT numat FROM ateliers WHERE nom='Direction')
WHERE login=' à la ligne 2
Marsh Posté le 02-06-2004 à 17:39:43
ddr555 a écrit : UPDATE utilisateurs |
t'as essayé ça ?
Marsh Posté le 02-06-2004 à 17:40:44
oui mais:
Something is wrong in your syntax près de 'SELECT a.numat FROM ateliers a WHERE a.nom='Direction')'
Marsh Posté le 03-06-2004 à 09:59:14
suivant la version de mySql utilisée, les requête imbriquées (IN, ...) peuvent ne pas être acceptées.
A mon avis c'est ça le problème
Marsh Posté le 02-06-2004 à 16:38:01
Bonjour,
Je n'arrive pas à effectuer un UPDATE complexe, je me demande si c'est possible de le faire...
J'ai deux tables:
ATELIERS(numat,nom): numat=numéro d'atelier, nom=nom de l'atelier
Utilisateurs(login,mdp,numat,droits): table des utilisateurs, champs explicites...
Je veux faire une exécution qui modifie les attributs d'un login:
UPDATE utilisateurs
SET mdp='roscot',droits='5',utilisateurs.numat=ateliers.numat
WHERE login='test'
AND numat IN (SELECT a.numat FROM ateliers a WHERE a.nom='Direction')
Pourquoi ça ne fonctionne pas ?
Message édité par la buvette le 02-06-2004 à 16:45:58