Bonjour,
J'essai de remplir deux tables reliées simultanément, mais il y a le message d'erreur suivant :

duplicate entry '0' for key 2

Voici mon code :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<?php
$album=$_POST['album'];
$categorie=$_POST['categorie'];
$artiste=$_POST['artiste'];
 
$db = mysql_connect('localhost', 'root', '') or die('Erreur de connexion '.mysql_error());
mysql_select_db('essai',$db) or die('Erreur de selection '.mysql_error());
 
// insére d'abord les infos dans la table catégories
$sql = "INSERT INTO catégories(id_cat, genre) VALUES('','$categorie')";
mysql_query($sql) or die('Erreur SQL,requete table categories !'.$sql.'<br>'.mysql_error());
 
 
// récupére l'id_cat qui vient d'étre générée
$id_cat = mysql_insert_id();
 
//  insére les infos dans la table disques
$sql = "INSERT INTO disques(id_album, album, id_cat,artiste) VALUES('','$album','$id_cat','$artiste')";
mysql_query($sql) or die('Erreur SQL,requete table disques !'.$sql.'<br>'.mysql_error());
 
mysql_close();
?>
Et voici la structure de mes tables :
Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
CREATE TABLE `catégories` (
  `id_cat` int(50) NOT NULL auto_increment,
  `genre` varchar(50) NOT NULL default '',
  PRIMARY KEY  (`id_cat`)
) ENGINE=MyISAM
 
CREATE TABLE `disques` (
  `id_album` int(11) NOT NULL auto_increment,
  `album` text NOT NULL,
  `id_cat` int(50) NOT NULL default '0',
  `artiste` text,
  PRIMARY KEY  (`id_album`),
  UNIQUE KEY `id_cat` (`id_cat`)
) ENGINE=MyISAM
Je pense que sa viens plus d'un problème de table que de PHP ,mais je ne trouve pas d'ou sa peut venir.

Si quelqu'un pouvez m'aider, se serai sympa
Merci d'avance...