Mysql/PHP: insérer ou modifier
Résolu/Fermé
Lrt88
Messages postés
930
Date d'inscription
lundi 3 mars 2008
Statut
Membre
Dernière intervention
12 août 2018
-
23 janv. 2009 à 10:26
Lrt88 Messages postés 930 Date d'inscription lundi 3 mars 2008 Statut Membre Dernière intervention 12 août 2018 - 23 janv. 2009 à 11:42
Lrt88 Messages postés 930 Date d'inscription lundi 3 mars 2008 Statut Membre Dernière intervention 12 août 2018 - 23 janv. 2009 à 11:42
A voir également:
- Mysql/PHP: insérer ou modifier
- Easy php - Télécharger - Divers Web & Internet
- Mysql community server - Télécharger - Bases de données
- Error 2002 (hy000): can't connect to local mysql server through socket '/var/lib/mysql/mysql.sock' (2) ✓ - Forum Linux / Unix
- Mysql gratuit ou payant - Forum MySQL
- Bouton php - Forum PHP
5 réponses
HostOfSeraphim
Messages postés
6750
Date d'inscription
jeudi 2 février 2006
Statut
Contributeur
Dernière intervention
31 juillet 2016
1 608
23 janv. 2009 à 10:34
23 janv. 2009 à 10:34
Ah oui tu t'embêtes pour rien, là...
Pour une inscription, tu fais une requête sur ta table avec les données (par exemple, pour un utilisateur dont le login est toto, "SELECT * FROM utilisateurs WHERE login='toto'") ; si une ligne au moins est retournée, c'est que la personne est déjà inscrite. Si aucune ligne n'est retournée, c'est qu'il n'est pas inscrit. Tu as une fonction PHP pour tester le nombre de lignes retournées.
Et pour la mise à jour des données... requete UPDATE, ni plus, ni moins. Admettons que l'utilisateur du login toto veuille changer son adresse mail toto@toto.fr en toto@tata.fr : UPDATE utilisateurs SET adressemail='toto@tata.fr' WHERE login='toto'.
Pour une inscription, tu fais une requête sur ta table avec les données (par exemple, pour un utilisateur dont le login est toto, "SELECT * FROM utilisateurs WHERE login='toto'") ; si une ligne au moins est retournée, c'est que la personne est déjà inscrite. Si aucune ligne n'est retournée, c'est qu'il n'est pas inscrit. Tu as une fonction PHP pour tester le nombre de lignes retournées.
Et pour la mise à jour des données... requete UPDATE, ni plus, ni moins. Admettons que l'utilisateur du login toto veuille changer son adresse mail toto@toto.fr en toto@tata.fr : UPDATE utilisateurs SET adressemail='toto@tata.fr' WHERE login='toto'.
974_Vin's_974
Messages postés
547
Date d'inscription
vendredi 23 janvier 2009
Statut
Membre
Dernière intervention
19 février 2009
102
23 janv. 2009 à 10:35
23 janv. 2009 à 10:35
Alors, moi personnelement, je n'aime pas insérer moi même les clé primaire. En général, les clés primaire, sont souvent des numéros (identifiant).. Toi aparament ta clé primaire est un nom n'est ce pas ???? parce que c'est beaucoup plus simple de lui donnée un numéro, et sur mysql tu mets le champs en "auto_increment" .. Cela signifie que a chaque fois que tu feras un insert, il passera automatiqement un numéro suivant. Tu n'auras pa à gérer les doublons.
Mais tu peux bien me réexpliquer ce que tu aimerais faire ??
Tu a un formulaire pour modifier et un pour ajouter ?? ou c'est le meme formulaire pour les deux actions ???
Mais tu peux bien me réexpliquer ce que tu aimerais faire ??
Tu a un formulaire pour modifier et un pour ajouter ?? ou c'est le meme formulaire pour les deux actions ???
Mikey_UFC
Messages postés
312
Date d'inscription
jeudi 8 mars 2007
Statut
Membre
Dernière intervention
2 août 2010
1
23 janv. 2009 à 10:47
23 janv. 2009 à 10:47
Si ta clé primaire est le login :
Pour faire propre, avant d'ajouter, tu testes le login :
Pour la modification, il faut que tu fasses un 2ème formulaire accessible uniquement aux utilisateurs connectés.
Pour modifier la ville, la requête sera :
Pour faire propre, avant d'ajouter, tu testes le login :
test=mysql_query("SELECT login FROM USER WHERE login='".$login."'"); if(mysql_num_rows(test)) { // l'utilisateur existe déjà } else { // Inscription }
Pour la modification, il faut que tu fasses un 2ème formulaire accessible uniquement aux utilisateurs connectés.
Pour modifier la ville, la requête sera :
"UPDATE USER SET ville='".$ville."' WHERE login='".$login."'"
974_Vin's_974
Messages postés
547
Date d'inscription
vendredi 23 janvier 2009
Statut
Membre
Dernière intervention
19 février 2009
102
23 janv. 2009 à 10:50
23 janv. 2009 à 10:50
Mouais, ils t'ont tout dit ;-)
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Lrt88
Messages postés
930
Date d'inscription
lundi 3 mars 2008
Statut
Membre
Dernière intervention
12 août 2018
267
23 janv. 2009 à 11:42
23 janv. 2009 à 11:42
UN GRAND MERCI A TOUS,
je crois que la solution de Mickey_UFC devrait être la bonne (mais je ne peux pas tester maintenant car mon site est sur un serveur local et je suis sur un autre pc) mais je pense que HostOfSeraphim avait la même idée.
Sinon je n'ai qu'un formulaire et moi aussi avant, ma clé primaire c'est un auto-increment mais le problème, c'est que certains Balou rentraient 3-4 fois leur truc d'affilé pour être sûr que ca soit vraiment bon et donc j'avais 1 Balou, 2 Balou, 3 Balou...
Sinon le problème de mon UPDATE, c'est qu'avant j'avais trouvé une syntaxe comme ça: mysql_query ("UPDATE table SET (ville=" '.$ville.'") WHERE mysql_nom($nom)==1"); et vos solutions en sont très loin donc je ne sais pas où ma source avec trouver cette structure.
Encore merci !
je reviendrais pour vous confirmer que ça marche.
je crois que la solution de Mickey_UFC devrait être la bonne (mais je ne peux pas tester maintenant car mon site est sur un serveur local et je suis sur un autre pc) mais je pense que HostOfSeraphim avait la même idée.
Sinon je n'ai qu'un formulaire et moi aussi avant, ma clé primaire c'est un auto-increment mais le problème, c'est que certains Balou rentraient 3-4 fois leur truc d'affilé pour être sûr que ca soit vraiment bon et donc j'avais 1 Balou, 2 Balou, 3 Balou...
Sinon le problème de mon UPDATE, c'est qu'avant j'avais trouvé une syntaxe comme ça: mysql_query ("UPDATE table SET (ville=" '.$ville.'") WHERE mysql_nom($nom)==1"); et vos solutions en sont très loin donc je ne sais pas où ma source avec trouver cette structure.
Encore merci !
je reviendrais pour vous confirmer que ça marche.