[mySql/Php] alimentation tables

Fermé
audreytal Messages postés 2 Date d'inscription jeudi 19 août 2010 Statut Membre Dernière intervention 19 août 2010 - 19 août 2010 à 09:58
 simoujdi - 19 août 2010 à 16:40
Bonjour,

Peut-être certains d'entre vous peuvent-ils m'aider....

J'ai créé avec PhpMyAdmin une base de 9 tables qui sont toutes "enchâssées", c'est-à-dire que pour passer de la premiere à la derniere, il faut récupérer les id uniques de ttes celles d'avant.
J'essaie de créer un formulaire pour remplir mes tables, mais comme mes tables sont en relation 1 pour plusieurs, à chaque fois que je fais des enregistrements, ça répéte tout alors que je voudrais que ça n'inscrive que ce qui a changé... Je ne sais pas si je me fais bien comprendre alr je donne un exemple :

dans une premiere table j'ai des verbes (chanter, danser, parler) et dans une seconde les sens correspondants (mais il peut y avoir plusieurs sens pour un verbe). Mon formulaire permet de rentrer :

Table 1
---------
verbe id_verbe
--------------------------
chanter 1
chanter 2

Table 2
---------
id_verbe sens id_sens
---------------------------------------
1 aaaa 1
2 bbbb 2





Or je voudrais que le résultat soit plutôt :




Table 1
---------
verbe id_verbe
--------------------------
chanter 1


Table 2
---------
id_verbe sens id_sens
-------------------------------------
1 aaaa 1
1 bbbb 2



je vous laisse un bout de mon script :

//insertion de données dans t_verbe
$sql = "INSERT INTO t_verbe(id_verbe, verbe) VALUES('','$verbe')";
mysql_query($sql) or die('Erreur SQL !'.$sql.'<br>'.mysql_error());

//récupération de l'id_verbe
$id_verbe = mysql_insert_id();

//insertion de données dans t_sens
$sql = "INSERT INTO t_sens(id_sens, sens, id_verbe) VALUES('','$sens','$id_verbe')";
mysql_query($sql) or die('Erreur SQL !'.$sql.'<br>'.mysql_error());


Voila, si quelqu'un pouvait m'aider j'en serais très reconnaissante :)

mercii
A voir également:

3 réponses

tu dois modifier tes tables, et ajouter des clefs étrangères, par exemple, pour ce que tu as donné, tu ajoute a la table 2 un clef étrangère (id_tablde1) liée a ID de la table 1, et a l'ajout d'un nouveau verbe avec son sens, ton programme dois chercher si le verbe existe déjà dans la table 1, si oui, tu ne prend que son id, et puis tu insère ce id et le sens dans la table 2. sinon, tu insère ce verbe dans la table1, tu récupère son id, et tu insère l'id et le sens dans la table2.
J'espère que j'ai bien compris ton probléme et que cette réponse t'aide, d'autre coté, je crois que vous devez chercher un tutoriel pour vous aider.
bne journée
1
audreytal Messages postés 2 Date d'inscription jeudi 19 août 2010 Statut Membre Dernière intervention 19 août 2010
19 août 2010 à 14:00
merci beaucoup, ça m'éclaire un peu

Peux-tu me dire si je suis dans la bonne direction en testant l'existence d'un enregistrement de cette façon (ça ne marche pas, ça donne encore le même résultat, mais j'aimerais savoir si ça pourrait être à peu près ça ou si je suis complètement à côté de la plaque) :

//insertion de données dans t_verbe
$sql = "INSERT INTO t_verbe(id_verbe, verbe) VALUES('','$verbe')";
mysql_query($sql) or die('Erreur SQL !'.$sql.'<br>'.mysql_error());

//tester si le verbe existe
$sql = "SELECT verbe FROM t_verbe WHERE verbe='$verbe'";
$req = mysql_query($sql) or die('Erreur SQL !'.$sql.'<br>'.mysql_error());

// on compte le nombre de résultats
$res = mysql_num_rows($req);

if($res!=0) // le verbe existe déjà : on récupère son id et on complète les autres tables
{
//récupération de l'id_verbe
$id_verbe = mysql_insert_id();

//insertion de données dans t_sens
$sql = "INSERT INTO t_sens(id_sens, sens, id_verbe) VALUES('','$sens','$id_verbe')";
mysql_query($sql) or die('Erreur SQL !'.$sql.'<br>'.mysql_error());
}
else // Le verbe n'existe pas encore : on complète toutes les tables

{
//insertion de données dans t_verbe
$sql = "INSERT INTO t_verbe(id_verbe, verbe) VALUES('','$verbe')";
mysql_query($sql) or die('Erreur SQL !'.$sql.'<br>'.mysql_error());

//récupération de l'id_verbe
$id_verbe = mysql_insert_id();

//insertion de données dans t_sens
$sql = "INSERT INTO t_sens(id_sens, sens, id_verbe) VALUES('','$sens','$id_verbe')";
mysql_query($sql) or die('Erreur SQL !'.$sql.'<br>'.mysql_error());




Encore merci pour ton aide.
0
oui je crois que ca devrait être quelque chose comme ca, continue et bon courage
0