Problème pour récupérer plusieurs variables en même temps

bko
Petit nouveau ! | 3 Messages

20 déc. 2007, 12:58

Bonjour,

je gère actuellement un parc informatique avec une base mysql et interface PHP. Tout fonctionne à part une petite chose...

J'ai une table "modele" qui contient les différents modèle de pc.

Lorsque je modifie un modele de cette table, je voudrais que la modif se répercute sur la table qui contient toutes les infos (utilisateur, telephone... et modele). Actuellement, seule la table modele est modifiée mais pas l'autre table, donc les utilisateur garde le modele non modifié.

Ce que je souhaite faire, c'est de récupérer l'identifiant de chaque enregistrement qui font référence au modele que je veux modifier, afin que la modif se répercute sur les id concernés.

Voci mon code :


<?
        $query="select * from modele where nummodele = $HTTP_GET_VARS[nummodele]";
	$result = execrequete($query,$dbLink);
	$row=mysql_fetch_array($result);
        //Ici je recupère le numéro de modele que je souhaite mofifier.
		
	$sql = "select id from info where modele = '$HTTP_GET_VARS[typemodele]'";
	$db = mysql_connect('localhost', 'root', '');
	mysql_select_db('parc',$db);
	$req = mysql_query($sql) or die('Erreur SQL !</td>'.$sql.'</td>'.mysql_error());
	while($data = mysql_fetch_array($req))
	{
	}
         mysql_close();
         ....
         ....
         <form method=post action=valmodifmodele.php?edit=<? echo "$row[nummodele]";?>&edit2=<? echo "$data[id]";?>">
<input type='hidden' name='nummodele' value="<? echo"$HTTP_GET_VARS[nummodele]";?>">

        // Pour cette 2eme requete, je recupère tous les identifiants qui contiennet le modele que je veux modifier.

?>

Ensuite, dans la page valmodif, j'execute mes 2 requetes update :

$edit2 = $_GET['edit2'];

$query="UPDATE modele SET typemodele='".($_POST["typemodele"])."' WHERE nummodele='".($_POST["nummodele"])."'";
$result = execrequete($query,$dbLink);
		
$query2="UPDATE info SET modele='".($_POST["typemodele"])."' WHERE id= '$edit2'";
$result2 = execrequete($query2,$dbLink);

// dans cette deuxieme requette, la variable $edit2 ne contient pas tous les id qui contiennent le modele que je veux modifier...
Avez vous une solution ? Merci d'avance !

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

20 déc. 2007, 13:20

C'est pas très clair pour moi...

Si tu modifies la tables des modèles, tu ne devrais avoir aucune "répercussion" à faire. Au mieux tu as une modif à faire sur un utilisateur pour dire que tu lui as changé son poste, mais si tu as d'autres informations que l'id du model dans ta table d'informations, c'est que le modèle de ta base n'est pas bon... ce serait d'ailleurs bien de nous montrer la structure de tes tables :)
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...

bko
Petit nouveau ! | 3 Messages

20 déc. 2007, 16:55

Je comprends ton raisonnement.

En fait jai mal concu ma base des le départ, c'est a dire que j'ai une table "mdoele" qui contient les différents modèles et une table nommé "info" qui elle même possède un champ "modèle", lui même alimenté par selection de ce qui se trouve dans la table modele...

C'est pour cette raison que je veux updater la table info en même temps que j'update la table modele...

Ou sinon, comment alimenter le champ modèle de la table info a partir de la table modele ? il faut indiquer l'id du modele correspondant dans la table ?

[Note : ce message a été posté de manière anonyme avant d'être réattribué à son auteur]

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

20 déc. 2007, 17:22

En fait, dans l'idéal ta table info ne devrait contenir que l'id du modele. Tu pourrais ainsi changer comme bon te semble les données relatives à un modele sans avoir à toucher à la table info :)

Dans ton cas, il faudrait envisager un truc du genre

Code : Tout sélectionner

UPDATE info SET modele='nouveauModele' WHERE modele='ancienModele'
Mais il serait peut être interessant de prendre un peu de temps pour refaire une structure propre et cohérente pour ta base. Ca sera autant de temps de gagné à chaque fois qu'il te faudra apporter une modification :)
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...

bko
Petit nouveau ! | 3 Messages

20 déc. 2007, 18:43

OK compris...

Je vais essayer de fonctionner de cette facon.

Merci

:D

Edit : en effet ca marche mieux :)

Merci !!

[Note : ce message a été posté de manière anonyme avant d'être réattribué à son auteur]