iiifff Posté 7 Décembre 2004 Posté 7 Décembre 2004 Bonsoir, Est-ce qu'il possible de mettre à jour une série de champs en un seul update ? C'est à dire j'ai une table avec plusieurs lignes qui ont les mêmes champs: numero. exemple: id=1, numero=10, nom=paul, prénom=pierre, valide=non id=2, numero=10, nom=dupont, prénom=michel, valide=non id=3, numero=12, nom= durand, prénom=paul, valide=non un formulaire envoie les champs: valide et numero Donc, est-il possible de mettre à jour la table avec une requête du type mysql_db_query($sql_bdd,"UPDATE table SET valide='$valide' WHERE numero='$num",$db_link); le but étant par exemple de mettre à jour les lignes dont le numero=10, en une seule fois ? (chuis pas sûre que j'arrive à être assez clair là... ) Avec ce que j'ai fait, le champ ne se met pas à jour, mais il devient vide... MERCI
Anonymus Posté 7 Décembre 2004 Posté 7 Décembre 2004 S'il devient vide, c'est qu'il se met à jour Seulement, les données que tu envoies ne sont pas celles que tu crois. Il faudrait voir du coté de la variable $valide, ce qu'elle renvoie. Elle est peut etre vide. Affiches ta requète, au lieu de l'envoyer à la base de données, tu auras peut etre des surprises. Anonymus.
MarvinLeRouge Posté 8 Décembre 2004 Posté 8 Décembre 2004 ...C'est à dire j'ai une table avec plusieurs lignes qui ont les mêmes champs: numero. ... Donc, est-il possible de mettre à jour la table avec une requête du type mysql_db_query($sql_bdd,"UPDATE table SET valide='$valide' WHERE numero='$num",$db_link); le but étant par exemple de mettre à jour les lignes dont le numero=10, en une seule fois ? ... MERCI <{POST_SNAPBACK}> Salut, 1) Oui ta requète est bien conçue pour mettre à jour TOUTES les lignes ayany la colonne numero à 10. 2) Je crois avoir repéré une erreur dans ta requète : tu mets une apostrophe devant le champ numero (pourquoi d'ailleurs ? c'est un nombre), que tu ne refermes pas (tu ne refermes que la double quote de début de chaîne.
iiifff Posté 10 Décembre 2004 Auteur Posté 10 Décembre 2004 Bonjour, Oui, il y a avait bien une erreur se syntaxe dans la déclaration de la variable "valide". Excusez-moi, je n'ai pas le code exact sous les yeux maintenant, mais je cherche juste à savoir si ce que je veux faire est possible et quel genre de méthode je dois chercher. Car en fais en fait c'est quelque chose de plus compliqué que je cherche à faire. Si on rajoute deux champs sur cette table -table- id=1, nom=paul, prénom=pierre, valide=oui, numero_film1=10, rest=1 id=2, nom=paul, prénom=pierre, valide=oui, numero_film1=11, rest=5 id=2, nom=dupont, prénom=michel, valide=non, numero_film1=12, rest=3 est il possible de mettre à jour une autre table -quantite-, "en cascade" , qui aurait les champs: id=1, titre=Brazil, description= etc...,quantite: 10, numero_film= 10 id=2,titre=Le sens de la vie, description=etc, quantite:8, numero_film= 11 id=3,titre=La vie de Brian, description=etc...,quantite=10, numero_film= 12 Donc je voudrai créer un update que remplace quantite par $rest where numero_film=numero_film1 là où dans table valide=oui Donc un truc du genre: select dans table where valide=oui while ... {numero_film1=$data[numero_film1]; rest=$data[rest]; update quantite set quantite=$rest where valide=oui and numero_film=numero_film1;} j'ai peur que cette requete mette partout un seul et même $rest et pas les $rest correspondant au $numero_film N'y a-t-il pas moyen de créer des relations entre table au niveau mysql ? Merci
MarvinLeRouge Posté 10 Décembre 2004 Posté 10 Décembre 2004 1) Il y a moyen de créer des relations entre des tables : c'est le principe de la base de dnnées et ce n'est pas spécifique à MySql. On peut même faire que la modification d'une table influe sur une autre (cf tables InnoDB par exemple) 2) Ca devrait donner un truc du genre (pas testé) : update film set quantite = pe.rest from film fi inner join persone pe on pe.numero_film1 = fi.numero_filmwhere pe.valide = 'oui'
iiifff Posté 17 Décembre 2004 Auteur Posté 17 Décembre 2004 Bonjour, Finalement je m'en suis sortie sans inner join, en imbriquant plusieurs while , remontant différents champs un à un (i, puis i+1, etc...) et en limitant le nombre de résultats updatés. La requête est sans doute plus lourde à traiter, mais bon pour l'instant ça suffira. Merci en tout cas de m'avoir orienté vers le "inner join", que je vais étudier parce que ça m'a l'air très pratique. Bonnes fêtes à tous.
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant