probleme update base de donné mysql via un formulaire

  • Auteur de la discussion venom511
  • Date de début

venom511

Nouveau membre
Salut à tous,
je suis actuellement en stage et je débute en php.
On m'a dans un premier temps demandé de créer un formulaire afin de remplir une base de donnée MYSQL ce que j ai réussi à faire après quelques galères. :pt1cable:
Ma tache consiste maintenant à modifier ce formulaire et mon problème viens de la requête update que voici :
[cpp]
$sql = "UPDATE `client` set id=NULL, nom='".$nom."', login='".$login."', pass='".$pass."', adresse='".$adresse."', cp='".$cp."', ville='".$ville."', tel='".$tel."', fax='".$fax."', email='".$email."' WHERE id=".$_GET['rec'];
$res = mysql_query($sql);[/cpp]
Je n'arrive pas à trouver la solution !
J'en ai le cerveau qui brule ! :ouch:

Merci d'avance !

EDIT: voici le message d'erreur que j'obtiens:
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
 

zeb

Modérateur
C'est quoi ces anti-quotes ?
Pourquoi faire un SET id=NULL ?
As-tu des apostrophes dans tes variables ?
 

venom511

Nouveau membre
C'est quoi ces anti-quotes ?
Pourquoi faire un SET id=NULL ?
As-tu des apostrophes dans tes variables ?

salut,
Je suis vraiment débutant voila le code qui fonctionne pour le premier formulaire il rempli la BDD.
il faudrait juste remplace la requete INSERT par UPDATE je pense....
[cpp]// vérification des champs
if (empty($_POST['nom']))
$message .= "nom<br/>";
if (empty($_POST['login']))
$message .= "login<br/>";
if (empty($_POST['pass']))
$message .= "pass<br/>";
if (empty($_POST['adresse']))
$message .= "adresse<br/>";
if (empty($_POST['cp']))
$message .= "cp<br/>";
if (empty($_POST['ville']))
$message .= "ville<br/>";
if (empty($_POST['tel']))
$message .= "tel<br/>";
if (empty($_POST['fax']))
$message .= "fax<br/>";
if (empty($_POST['email']))
$message .= "email<br/>";

// si un champ est vide, on affiche le message d'erreur
if (strlen($message) > strlen($msg_erreur)) {

echo $message;

// sinon c'est ok
} else {

foreach($_POST as $index => $valeur) {
$$index = mysql_real_escape_string(trim($valeur));
}

$interets = $_POST['interets'];
$sqlinterets = '';
for ($i=0; $i<count($interets); $i++)
{
$sqlinterets .= $interets[$i];
$sqlinterets .= ', ';
}


$sql = "INSERT INTO `client` (`id`, `nom`, `login`, `pass`, `adresse`, `cp`, `ville`, `tel`, `fax`, `email`) VALUES (NULL, '".$nom."','".$login."', '".$pass."', '".$adresse."', '".$cp."', '".$ville."', '".$tel."', '".$fax."', '".$email."')";
$res = mysql_query($sql);

if ($res) {
echo $msg_ok;
} else {
echo mysql_error();
} [/cpp]

Après pour la syntaxe utilisé je peut pas trop de dire pourquoi il y a des anti-quotes, pour id=NULL c'est la clef de ma table et elle s'autoincremente.

Voila ce que je peux te dire... :cry:
 

zeb

Modérateur
[strike]C'est quoi ces anti-quotes ?[/strike]
Pourquoi faire un SET id=NULL ?
As-tu des apostrophes dans tes variables ?
 

venom511

Nouveau membre
[strike]C'est quoi ces anti-quotes ?[/strike]
Pourquoi faire un SET id=NULL ?
As-tu des apostrophes dans tes variables ?

Pour les apostrophes je t 'avoue que j'en sais rien :pt1cable:
Et pour SET id=NULL c'est du freestyle ... :sweat:
 

zeb

Modérateur
Vire le id=NULL de ton UPDATE :o
Vérifie si tu as des apostrophes dans les champs que tu veux insérer.
 

venom511

Nouveau membre
Vire le id=NULL de ton UPDATE :o
Vérifie si tu as des apostrophes dans les champs que tu veux insérer.

Oki c'est fait, et pour le apostrophe y'en a pas dans les champs de la base de donnée...
 

zeb

Modérateur
Tu as cette requête qui fonctionne :
Code:
INSERT INTO `client` 
       ( `id`, `nom`, `login`, ... )
VALUES ( NULL, 'venom', '551', ... )
Et tu te retrouves avec une requête qui ressemble à ça :
Code:
UPDATE `client` 
   SET nom   = 'venom', 
       login = '511', 
   ...       
 WHERE id=123456

Sans connaître MySQL, j'écrirais ça :
Code:
UPDATE `client` 
   SET `nom`   = 'venom', 
       `login` = '511', 
   ...       
 WHERE id=123456
 

venom511

Nouveau membre
Tu as cette requête qui fonctionne :
Code:
INSERT INTO `client` 
       ( `id`, `nom`, `login`, ... )
VALUES ( NULL, 'venom', '551', ... )
Et tu te retrouves avec une requête qui ressemble à ça :
Code:
UPDATE `client` 
   SET nom   = 'venom', 
       login = '511', 
   ...       
 WHERE id=123456

Sans connaître MySQL, j'écrirais ça :
Code:
UPDATE `client` 
   SET `nom`   = 'venom', 
       `login` = '511', 
   ...       
 WHERE id=123456


Merci de me consacrer un peut de ton temps je vais tester ca !
Je te tiens au courant.
 

BenJsno

Nouveau membre
Salut à tous,
je suis actuellement en stage et je débute en php.
On m'a dans un premier temps demandé de créer un formulaire afin de remplir une base de donnée MYSQL ce que j ai réussi à faire après quelques galères. :pt1cable:
Ma tache consiste maintenant à modifier ce formulaire et mon problème viens de la requête update que voici :
[cpp]
$sql = "UPDATE `client` set id=NULL, nom='".$nom."', login='".$login."', pass='".$pass."', adresse='".$adresse."', cp='".$cp."', ville='".$ville."', tel='".$tel."', fax='".$fax."', email='".$email."' WHERE id=".$_GET['rec'];
$res = mysql_query($sql);[/cpp]
Je n'arrive pas à trouver la solution !
J'en ai le cerveau qui brule ! :ouch:

Merci d'avance !

EDIT: voici le message d'erreur que j'obtiens:
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

Salut,
si tu fais un UPDATE c'est que ton client existe déjà, donc pas besoin d'updater l'id.
moi j'ferais
[cpp]
$sql = "UPDATE client SET nom='$nom', login='$login', pass='$pass', adresse='$adresse', cp='$cp', ville='$ville', tel='$tel', fax='$fax', email='$email' WHERE id=$_GET['rec']";

mysql_query($sql) or die("Erreur SQL ! ".$sql."<br>".mysql_error());
[/cpp]
Vérifie aussi que tu envoi bien l'id :
$_GET['rec'] signifie que tu appelles ta page, genre, page.php?rec=15 si l'id = 15

voilà j'espère que ca t'aidera
a+
 

PNA

Nouveau membre
lol deja et sans vouloir dire autre chose $_GET['ta_valeur'] heuu je rochigne la dessu pour les update mdr

( chacun sont point de vu apres hein ;) )
 
Vous devez vous inscrire ou vous connecter pour répondre ici.
Derniers messages publiés
Statistiques globales
Discussions
730 126
Messages
6 717 806
Membres
1 586 365
Dernier membre
matiOs1
Partager cette page
Haut