insert into ne fonctionne pas sur le serveur

Eléphant du PHP | 75 Messages

16 sept. 2009, 12:09

Bonjour,

suite du post : php-debutant/insert-into-qui-fonctionne ... 49863.html

ma requete fonctionnait en local.. mais pas sur le serveur. Voici le message d'erreur :
erreur sql!
INSERT INTO quote(id_quote, id_member, nom_project, number_quote, nom, qte, price_key, date_quotation) VALUES('', '17', 'London Hospital', 'London Hospital17', 'European Cylinder.RS SIGMA.333H.35-10.04.nothing', '1', '2', '2009.16.09')
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 'quote('id_quote', 'id_member', 'nom_project', 'number_quote', 'nom', 'qte', 'pri' at line 1
ma requete de base :
$sql="INSERT INTO quote(id_quote, id_member, nom_project, number_quote, nom, qte, price_key, date_quotation) VALUES('', '$id_member', '$nom_project', '$quote', '$ref', '$qte', '$key', '$date')";
$req = mysql_query($sql) or die("erreur sql!<br>".$sql."<br>".mysql_error());

ViPHP
ViPHP | 1136 Messages

16 sept. 2009, 12:26

Hi ,

Pour moi , c'est quote qui pose problème , je n'ai jamais utilisé cette fonction mysql directement .

Elle ne doit pas s'appliquer plutôt dans VALUES ?

Ch.

Eléphant du PHP | 75 Messages

16 sept. 2009, 12:31

quote c'est le nom de la table..

Tu penses que ça peu poser un probleme ?

Mammouth du PHP | 985 Messages

16 sept. 2009, 12:39

Peut-être un soucis avec le type d'un champ...
http://www.vulgarisation-informatique.c ... onnees.php
Face à la roche, le ruisseau l'emporte toujours, non pas par la force mais par la persévérance.

ViPHP
ViPHP | 4039 Messages

16 sept. 2009, 13:02

$sql="INSERT INTO quote(id_quote, id_member, nom_project, number_quote, nom, qte, price_key, date_quotation) VALUES('', '$id_member', '$nom_project', '$quote', '$ref', '$qte', '$key', '$date')";
$req = mysql_query($sql) or die("erreur sql!<br>".$sql."<br>".mysql_error());
quote() est aussi une fonction mysql. Et sous cette forme, il n'y à rien qui indique à Mysql qu'il s'agisse d'une fonction ou d'une table. Il faut donc échapper le nom de ta table avec les accents inversés (et un espace après le nom de la table ne fera pas de mal non plus).
$sql="INSERT INTO `quote` (id_quote, id_member, nom_project, number_quote, nom, qte, price_key, date_quotation) VALUES('', '$id_member', '$nom_project', '$quote', '$ref', '$qte', '$key', '$date')";
$req = mysql_query($sql) or die("erreur sql!<br>".$sql."<br>".mysql_error());
Mais qu'importe. (je suis ici - dernier petit projet)
Berze going social.

Eléphant du PHP | 75 Messages

16 sept. 2009, 13:03

peut on utiliser INT pour un prix de forme 10.50 ou 10,50

ViPHP
ViPHP | 4039 Messages

16 sept. 2009, 13:22

peut on utiliser INT pour un prix de forme 10.50 ou 10,50
Ben non, INT est un entier. Il te faut un FLOAT pour enregistrer ce type de prix (ceci dit, rien ne t'empêche de les multiplier par 100 pour continuer d'utiliser les INT, plus rapides).
Mais qu'importe. (je suis ici - dernier petit projet)
Berze going social.

ViPHP
AB
ViPHP | 5818 Messages

16 sept. 2009, 17:31

peut on utiliser INT pour un prix de forme 10.50 ou 10,50
Ben non, INT est un entier. Il te faut un FLOAT pour enregistrer ce type de prix (ceci dit, rien ne t'empêche de les multiplier par 100 pour continuer d'utiliser les INT, plus rapides).
Pour la parenthèse, c'est pas un peu risqué ? Si l'on passe par un formulaire de saisie on peut toujours formater le nombre avec deux décimales avant de le multiplier mais bon ... :-k

@tom_nameless, attention le séparateur de partie décimale en php et en mysql est un point et non une virgule.

Eléphant du PHP | 75 Messages

17 sept. 2009, 10:07

Le probleme ne vient pas du FLOAT j'ai toujours le même message d'erreur ! !!

2 minutes plus tard !!!
je viens de trouver l'erreur :
Il ne faut pas nommer une table "quote".
J'ai modifié le nom en "quotation"... et ça fonctionne :lol:

ViPHP
ViPHP | 4039 Messages

17 sept. 2009, 10:26

Il ne faut pas nommer une table "quote".
J'ai modifié le nom en "quotation"... et ça fonctionne :lol:
Utiliser des mots réservés ou des fonctions de mysql est en général une assez mauvaise idée, mais on peut le faire en les échappent:

`quote` au lieu de quote. Je l'ais dit un peu plus haut, mais c'est pas grave.
Mais qu'importe. (je suis ici - dernier petit projet)
Berze going social.

Eléphant du PHP | 75 Messages

17 sept. 2009, 11:36

je n'ai pas vu.. ou pas compris ton post...mais merci quand même :|