Page 1 sur 1

insert into ne fonctionne pas sur le serveur

Posté : 16 sept. 2009, 12:09
par tom_nameless
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());

Re: insert into ne fonctionne pas sur le serveur

Posté : 16 sept. 2009, 12:26
par stopher
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.

Re: insert into ne fonctionne pas sur le serveur

Posté : 16 sept. 2009, 12:31
par tom_nameless
quote c'est le nom de la table..

Tu penses que ça peu poser un probleme ?

Re: insert into ne fonctionne pas sur le serveur

Posté : 16 sept. 2009, 12:39
par Dr@ke
Peut-être un soucis avec le type d'un champ...
http://www.vulgarisation-informatique.c ... onnees.php

Re: insert into ne fonctionne pas sur le serveur

Posté : 16 sept. 2009, 13:02
par Berzemus
$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());

Re: insert into ne fonctionne pas sur le serveur

Posté : 16 sept. 2009, 13:03
par tom_nameless
peut on utiliser INT pour un prix de forme 10.50 ou 10,50

Re: insert into ne fonctionne pas sur le serveur

Posté : 16 sept. 2009, 13:22
par Berzemus
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).

Re: insert into ne fonctionne pas sur le serveur

Posté : 16 sept. 2009, 17:31
par AB
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.

Re: insert into ne fonctionne pas sur le serveur

Posté : 17 sept. 2009, 10:07
par tom_nameless
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:

Re: insert into ne fonctionne pas sur le serveur

Posté : 17 sept. 2009, 10:26
par Berzemus
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.

Re: insert into ne fonctionne pas sur le serveur

Posté : 17 sept. 2009, 11:36
par tom_nameless
je n'ai pas vu.. ou pas compris ton post...mais merci quand même :|