PB avec une table sql

  • Auteur de la discussion Auteur de la discussion animus
  • Date de début Date de début
WRInaute discret
Bonjour,

Voila le pb: j'ai une bdd et une table ! rien de grave jusque là mais lorsque je fais une insertion via un formulaire, la première ligne dans la base commence à "0" et je ne peux plus rien insérer après !

Peut être s'agit il d'un pb au niveau de la table. Voici la requete de création:

CREATE TABLE `intranet` (
`id` tinyint(4) NOT NULL default '0',
`date` date NOT NULL default '0000-00-00',
`status` varchar(20) collate latin1_general_ci NOT NULL default '',
`plan` varchar(255) collate latin1_general_ci NOT NULL,
`type` varchar(20) collate latin1_general_ci NOT NULL default '',
`situation` varchar(50) collate latin1_general_ci NOT NULL default '',
`surface` varchar(7) collate latin1_general_ci NOT NULL default '',
`cos` varchar(20) collate latin1_general_ci NOT NULL default '0',
`zonage` varchar(10) collate latin1_general_ci NOT NULL default '',
`assainissement` varchar(25) collate latin1_general_ci NOT NULL,
`tfc` varchar(15) collate latin1_general_ci NOT NULL default '',
`infos` varchar(255) collate latin1_general_ci NOT NULL default '',
PRIMARY KEY (`id`)
) ENGINE=MyISAM;


merci pour votre aide.

ANIMUS
 
WRInaute passionné
pourquoi tu met l'id avec un default à 0. Ton erreur vient sans doute de là tu ne peux pas insérer pour ta clé primaire Id deux lignes ayant le même id.
 
WRInaute discret
j'ai refait la base directement avec phpmyadmin et cela ne marche toujours pas (j'ai viré le "default '0'" entre autre) voici la nvelle version:

CREATE TABLE `intranet` (
`id` int(11) NOT NULL,
`date` date NOT NULL,
`status` varchar(40) NOT NULL,
`plan` varchar(255) NOT NULL,
`type` varchar(50) NOT NULL,
`situation` varchar(100) NOT NULL,
`surface` varchar(20) NOT NULL,
`cos` varchar(40) NOT NULL,
`zonage` varchar(40) NOT NULL,
`assainissement` varchar(100) NOT NULL,
`tfc` varchar(20) NOT NULL,
`infos` varchar(255) NOT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `id` (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
 
WRInaute discret
animus a dit:
j'ai refait la base directement avec phpmyadmin et cela ne marche toujours pas (j'ai viré le "default '0'" entre autre)

Si id est un numéro attribué automatiquement, il faut que tu choisisses l'option auto_increment et un attribut unsigned.

Si tu le définis toi-même à partir de la requête, dans celle-ci il faut lui donner la valeur à enregistrer. N'oublie pas dans ce cas de vérifier que cette valeur n'est pas déjà utilisée étant donné qu'il s'agit de la clé primaire, sinon tu auras le même problème.

Autre point :
Evite tinyint pour l'id car cela te limite à 256 en registrements (0 à 255). Mediumint me semble déjà correct (0 à 16 777 215).
 

➡️ Offre MyRankingMetrics ⬅️

pré-audit SEO gratuit avec RM Tech (+ avis d'expert)
coaching offert aux clients (avec Olivier Duffez ou Fabien Faceries)

Voir les détails ici

coaching SEO
Discussions similaires
Haut