Impossible d'alimenter ma table sql :( syntaxe ?

Impossible d'alimenter ma table sql :( syntaxe ? - PHP - Programmation

Marsh Posté le 23-02-2005 à 14:22:24    

Bonjours, j'ai un pb avec mon code php ; je veux insérer des données dans cette table (base mysql) :
 
 

CREATE TABLE `archives` (
  `id` int(11) NOT NULL auto_increment,
  `classe` varchar(32) NOT NULL default '',
  `matiere` varchar(32) NOT NULL default '0',
  `date` varchar(32) NOT NULL default '',
  `numero` varchar(32) NOT NULL default '0',
  `note` varchar(32) NOT NULL default '0',
  `professeur` varchar(32) NOT NULL default '',
  `eleve` varchar(32) NOT NULL default '',
  `type` varchar(32) NOT NULL default '',
  `depositaire` varchar(32) NOT NULL default '',
  PRIMARY KEY  (`id`)
) TYPE=MyISAM AUTO_INCREMENT=3 ;


 
je le fais avec cette commande:  
 

Code :
  1. $sql = "INSERT INTO archives(classe,matiere,date,numero,note,professeur,eleve,type,depositaire) VALUES(
  2. '".$_SESSION['classe']."',
  3. '".$_SESSION['id_matiere']."',
  4. '".$_SESSION['date']."',
  5. '".$_SESSION['numero']."',
  6. '".$_SESSION['note']."',
  7. '".$_SESSION['professeur']."',
  8. '".$_SESSION['eleve']."',
  9. '".$_SESSION['type']."',
  10. '".$_SESSION['depositaire']."')";


 
ce qui me donne ce string sql :
 

Code :
  1. INSERT INTO archives(classe,matiere,date,numero,note,professeur,eleve,type,depositaire) VALUES( 'tp1', '189', '2005-05-06', '1', '1.2', 'fqsdf', 'fsqf', 'composition', 'qsdfqf')


 
je n'arrive pas à trouver le probleme  [:zytrasnif]  
en rajoutant id (la clef primaire) et '' dans les values, ca ne fait rien (de toute facon id est en auto increment)
je pensais que c'était un type de données qui déconnait, alors j'ai tout mis en varchar, et ca ne marche toujours pas  [:zytrasnif]  
 
Voila, si quelq'un a une idee... ?  
 
Merci pour votre aide

Reply

Marsh Posté le 23-02-2005 à 14:22:24   

Reply

Marsh Posté le 23-02-2005 à 14:57:14    

"int" est un nombre. Ce n'est pas une chaine de caractére.
'' est une chaine de caractére, pas un nombre.
 
Quand une requête ne marche pas, il faut toujours afficher le message d'erreur retourné par la base de donnée, ca permet d'avoir une indication du probléme plustôt que se taper la tête contre un mur pendant des heures. ;)

Reply

Marsh Posté le 23-02-2005 à 14:59:56    

+1 pour le message d'erreur...mais pour la première remarque, s'il a tout passé en varchar pas de pb avec la requête qu'il génère (tant que la taille est bonne).


---------------
Can't buy what I want because it's free -
Reply

Marsh Posté le 23-02-2005 à 15:01:03    

Enfin là, je viens de lancer créer ta table et d'exécuter ton INSERT et j'ai rencontré aucun problème. (mySQL 4.0)...


---------------
« Lorsque le bûcheron pénétra dans la forêt avec sa hache, les arbres se dirent : ne nous inquiétons pas, le manche est des nôtres. » | Gérez votre collection de BD en ligne !
Reply

Marsh Posté le 23-02-2005 à 15:02:34    

alors, je ne sais pas comment recuperer le message d'erreur... si j'essaie par la query window de phpmyadmin ca marche  
avec cette meme requete (enfin une bidon de la meme maniere), mais toujours pas via mon code php :  
 
truc étrange, le resultat de la requete est :
 

INSERT INTO archives( classe, matiere, DATE, numero, note, professeur, eleve,
TYPE , depositaire )
VALUES (
'tp1', '186', 'sdqfqsdf', 'fsdqfsq', 'dfqsfqs', 'fsqdfqs', 'fqsfsq', 'composition', 'fqsdf'
)


 
date et type sont passés en majuscule... on n'a pas le droit d'appeler un champ comme ca  ou quoi ?

Reply

Marsh Posté le 23-02-2005 à 15:03:45    

C'est pas top d'utiliser ces terme : j'imagine que ce sont des champs réservés.
 
Tu peux pas filer ton code php plutôt ?


Message édité par latruffe le 23-02-2005 à 15:04:10

---------------
« Lorsque le bûcheron pénétra dans la forêt avec sa hache, les arbres se dirent : ne nous inquiétons pas, le manche est des nôtres. » | Gérez votre collection de BD en ligne !
Reply

Marsh Posté le 23-02-2005 à 15:06:01    

En effet, je garderais pas des noms de champs comme ça...:o


---------------
Can't buy what I want because it's free -
Reply

Marsh Posté le 23-02-2005 à 15:06:40    

et pour afficher l'erreur, mysql_error().


---------------
Can't buy what I want because it's free -
Reply

Marsh Posté le 23-02-2005 à 15:07:47    

date est un mot réservé, type aussi il me semble.
Donc non, t'y a pas droit sauf si tu les met entre " ' " (enfin, pas ce caractére là mais celui penché du haut gauche vers le bas droit).
 
C'est vrai, j'y avais pas pensé, mais vu les noms des colontes, ca peut pas marché sans ces caractéres là.

Reply

Marsh Posté le 23-02-2005 à 15:30:30    

omega2 a écrit :

date est un mot réservé, type aussi il me semble.
Donc non, t'y a pas droit sauf si tu les met entre " ' " (enfin, pas ce caractére là mais celui penché du haut gauche vers le bas droit).
 
C'est vrai, j'y avais pas pensé, mais vu les noms des colontes, ca peut pas marché sans ces caractéres là.


`TYPE`([Alt Gr] + [7])
autre chose perchut2 : moi je peux te planter ta requete en mettant un quote en plein milieu d'une valeur :D
utilises addslashes()

Reply

Marsh Posté le 23-02-2005 à 15:30:30   

Reply

Marsh Posté le 24-02-2005 à 00:47:27    

alors, j'ai trouvé pourquoi ca marchait pas, mais je vous dirai pas pourquoi, j'ai trop honte [:cupra] (merci skeye pour le mysql_error() :jap: )
 
et le ` n'y est pour rien pour ce problème là, pas plus que le nom des colonnes :p
 
spike > effectivement, je les avais ici oubliés, mais je les mets d'habitude :jap:


Message édité par perchut2 le 24-02-2005 à 00:48:04
Reply

Marsh Posté le 24-02-2005 à 07:50:32    

perchut2 a écrit :

alors, j'ai trouvé pourquoi ca marchait pas, mais je vous dirai pas pourquoi, j'ai trop honte [:cupra]


 
Même pas drôle!:o


---------------
Can't buy what I want because it's free -
Reply

Marsh Posté le 24-02-2005 à 10:14:00    

Citation :

alors, j'ai trouvé pourquoi ca marchait pas, mais je vous dirai pas pourquoi, j'ai trop honte [:cupra] (merci skeye pour le mysql_error() :jap: )


 
remplir ton $sql c'est bien, mais si tu n'a pas de connection ou que tu ne fait pas de mysql_querry, ça sert pas à grand chose...
 
J'ai bon pour la connerie non racontable ou c'est pire que ça ????


---------------
- Xav - ...There are no crimes when there are no laws... -- Xav's World
Reply

Marsh Posté le 24-02-2005 à 13:11:14    

Xav_ a écrit :

Citation :

alors, j'ai trouvé pourquoi ca marchait pas, mais je vous dirai pas pourquoi, j'ai trop honte [:cupra] (merci skeye pour le mysql_error() :jap: )


 
remplir ton $sql c'est bien, mais si tu n'a pas de connection


 
 
manquait le  
 

include "admin/connexion.php";


 
 [:zytrasnif]  [:zytrasnif]

Reply

Marsh Posté le 24-02-2005 à 13:13:36    

perchut2 a écrit :

manquait le  
 

include "admin/connexion.php";


 
 [:zytrasnif]  [:zytrasnif]


[:ddr555]


---------------
Can't buy what I want because it's free -
Reply

Marsh Posté le 24-02-2005 à 14:08:01    

le prend surtout pas mal, http://webxav.chez.tiscali.fr/gif/src1/tr4cd.gif
 
le tout c'est de pas le refaire, ou j'apelle lahttp://webxav.chez.tiscali.fr/gif/src1/menottes.gif


---------------
- Xav - ...There are no crimes when there are no laws... -- Xav's World
Reply

Marsh Posté le 24-02-2005 à 18:05:24    

`date` varchar(32) NOT NULL default '',  :o

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed