J'ai tenté d'insérer plusieurs adresses mails pour un même identifiant mais le résultat obtenu était que ça créait autant de lignes que j'entrais de mails
...
du coup j'ai choisi la solution de créer une nouvelle table à pour chaque identifiant
Je ne comprends pas.
Lorsqu'on fait in INSER INTO, une insertion, c'est justement pour créer une nouvelle ligne.
Donc même en créant une nouvelle table par étudiant, la 1ère ligne du 1er mail sera une nouvelle ligne.
Si on souhaite ajouter un 2ème mail à un étudiant existant, cela rajoutera une nouvelle ligne pour cette même table (c'est à dire autant ligne qu'il y aura de mail pour un même étudiant).
Il y rien d'anormal à cela, au contraire, c'est bien ça de but recherché.
Si on a une table "articles", on ne va surtout pas créer une nouvelle table par articles.
Ou alors, ce n'est pas une création que tu souhaites faire, mais une modification, une mise à jour, un remplacement.
Si c'est cela alors c'est un UPDATE :
UPDATE mail SET adresse_mail = 'un@nouveau.mail' WHERE id_etudiant = un_id_etudiant
En créant autant de table qu'il y aura d'étudiants, tu vas considérablement te compliquer la tâche à gérer ces étudiants, de ces mails.
Comment procèderas tu pour rechercher un étudiant si tu as uniquement un mail comme info ?
Lancer autant de requête SQL qu'il y aura d'étudiants (de tables) ? (ça va pas)
Si tu rencontres un problème d'insertion dans cette table "mail", explique plus en détail l'erreur que tu obtiens.
(Tu risque fort d'avoir ce même problème pour d'autres tables, voire même pour ces tables étudiants).
Au passage :
Cette table "mail" a un champ "id" qui à mon sens est un champ auto_increment, donc cela veut dire que c'est à la Bdd d'accorder automatiquement un nouvel identifiant unique.
Du coup il suffit de na pas renseigner ce champ "id" dans la requête d'insertion, ou alors indiquer NULL comme valeur.
Exemple (sans renseigner le champ "id") :
$sql = "INSERT INTO mail (id_etudiant, adresse) VALUES ('$id_etudiant', '$mail')";
Exemple (champ "id" avec NULL comme valeur) :
$sql = "INSERT INTO mail (id, id_etudiant, adresse) VALUES (NULL, '$id_etudiant', '$mail')";
Aussi, il est recommander d'utiliser mysql_real_escape_string() sur les données coté Bdd, pour des raisons de sécurité entre autre (sql injection).
La doc : http://fr2.php.net/manual/fr/functio...ape-string.php
Fais en sorte que l'insertion (ou modification) se fasse comme cela doit ce faire, et ton problème sera résolu.
Mise à part cela, si tu tiens à créer autant de table que d'étudiant, fait un copier/coller ici de l'erreur que tu obtiens.
Partager