Resultat impossible a modifier

jacky_4L_poubelle
Invité n'ayant pas de compte PHPfrance

10 août 2006, 15:24

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.

jacky_4l_poubelle
Invité n'ayant pas de compte PHPfrance

10 août 2006, 15:51

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

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

10 août 2006, 16:00

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 ;)
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer

Petit nouveau ! | 8 Messages

10 août 2006, 16:01

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
Heureux l'étudiant qui, comme le fleuve, suit son cours depuis son lit.

jacky_4l_poubelle
Invité n'ayant pas de compte PHPfrance

10 août 2006, 16:10

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...

jacky_4l_poubelle
Invité n'ayant pas de compte PHPfrance

10 août 2006, 16:11

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.

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

10 août 2006, 16:12

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 ;)
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer

jacky_4l_poubelle
Invité n'ayant pas de compte PHPfrance

10 août 2006, 16:24

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 !!!