[PHP/MySQL] probleme de UPDATE

Fermé
nazih - 22 mai 2008 à 15:21
 nazih - 22 mai 2008 à 18:33
Bonjour,
j'ai un gros probleme,
j'ai 2 tables qui sont créées et remplies:

la table pim_rel (id_rel,nom_rel,id_class1,nom_class1,id_class2,nom_class2).

et la table classe_psm_raffine(id_class,nom_class).

ce que je veux moi c'est mettre à jours les champs de id_class1 et id_class2 de la table pim_rel avec le id_class de la table classe_psm_raffine (en faisant égalité sur les noms de classes)

j'ai écrit le code suivant qui me semble en vue correcte,mais aprés execution il laisse les champs tels quels.

voici le code:

<?php
mysql_connect("localhost", "root", ""); 
mysql_select_db("test");
$retour=mysql_query("SELECT * FROM classe_psm_raffine");
while($data=mysql_fetch_array($retour))
{echo $data['id_class'];
echo $data['nom_class'];
mysql_query("UPDATE pim_rel SET id_class1=(SELECT id_class FROM classe_psm_raffine WHERE nom_class='$data[nom_class]') WHERE nom_class1='$data[nom_class]'");
mysql_query("UPDATE pim_rel SET id_class2=(SELECT id_class FROM classe_psm_raffine WHERE nom_class='$data[nom_class]') WHERE nom_class2='$data[nom_class]'");
}
?>


ps: les echo $data['id_class'] et $data['nom_class'] c'était pour m'assurer si il affiche les bons noms et id.

merci de m'aider
A voir également:

3 réponses

kilian Messages postés 8732 Date d'inscription vendredi 19 septembre 2003 Statut Non membre Dernière intervention 5 février 2025 1 526
22 mai 2008 à 16:48
Salut,

Tu as une erreur spécifique?
Sinon j'aurais bien une idée:
UPDATE pim_rel SET id_class1=(SELECT id_class FROM classe_psm_raffine WHERE nom_class='$data[nom_class]') WHERE nom_class1='$data[nom_class]'

Ton select risque de te renvoyer plusieurs résultat j'imagine non?
Essaie avec ça:
UPDATE pim_rel SET id_class1=(SELECT id_class FROM classe_psm_raffine WHERE nom_class='$data[nom_class]' LIMIT 1) WHERE nom_class1='$data[nom_class]'


Sinon il faudrait tester les requêtes avec PhpMyAdmin pour voir.
0
j'ai essayé ça marche tjr pas avec le LIMIT 1, ça renvoi tjr le meme résultat (pas de mise a jours des champs)
par contre,j'ai remarqué que si je supprime les champs qui vont etre modifier de PhpMyAdmin juste avant l'execution du script,là ça me met a jour les champs !!!! c'est quoi le probleme??
0
Alain_42 Messages postés 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 894
22 mai 2008 à 18:19
Essayes comme ça:

"UPDATE pim_rel SET id_class1='classe_psm_raffine.id_classe' WHERE pim_rel.nom_classe1='classe_psm_raffine.nom_classe'")


et une deuxieme idem pour l'id_classe2
0
là ça ne marche pas dutt,aucune mise a jour dans la table meme qd les champs sont vide juste avant!!!
0