Requete php clé étrangeres

roy mustang Messages postés 110 Date d'inscription   Statut Membre Dernière intervention   -  
 ouail_eus -
Bonsoir;
je suis entrain de travailler pour la première fois sur un site web dynamique avec le easyphp1.6 et j'ai un problème concernant les clés en effet plusieurs de mes tables possèdent des clés primaire en auto-incrémentation. certaines de ses clés primaire j'aurais besoin d'eux en tant clés étrangère dans mes tables association.le problème est que je ne sais pas créer une clé étrangère sous PhpMyAdmin!! comment devra être le syntaxe de ma requête pour que j'impute en même tant dans les clés primaire et étrangère??
Merci de vos réponse
A voir également:

6 réponses

gryzzly Messages postés 4608 Date d'inscription   Statut Contributeur Dernière intervention   1 335
 
je ne sais pas créer une clé étrangère sous PhpMyAdmin
Tu la créé manuellement :
Table parent : id
Table enfant : parent_id ou ce que tu veux
devra être le syntaxe de ma requête
Il faut utiliser les jointures SQL pour la récupération. Google pour des infos. developpez.com est un bon site de ressources. MySQL également.
Il faut faire ton script manuellement pour les liaisons à l'insertion/update.
0
roy mustang Messages postés 110 Date d'inscription   Statut Membre Dernière intervention   2
 
salut merci pour votre réponse à l'étape ou je suis dans ma conception je suis bloqué dans le problème de comment inserer et mettre à jour mes clés étrangères (les script manuels dont vous avez parlé) en effet ma difficulté consiste dans le fait que mes clés, la plupart sont en auto-increment et je ne sais pas m'y faire!!
merci
0
gryzzly Messages postés 4608 Date d'inscription   Statut Contributeur Dernière intervention   1 335
 
Salut,

http://dev.mysql.com/doc/refman/5.0/fr/information-functions.html
LAST_INSERT_ID(), LAST_INSERT_ID(expr)

Retourne le dernier identifiant automatiquement généré par une colonne AUTO_INCREMENT.

mysql> SELECT LAST_INSERT_ID();
-> 195

Le dernier ID généré est conservé par le serveur pour chaque connexion. Un autre client ne la modifiera donc pas, même s'ils génèrent une autre valeur AUTO_INCREMENT de leur coté. Ce comportement permet de s'assurer que les actions des autres clients ne perturbe pas les actions du client en cours.

La valeur de LAST_INSERT_ID() ne sera pas modifiée non plus si vous modifiez directement la valeur d'une colonne AUTO_INCREMENT avec une valeur simple (c'est à dire, une valeur qui n'est ni NULL, ni 0).

Si vous insérez plusieurs lignes au même moment avec une requête INSERT, LAST_INSERT_ID() retourne la valeur de la première ligne insérée. La raison à cela est que cela rend possible la reproduction facilement la même requête INSERT sur d'autres serveurs.

Si vous utilisez une commande INSERT IGNORE et que la ligne est ignorée, le compteur AUTO_INCREMENT sera malgré tout incrémenté, et LAST_INSERT_ID() retournera une nouvelle valeur.

Si expr est donnée en argument à la fonction LAST_INSERT_ID(), alors la valeur de l'argument sera retourné par la fonction et sera enregistré comme étant la prochaine valeur retournée par LAST_INSERT_ID(). Cela peut être utilisé pour simuler des séquences :
0
gryzzly Messages postés 4608 Date d'inscription   Statut Contributeur Dernière intervention   1 335
 
Je te redonnes les liens :

http://dev.mysql.com/doc/refman/5.0/fr/
https://www.developpez.net/forums/

De très bonnes ressources ...
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
roy mustang Messages postés 110 Date d'inscription   Statut Membre Dernière intervention   2
 
merci c'est très gentil ^^ tout ceci va m'être utile :) je vais l'essayer:)
0
ouail_eus
 
La requête pour créer un clé étrangère est:
Alter table NomDeLaTable
ADD FOREIGN KEY NomDuCle References TableReference (NomCleDansCetteTable)
0