Précédent   Forum des professionnels en informatique > Bases de données > MySQL > Administration
Administration Forum d'entraide sur l'administration de MySQL
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 26/01/2007, 10h57   #1
Membre du Club
 
Inscription : juin 2006
Messages : 215
Détails du profil
Informations forums :
Inscription : juin 2006
Messages : 215
Points : 50
Points : 50
Par défaut UPDATE donnée formulaire

Bonjour,

Je voudrais pouvoir modifier des données de ma TABLE mais je ne comprend pas pourquoi il n'éffectue pas les modifications ?
Voici mon code :

Code :
1
2
3
4
5
6
7
8
9
10
 
$sql = " UPDATE
        MA_TABLE
        SET
        ref_client            = '".$_POST['ref_client']."'
        WHERE
        IDot                  = '".$_GET['IDot']."'" ;
 
 
$result = mysql_query($sql) OR die("Erreur MySQL : Impossible de sauvegarder la/les modification/s");
Y aurais t'il une erreur ?

D'avance merci
dunbar est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/01/2007, 11h15   #2
Membre du Club
 
Avatar de Nillak
 
Inscription : octobre 2006
Messages : 138
Détails du profil
Informations personnelles :
Localisation : France, Hérault (Languedoc Roussillon)

Informations forums :
Inscription : octobre 2006
Messages : 138
Points : 45
Points : 45
Si ref_client et IDot sont du type INT alors essaie :

Code :
1
2
$sql = " UPDATE MA_TABLE SET ref_client= ".$_POST['ref_client']."
WHERE IDot = ".$_GET['IDot'];
devrait suffir
Nillak est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/01/2007, 11h35   #3
Membre du Club
 
Inscription : juin 2006
Messages : 215
Détails du profil
Informations forums :
Inscription : juin 2006
Messages : 215
Points : 50
Points : 50
Citation:
Envoyé par Nillak
Si ref_client et IDot sont du type INT alors essaie :

Code :
1
2
$sql = " UPDATE MA_TABLE SET ref_client= ".$_POST['ref_client']."
WHERE IDot = ".$_GET['IDot'];
devrait suffir
Salut

IDot est du TYPE INT mais ref_client est du type VARCHAR
Ceci dit même en modifiant le type cela ne change rien.

Merci
dunbar est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/01/2007, 11h48   #4
Membre du Club
 
Avatar de Nillak
 
Inscription : octobre 2006
Messages : 138
Détails du profil
Informations personnelles :
Localisation : France, Hérault (Languedoc Roussillon)

Informations forums :
Inscription : octobre 2006
Messages : 138
Points : 45
Points : 45
ne modifie pas le type de ta base, essaie :
Code :
1
2
3
 
$sql = " UPDATE MA_TABLE SET ref_client= '".$_POST['ref_client']."'
WHERE IDot = ".$_GET['IDot'];
ou tout simplement décompose le code :
Code :
1
2
3
4
$REFC = $_POST['ref_client'];
$IDOT = $_GET['IDot'];
$sql = " UPDATE MA_TABLE SET ref_client= '".$REFC."'
WHERE IDot = ".$IDOT;
ensuite tu concateneras tout ça
Nillak est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/01/2007, 12h01   #5
Membre du Club
 
Inscription : juin 2006
Messages : 215
Détails du profil
Informations forums :
Inscription : juin 2006
Messages : 215
Points : 50
Points : 50
Voici mon code et cela ne change rien sinon l'erreur suivante :
Impossible de sauvegarder les modifications
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
 
$REF_C = $_POST['ref_client'];
$IDOT = $_GET['IDot'];
 
 
 
echo $requete = " UPDATE
        MA_TABLE        SET
        ref_client            = '".$REF_C."'
        WHERE
        IDot                  = ".$IDOT ;
 
$result = mysql_query($requete) OR die("Erreur MySQL : Impossible de sauvegarder les modifications");
Merci
dunbar est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/01/2007, 12h24   #6
Membre du Club
 
Avatar de Nillak
 
Inscription : octobre 2006
Messages : 138
Détails du profil
Informations personnelles :
Localisation : France, Hérault (Languedoc Roussillon)

Informations forums :
Inscription : octobre 2006
Messages : 138
Points : 45
Points : 45
Erf, Un autre truc tu récupères le résultat dans la variable $result or tu fais un UPDATE tu n'auras donc pas de retour.
Ensuite pourquoi ne pas essayer pas à pas !
Tu fais un UPDATE tout simple, je connais pas ta table donc je te donne ça un peu au hasard:
Code :
mysql_query("UPDATE MA_TABLE SET ref_client='reftest' WHERE IDot =1");
et ensuite tu vérifie que la ligne en question (soit IDot=1) a bien été modifié
Code :
$result = mysql_query("SELECT ref_client FROM MA_TABLE WHERE IDot=1");
Nillak est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/01/2007, 12h25   #7
Modérateur
 
Avatar de Cybher
 
Homme Michel
Consultant informatique
Inscription : mai 2005
Messages : 3 006
Détails du profil
Informations personnelles :
Nom : Homme Michel
Âge : 29
Localisation : France

Informations professionnelles :
Activité : Consultant informatique
Secteur : Conseil

Informations forums :
Inscription : mai 2005
Messages : 3 006
Points : 4 039
Points : 4 039
euh.. c'est quoi le echo qui se balade??
defini $requete et fais le echo apres
et dis nous ce que te retourne cet echo
Cybher est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/01/2007, 12h33   #8
Membre du Club
 
Inscription : juin 2006
Messages : 215
Détails du profil
Informations forums :
Inscription : juin 2006
Messages : 215
Points : 50
Points : 50
Citation:
Envoyé par Cybher
euh.. c'est quoi le echo qui se balade??
defini $requete et fais le echo apres
et dis nous ce que te retourne cet echo
Le echo est là uniquement pour voir ma requete.

Donc je voie quand je valide
Code :
UPDATE MA_TABLE SET ref_client = '' WHERE IDot = ''
mais je voudrais voir
Code :
UPDATE MA_TABLE SET ref_client = 'xxxxxxx' WHERE IDot = 'xxxx'
dunbar est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/01/2007, 14h11   #9
Membre du Club
 
Avatar de Nillak
 
Inscription : octobre 2006
Messages : 138
Détails du profil
Informations personnelles :
Localisation : France, Hérault (Languedoc Roussillon)

Informations forums :
Inscription : octobre 2006
Messages : 138
Points : 45
Points : 45
bon me revoilou
voici un petit script qui devrait te libérer de tes problèmes, que je viens d'écrire et tester sous easyphp. J'avais créé une table MA_TABLE dans la base querytest

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<?php
  $REFC='sdsdsdsd';
  $IDOT='1';
 
  $mabasededonnee='querytest';
  $connection = mysql_connect('localhost','root','');
  IF ( ! $connection ) die ('connection impossible');
  mysql_select_db($mabasededonnee) OR die ('pas de connection');
 
  $requete_result=mysql_query("SELECT * from ma_table",$connection);
 
  mysql_query("UPDATE MA_TABLE SET ref_client = '".$REFC."' WHERE IDot = ".$IDOT,$connection);
  $numLigne = mysql_num_rows($requete_result);
  FOR ($i=0; $i < $numLigne; $i++)  {
    $ligne = mysql_fetch_array($requete_result);
    echo $ligne['ref_client']."<BR>";
  }
  mysql_close($connection);
?>
il te suffit de remplacer :

Code :
1
2
3
  $REFC='sdsdsdsd';
  $IDOT='1';
  $mabasededonnee='querytest';
par

Code :
1
2
3
$REFC = $_POST['ref_client'];
$IDOT= $_GET['IDot'];
$mabasededonnee='le_nom_de_ta_base';
et tout devrait rentrer dans l'ordre. Bon c'est du basique ce que je te donne mais ça marche. Evidemment il te faut aussi changer
Code :
1
2
 
  $connection = mysql_connect('localhost','root','');
par
Code :
1
2
 
  $connection = mysql_connect('ton_host','ton_user','ton_mot_de_passe');
voili
Nillak est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/01/2007, 14h52   #10
Modérateur
 
Avatar de Cybher
 
Homme Michel
Consultant informatique
Inscription : mai 2005
Messages : 3 006
Détails du profil
Informations personnelles :
Nom : Homme Michel
Âge : 29
Localisation : France

Informations professionnelles :
Activité : Consultant informatique
Secteur : Conseil

Informations forums :
Inscription : mai 2005
Messages : 3 006
Points : 4 039
Points : 4 039
c'est que tes variables ne contiennent pas ce qu"il devrait contenir
Cybher est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 20h24.


 
 
 
 
Partenaires

Hébergement Web