Page 1 sur 1

Resultat impossible a modifier

Posté : 10 août 2006, 15:24
par jacky_4L_poubelle
Bonjour,

J'ai crée une requête :

Code : Tout sélectionner

SELECT Date_affect, gar_fin, model_art FROM `t_article` LEFT JOIN `t_histo_article` ON t_article.ID_ART = t_histo_article.ID_ART WHERE `MODEL_ART` LIKE CONVERT( _utf8 'HP d530 SFF(DK907T)' USING latin1 ) COLLATE latin1_swedish_ci LIMIT 0 , 30
Cette requete me retourne plusieurs resultat.

Je souhaiterai changer les valeures date_affect ainsi que gar_fin par d'autre valeures, et ce pour toutes la listes.

Le problème est que phpMyAdmin ne me proposer pas les incones pour modifier ces champs. Or il m'est impossible de changer ces champs sans faire de jointure.

Merci pour votre aide.

Posté : 10 août 2006, 15:51
par jacky_4l_poubelle
je m'explique plus clairement,

Code : Tout sélectionner

SELECT Date_affect, gar_fin, model_art
Date_affect me renvoie la date d'achat d'un ordinateur,
gar_fin la date de fin de garantie
model_art le nom du model

donc comme precisé plus haut, la requête marche bien, mais elle ne mepermet pas de modifier ces valeurs.

Je souhaite modifier ces valeurs pour chaque type d'ordinateur, en une seule fois si possible (par exemple j'ai 40 ordinateur IBM t43) je souhaite modifier leur date d'achat et de garantie sans retappez 40 fois ces dates).

donc voila, j'espère avoir etait suffisament clair !

Merci

Posté : 10 août 2006, 16:00
par zeus
Une requete UPDATE modifie les resultats alors qu'une requete SELECT les affiches ;)

Donc si cette requete SELECT t'affiches bien les résultats que tu attends, il suffit de la modifier en UPDATE pour modifier tous tes résultats d'un coup ;)

Posté : 10 août 2006, 16:01
par Kwansu
Salut,

En passant par une requete du genre

UPDATE t_article SET Date_affect = 'nouvelle_date', gar_fin = 'nouvelle_date_fin_gar' WHERE `model_art` = 'IBM t43'
Tu changerais les valeurs de Date_affect et gar_fin pour les modele IBM t43

Posté : 10 août 2006, 16:10
par jacky_4l_poubelle
Je viens de me renseigner sur les requetes UPDATE, j'ai remplacer le select par update et cela ne marche toujours pas.

J'ai MySQL 4.1.9 ainsi que PHPMyAdmin 2.6.1

Je ne sais pas si UPDATE marche avec les jointures...

Posté : 10 août 2006, 16:11
par jacky_4l_poubelle
Re,

le prob c'est que
<?php UPDATE t_article SET Date_affect = 'nouvelle_date', gar_fin = 'nouvelle_date_fin_gar' WHERE `model_art` = 'IBM t43' ?>
Mais
Date_affect = 'nouvelle_date',
gar_fin = 'nouvelle_date_fin_gar' sont dans une table et
`model_art`dans une autre.

Posté : 10 août 2006, 16:12
par zeus
Les jointures fonctionne très bien sur les updates depuis Mysql 4.0.4 ;)

Par contre, pour que ta requete SELECT deviennent UPDATE, il faut un peu plus de travail que ça ;)

Posté : 10 août 2006, 16:24
par jacky_4l_poubelle
Voila,

Code : Tout sélectionner

UPDATE `t_article` LEFT JOIN `t_histo_article` ON t_article.ID_ART = t_histo_article.ID_ART SET date_affect ='DATE_ACHAT', gar_fin='FIN_GARANTIE' WHERE `MODEL_ART` LIKE CONVERT( _utf8 'MODELE' USING latin1 ) COLLATE latin1_swedish_ci
Cette requete marche bien.

Je vous remercie !!!