Probleme Update PHP

Résolu/Fermé
nikita34 - 24 févr. 2009 à 10:10
 nikita34 - 24 févr. 2009 à 16:12
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 jeudi 8 mars 2007 Statut Membre Dernière intervention 2 août 2010 1
24 févr. 2009 à 10:39
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 dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 894
24 févr. 2009 à 10:55
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 jeudi 8 mars 2007 Statut Membre Dernière intervention 2 août 2010 1
24 févr. 2009 à 10:58
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
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 dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 894
24 févr. 2009 à 13:20
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
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
ok c'est bon j'ai trouvé

merci à tous
0