Accueil > Forum > > > > Php Insert ID
Php Insert ID
dimanche 23 décembre 2007 à 11:49:56 |
Php Insert ID

xeroxiss
|
Bonjour tout le monde  Voilà je me demandais juste un petit truc, et peut être que vous connaissez la réponse... J'ai deux tables mysql et un formulaire d'inscription pour mes membres. Je fait deux insert pour des valeurs différentes de mon formulaire. Par exemple : L'utilisateurs remplis tout les champs, une partie des valeurs s'insert dans une table et une autre partie dans une autre... Jusque là pas de soucis, maintenant je désirai faire la jonctions (la connexion) entre les deux tables. Pour qu'une fois que le membre se connect, je puisse, en variable session, récupérer toutes les infos concernant ce membres. J'ai bien lu plein de post concernant, mysql_inserid() ou @@INDENTIFY, mais je ne sais pas trop bien l'idée au moment de l'insert. Voilà, je pense que c'est tout bête !! Merci beaucoup  Le petit bout de code, on ne sais jamais $ajout_table1 = sprintf("INSERT INTO table1 (nom, prenom, email) VALUES ('$email', '$nom', '$prenom')"); $ajout_table2 = sprintf("INSERT INTO table2 (email, description) VALUES ('$email', '$description')");
|
|
dimanche 23 décembre 2007 à 12:06:10 |
Re : Php Insert ID

neigedhiver
|
Salut,
Je ne vois pas l'intérêt d'avoir une table séparée pour stocker la description d'un utilisateur. En fait, tu y perds en performances.
On stocke normalement dans une seule table les informations concernant un utilisateur. Si tu devais avoir plusieurs fois le même champ pour chaque utilisateur, alors seulement une deuxième table serait justifiée. Là, franchement, tu te compliques la vie pour rien.
J'en profite pour te conseiller de mettre un index dans ta table (numérique, plutôt que texte, ce qui exclue l'indexation de la table sur le champ email... pour des raisons de performances.
Si chaque utilisateur n'a qu'une seule description (le contraire n'ayant pas réellement de sens commun, à moins que tu n'aies un besoin très spécifique), alors autant tout laisser dans une seule table : multiplier les requêtes multiplie également le temps d'exécution, la charge du processeur, etc.
|
|
dimanche 23 décembre 2007 à 12:42:50 |
Re : Php Insert ID

malalam
|
Hello,
certes...mais ça se défend dans le cadre de gros, gros applicatifs. Enfin...je ne vais pas critiquer la façon de faire parce que je le fais actuellement. Je te donne juste une solution : Tu as doit avoir une table "primaire". Par exemple, at table1. Puis dans ta/tes table(s) secondaire(j'arrête les S c'est saoûlant, vous aurez compris), tu lies tes entrées à l'ID de ta table primaire :
table users user_id, user_nom, user_prenom ...
table users_coord_num user_id uesrnum_email usernum_website
etc... user_id est ta clé commune.
donc tu fais ton second INSERT avec le @@IDENTITY (désolé, je bosse plus sur mssql en ce moment) de ta première insertion, dans la table users. Et quand tu récupères le tout :
SELECT user.user_nom, user.user_prenom...usernum.usernum_email... FROM users user INNER JOIN users_coord_num usernum ON usernum.user_id = user.user_id WHERE user.user_id = $iUserId
C'est valable pour X tables.
|
|
dimanche 23 décembre 2007 à 12:51:33 |
Re : Php Insert ID

bizibiz17
|
Exact malalam à raison c'est dans la conception de la base de données le problème. Rajoute cet id et ça marchera ! 
|
|
dimanche 23 décembre 2007 à 12:58:40 |
Re : Php Insert ID

xeroxiss
|
Salut, Merci neigedhiver pour ta réponse, Mais c'est obligé pour moi de faire deux tables, car la deuxième table accueil l'annonce du membre. Je ne t'es pas mis tout les champs pour ne pas surcharger le post mais normalement au complet ca donne ca. $add_membre = sprintf("INSERT INTO membres (civilite, email, pass, nom, telephone, gsm, province, cp, compte) VALUES ('$civilite', '$email', '$pass', '$nom', '$telephone', '$gsm','$province', '$cp', '$compte')"); $add_annonce = sprintf("INSERT INTO annonces (email, province, cp, marque, modele, mois, annee, prix, compte, detail_01, detail_02, detail_03, detail_04, detail_05, description) VALUES ('$email', '$province', '$cp', '$marque', '$modele', '$mois', '$annee', '$prix', '$compte', '$detail_01', '$detail_02', '$detail_03', '$detail_04', '$detail_05', '$description')"); Et quand tu me dit de mettre un index... J'ai déja un 'userid' autoincrémente sur la table membre, et un 'annid' sur la table annonce. Mon problème c'est que j'aimerai affiché l'annonce correspondant au membre. Par exemple a sa connexion. Et au cas ou le membre rajouterai une annonce, il faudrait que sa deuxième annonce soit liée a son compte. Merci de ton explication, mais si tu peux m'aider dans cette voie la.. A bientot 
|
|
dimanche 23 décembre 2007 à 12:58:48 |
Re : Php Insert ID

malalam
|
Malalam a toujours raison, c'est l'admin du site ;-) (je plaisante hein, j'ai parfois tort...des fois...ça arrive quoi...c'est rare mais bon...et puis j'autorise personne à le dire hein, que ce soit clair!!)
|
|
dimanche 23 décembre 2007 à 13:07:21 |
Re : Php Insert ID

xeroxiss
|
Merci malalam, Je suis juste un peu débutant, et ici je séche un peu... Car je fait mon insert après l'inscription comme j'ai expliqué au desssus. Mais toi tu as l'air de dire (je remet pas en cause maitre malalam  ) qu'il faudrait que je change mes tables. Pourtant elle contienne déja chacun un id. I'm lost ^^ Voilà pour info mes tables, si vous sauriez m'indiqué les erreurs... CREATE TABLE `membres` ( `id_user` bigint(50) unsigned NOT NULL auto_increment, `civilite` varchar(50) NOT NULL default '', `nom` varchar(50) NOT NULL default '', `email` varchar(50) NOT NULL default '', `pass` varchar(50) NOT NULL default '', `telephone` varchar(50) NOT NULL default '', `gsm` varchar(50) NOT NULL default '', `province` varchar(50) NOT NULL default '', `cp` varchar(50) NOT NULL default '', `compte` varchar(50) NOT NULL default '', PRIMARY KEY (`id_user`) ) CREATE TABLE `annonces` ( `id_ann` bigint(20) NOT NULL auto_increment, `email` varchar(150) NOT NULL default '', `province` varchar(150) NOT NULL default '', `cp` varchar(150) NOT NULL default '', `marque` varchar(150) NOT NULL default '', `modele` varchar(150) NOT NULL default '', `mois` varchar(150) NOT NULL default '', `annee` varchar(150) NOT NULL default '', `prix` varchar(150) NOT NULL default '', `compte` varchar(150) NOT NULL default '', `detail_01` varchar(150) NOT NULL default '', `detail_02` varchar(150) NOT NULL default '', `detail_03` varchar(150) NOT NULL default '', `detail_04` varchar(150) NOT NULL default '', `detail_05` varchar(150) NOT NULL default '', `description` text NOT NULL, PRIMARY KEY (`id_ann`) ) Voilou voilou 
|
|
dimanche 23 décembre 2007 à 13:09:33 |
Re : Php Insert ID

bizibiz17
|
"Mon problème c'est que j'aimerai affiché l'annonce correspondant au membre. Par exemple a sa connexion.
Et au cas ou le membre rajouterai une annonce, il faudrait que sa deuxième annonce soit liée a son compte."
Et bien justement c'est en rajoutant l'id dans la seconde table que ça marchera, tu connais par Merise ? ça pourrait t'aider...
Voilà les tables qu'il faudrait :
membres (idmenbre,civilite, email, pass, nom,
telephone, gsm, province, cp, compte)
annonces (id_annonce,email, province, cp, marque, modele,
mois, annee, prix, compte, detail_01, detail_02, detail_03, detail_04,
detail_05, description,idmembre)
Vu qu'une annonce correspond à un seul membre et un membre peut avoir plusieurs annonces cela fonctionnera.
|
|
dimanche 23 décembre 2007 à 13:14:17 |
Re : Php Insert ID

xeroxiss
|
Je test ca desuite, merci beaucoup  Merise ? Non je connais pas honte à moi  J'ai un peu cherché sur google... mais je m'interesserai a cela plus tard car ca a l'air compliqué non ? Je vous tient au courant. Mais pour l'idmembres que tu ajoute dans annonce je dois alors recréer un champ... Je test ;)
|
|
dimanche 23 décembre 2007 à 13:16:07 |
Re : Php Insert ID

bizibiz17
|
Oui Merise peut parraître un peu compliqué, c'est sûr que si tu as deux tables ça te sert pas à grand chose mais dès que tu as une grosse base de données tu es obligé de t'en servir sinon tu t'en sort pas...
|
|
Cette discussion est classée dans : insert, voil, php, email, id
Répondre à ce message
Livres en rapport
|
Derniers Blogs
ROSLYN FLUENT APIS: ROSLYNHELPER NUGET PACKAGEROSLYN FLUENT APIS: ROSLYNHELPER NUGET PACKAGE par Matthieu MEZIL
Si vous utilisez Roslyn et que vous vous voulez vous simplifier le code du code rewriter, je vous conseille d'installer mon NuGet package RoslynHelper ....(read more) ...
Cliquez pour lire la suite de l'article par Matthieu MEZIL POUR RAPPEL ! LES SPéCIFICATIONS DES PROTOCOLES OFFICE ET SHAREPOINT SONT DISPONIBLES SUR MSDNPOUR RAPPEL ! LES SPéCIFICATIONS DES PROTOCOLES OFFICE ET SHAREPOINT SONT DISPONIBLES SUR MSDN par neodante
Quelle est le point commun entre : Microsoft il y a 10 ans et Apple aujourd'hui ? Réponse: avoir une politique de protocoles propriétaires et fermés :) Car pour rappel (si si je vous assure c'est important de le rappeler), la majorité des spécifications e...
Cliquez pour lire la suite de l'article par neodante JOYEUX ANNIVERSAIRE NIXJOYEUX ANNIVERSAIRE NIX par ebartsoft
Souhaitons un bon et joyeux anniversaire à notre hôte à tous, Nix.
Je ne le répéterais jamais assez mais sans lui rien ne serait possible. Il défit en permanence les lois de la gravité et comme il le dit si bien, si tu lui fais confiance ça devra...
Cliquez pour lire la suite de l'article par ebartsoft IMAGINE CUP 2012, MAKE A SIGN EN FINALEIMAGINE CUP 2012, MAKE A SIGN EN FINALE par junarnoalg
Voilà qui est fait, la nouvelle est officielle ! L'équipe belge "Make a Sign" va au pays des kangourous défendre son projet dans la catégorie Software Design. http://www.imaginecup.com/CompetitionsContent/Competition/WorldwideFinalists.aspx V...
Cliquez pour lire la suite de l'article par junarnoalg KINECT 1.5 IS OUT !KINECT 1.5 IS OUT ! par Vko
La version 1.5 du Kinect For Microsoft vient tout juste de sortir ! Plein de nouveautés: Tracking de squelette en Near Mode Détection en position assise Détection faciale avec un SDK dédié Documentation et des guideline (enfin) Un out...
Cliquez pour lire la suite de l'article par Vko
Logiciels
sDEVIS-FACTURES vlPRO (8.1.0.3)SDEVIS-FACTURES VLPRO (8.1.0.3)sDEVIS-FACTURES vlPRO a été mis au point pour les particuliers, créateurs, entrepreneurs, artisa... Cliquez pour télécharger sDEVIS-FACTURES vlPRO 974 Application Server (12.2.4.6)974 APPLICATION SERVER (12.2.4.6)Développez de puissantes applications dans un environnement de 'cloud computing', clusterisé, séc... Cliquez pour télécharger 974 Application Server vPicture (1.4.2.1)VPICTURE (1.4.2.1)Avec vPicture, hébergez vos images facilement et rapidement.
vPicture est un utilitaire simple, ... Cliquez pour télécharger vPicture Easy-Planning (2.2.1.6)EASY-PLANNING (2.2.1.6)Easy-Planning permet de créer des plannings sous la représentation de diagrammes et est adapté au... Cliquez pour télécharger Easy-Planning COM-BACKUP (2.0)COM-BACKUP (2.0)
COM-BACKUP est un logiciel de sauvegarde qui permet de planifier les sauvegardes de vos dossiers ...
Cliquez pour télécharger COM-BACKUP
|