Probleme Update PHP

Résolu
nikita34 -  
 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() );
//
//}
A voir également:

7 réponses

Mikey_UFC Messages postés 312 Date d'inscription   Statut Membre Dernière intervention   1
 
Salut,

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

Sinon, quel est le message d'erreur ?
0
Alain_42 Messages postés 5361 Date d'inscription   Statut Membre Dernière intervention   894
 
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
0
Mikey_UFC Messages postés 312 Date d'inscription   Statut Membre Dernière intervention   1
 
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.
0
nikita34
 
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.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Alain_42 Messages postés 5361 Date d'inscription   Statut Membre Dernière intervention   894
 
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
0
nikita34
 
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
0
nikita34
 
ok c'est bon j'ai trouvé

merci à tous
0