modifier un enregistrement d'une base MySQL ?

Eléphanteau du PHP | 31 Messages

26 janv. 2006, 12:21

Bonjour,

J'affiche dans un tableau, le contenu d'une table, d'une base de données MySQL.

Les données affichées se trouvent dans des zones de textes car je voudrais pouvoir modifier directement un enregistrement depuis une ligne de mon tableau. Je voudrais pouvoir faire directement des modifications dans mon tableau et que ces modifications soit directement pris en compte dans ma base.

ci-dessous le bouton (image) qui me permet de valider la modif :
<a href="toto.php?id=<?php echo $row_Recordset1['id'];?>&ordre=<?php echo $row_Recordset1['ordre'];?>&type=<?php echo $row_Recordset1['type'];?>&nom=<?php echo $row_Recordset1['nom'];?>&valeur=<?php echo $row_Recordset1['valeur'];?>&modif=1" 
onMouseOut="MM_swapImgRestore()" onMouseOver="MM_swapImage('img_supp','','../images/modif.png',1)">
puis le script de modif de la base :
if ($modif == "1") {
  $updateSQL = sprintf("UPDATE MaTable SET ordre=%s, type=%s, nom=%s, valeur=%s WHERE id=%s",
                       GetSQLValueString($ordre, "int"),
                       GetSQLValueString($type, "int"),
                       GetSQLValueString($nom, "text"),
                       GetSQLValueString($valeur, "text"),
                       GetSQLValueString($id, "int"));

echo " ";					   
echo $updateSQL;					   

  mysql_select_db($database_connexion, $connexion);
  $Result1 = mysql_query($updateSQL, $connexion) or die(mysql_error());

  $updateGoTo = "toto.php";
  if (isset($_SERVER['QUERY_STRING'])) {
    $updateGoTo .= (strpos($updateGoTo, '?')) ? "&" : "?";
    $updateGoTo .= $_SERVER['QUERY_STRING'];
  }
Le problème c'est que les champs modifiés ne sont pas pris en compte.
Comment dois-je faire ? Je veux absolument me servir des champs affichés pour faire ma modification.

Merci de votre aide.

Eléphanteau du PHP | 31 Messages

30 janv. 2006, 00:44

Snif snif :cry: personne ne semble pouvoir m'aider pour ce problème.
Peut être que je suis pas très clair dans l'explication de mon problème, alors n'hésiter pas à me poser des questions.

Dans l'attente de vous lire prochainement je vous remerci par avance.

Mammouth du PHP | 19672 Messages

30 janv. 2006, 00:52

Est-ce que tu récupères bien les données de ton formulaire ? fais-les afficher pour vérificaction avec un echo;

Ensuite fais également afficher ta requête SQL générée pour la contrôler et éventuellement la tester directement dans phpMyAdmin.
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Modérateur PHPfrance
Modérateur PHPfrance | 7636 Messages

30 janv. 2006, 01:04

j'ai bien peur que notre cher camarade ne récupère pas les données du formulaire donc POST mais les valeurs passées dans l'url donc GET :-k


il faut valider le formualire pour prendre en compte les changements

/!\ Avant de poster se documenter et rechercher.
Qui ne sait pas rendre un service n'a pas le droit d'en demander.
MaBrute

Eléphanteau du PHP | 31 Messages

30 janv. 2006, 01:05

Est-ce que tu récupères bien les données de ton formulaire ? fais-les afficher pour vérificaction avec un echo;

Ensuite fais également afficher ta requête SQL générée pour la contrôler et éventuellement la tester directement dans phpMyAdmin.
J'ai effectivement mis un echo sur la variable qui contient ma requête.
La requête est correct mais ne tiens pas compte des nouvelles valeurs.

exemple :
ancienne valeurs : nom=toto id=5
nouvelle valeurs : nom=titi id=5
requete= udpate matable set nom='toto' where id=5;

Je ne sais pas comment faire pour que les nouvelles valeurs soient prise en compte.

Merci de votre aide

Mammouth du PHP | 19672 Messages

30 janv. 2006, 01:07

Il manque la partie de code de récupération des données, difficile de voir si l'erreur ne serait pas là :-k
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Eléphanteau du PHP | 31 Messages

30 janv. 2006, 01:16

Il manque la partie de code de récupération des données, difficile de voir si l'erreur ne serait pas là :-k
Voici ce qui me permet de récupérer les données :
<a href="toto.php?id=<?php echo $row_Recordset1['id'];?>&ordre=<?php echo $row_Recordset1['ordre'];?>&type=<?php echo $row_Recordset1['type'];?>&nom=<?php echo $row_Recordset1['nom'];?>&valeur=<?php echo $row_Recordset1['valeur'];?>&modif=1" 
onMouseOut="MM_swapImgRestore()" onMouseOver="MM_swapImage('img_supp','','../images/modif.png',1)">
NB : mes données se trouvent dans un tableau.

La difficulté c'est que je veux faire ma modification directement depuis les champs de texte du tableau.

Mammouth du PHP | 19672 Messages

30 janv. 2006, 01:17

Je parle de la récupération des données lorsque tu postes le formulaire, pas celle que tu récupères de la base.
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Eléphanteau du PHP | 31 Messages

30 janv. 2006, 01:26

Je parle de la récupération des données lorsque tu postes le formulaire, pas celle que tu récupères de la base.
C'est là où est mon erreur car je récupère les champs de la base pour faire ma modification donc cela ne risque pas de fonctionner...

En fait je ne sais pas comment faire pour pouvoir récupérer le contenu des champs de texte sur une ligne en particulier dans mon tableau car les lignes de mon tableau son dynamique.

Car le but de mon exercice c'est :
1) je récupère les champs d'une base et j'affiche le résultat dans un tableau
2) je doit pouvoir modifier une ligne au choix de mon tableau, en modifiant les champs de textes de cette ligne.

Merci de votre aide.