Probleme Update PHP [Résolu/Fermé]

Signaler
-
 nikita34 -
Bonjour,

Je rencontre un problème avec une requete SQL contenant un Update

Le probleme c'est que cela ne se produit que sur un seul champ (le nom) et que si je mets cette partie de code en commentaire, la modification fonctionne parfaitement. Sinon rien ne s'execute.

Voici le code, le soucis de modification étant ce qui se trouve en commentaire :

<?
include('connect.php');

$fournisseur=$_POST['nomF'];

//=================================================
//récuperation des donnée fournisseurs dans la base
//=================================================
$sql="SELECT * FROM fournisseurs WHERE nomF = '$fournisseur';";

$requet=mysql_query($sql) or die('Erreur 1: '.mysql_error() );
$result=mysql_fetch_array($requet);

if($result[2] !=$_POST['choixFab'])
{
$req='update fournisseurs set Fabricant ="'.$_POST['choixFab'].'" where numF ='.$result[0].' ;';
$res=mysql_query($req) or die ('Erreur Fabricant: '.mysql_error() );

}

if($result[3] !=$_POST['choixGro'])
{
$req='update fournisseurs set Grossiste ="'.$_POST['choixGro'].'" where numF ='.$result[0].' ;';
$res=mysql_query($req) or die ('Erreur Grossiste: '.mysql_error() );

}

//if($result[4] != '$fournisseur')
//{
// $req="update fournisseurs set nomF ='$fournisseur' where numF =".$result[0]." ;";
// $res=mysql_query($req) or die ('Erreur Nom: '.mysql_error() );
//
//}

7 réponses

Messages postés
313
Date d'inscription
jeudi 8 mars 2007
Statut
Membre
Dernière intervention
2 août 2010

Salut,

As tu vérifié que le nom du champ dans la BDD est bien nomF ?

Sinon, quel est le message d'erreur ?
Messages postés
5374
Date d'inscription
dimanche 3 février 2008
Statut
Membre
Dernière intervention
13 février 2017
869
Bonjour,

deux remarques:

ecris les "ordres" SQL en majuscules comme SELECT UPDATE etc.. c'est beaucoup plus facile à lire dans le script

tu fais un mysql_fetch_array, alors profites en pour utiliser les index = nom du champ au lieu des numéros 0 1 2 etc.. beaucoup plus facile à débugger

$req="UPDATE fournisseurs SET nomF ='".$fournisseur."' WHERE numF =".$result['nomduchamp_1']." ;";


en plus tu as une erreur de conception:
if($result[4] != '$fournisseur')
je suppose que tu veux modifier la base si l'utilisateur a modifié le nom du fournisseur dans le formulaire, hors tu fais ton interro base avec le nom posté (donc modifié) et tu fais l'UPDATE par rapport à ce nom modifié donc introuvable puisque pas dans la base

@lain
Messages postés
313
Date d'inscription
jeudi 8 mars 2007
Statut
Membre
Dernière intervention
2 août 2010

if($result[4] != '$fournisseur') => ce qui veut tout simplement dire que si le nom a été modifié, on fait l'update mais que si il n'a pas été modifié, on ne fait rien.
Re.

Le soucis est que si j'enleve le commentaire alors cela me retourne : Erreur Fabricant, qui correspond au 1er update...

Si je laisse le commentaire, les modifications se passent très bien.

Merci.
Messages postés
5374
Date d'inscription
dimanche 3 février 2008
Statut
Membre
Dernière intervention
13 février 2017
869
tu as mis:

or die ('Erreur Fabricant: '.mysql_error() ); dans ta requette donc ça doit te sortir une erreur un peu plus complete que ce que tu nous mets( Erreur fabriquant)

alors soit tu nous mets cette info, soit tu l'exploites
désolé,

voici l'info : Erreur Fabricant: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1
ok c'est bon j'ai trouvé

merci à tous