probleme update base de donné mysql via un formulaire
Dernière réponse : dans Programmation
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.
Ma tache consiste maintenant à modifier ce formulaire et mon problème viens de la requête update que voici :
Je n'arrive pas à trouver la solution !
J'en ai le cerveau qui brule !
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
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.
Ma tache consiste maintenant à modifier ce formulaire et mon problème viens de la requête update que voici :
$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);
Je n'arrive pas à trouver la solution !
J'en ai le cerveau qui brule !
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
Autres pages sur : probleme update base donne mysql via formulaire
Lassé par la pub ? Créez un compte
Citation :
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....
// 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();
}
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...
Tu as cette requête qui fonctionne :
Et tu te retrouves avec une requête qui ressemble à ça :
Sans connaître MySQL, j'écrirais ça :
INSERT INTO `client` ( `id`, `nom`, `login`, ... ) VALUES ( NULL, 'venom', '551', ... )
Et tu te retrouves avec une requête qui ressemble à ça :
UPDATE `client` SET nom = 'venom', login = '511', ... WHERE id=123456
Sans connaître MySQL, j'écrirais ça :
UPDATE `client` SET `nom` = 'venom', `login` = '511', ... WHERE id=123456
Citation :
Tu as cette requête qui fonctionne :
INSERT INTO `client`
( `id`, `nom`, `login`, ... )
VALUES ( NULL, 'venom', '551', ... )
Et tu te retrouves avec une requête qui ressemble à ça :
UPDATE `client`
SET nom = 'venom',
login = '511',
...
WHERE id=123456
Sans connaître MySQL, j'écrirais ça :
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.
Citation :
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.
Ma tache consiste maintenant à modifier ce formulaire et mon problème viens de la requête update que voici :
$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);
Je n'arrive pas à trouver la solution !
J'en ai le cerveau qui brule !
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
$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());
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+
Lassé par la pub ? Créez un compte
- Contenus similaires :
- ForumConnecter a une base de donnees mysql via odbc a partir du c
- ForumSupprimer une ligne via un formulaire
- ForumSelectionner un repertoire via un formulaire
- ForumRecherche dans la base de donné php
- ForumEnvoie de donnes via formulaire
- ForumEnvoyer un mail via formulaire
- ForumProbleme exportation base mysql
- ForumA note logiciel de note via base mysql
- ForumConnecter a une base de donnees mysql via odbc a partir dun programme
- ForumRecherche sur une base mysql
- Voir plus