Page 1 sur 1
formulaire avec plusieurs etapes
Posté : 29 mai 2006, 19:04
par dolf
Bonjour à tous,
Je voudrais creer un formulaire avec plusieurs pages. J'ai deja commence. Pour l'instant j'ai 3 pages. Je génère une ID unique pour chaque enregistrement. Sur les 2 premières pages j'utilise la fonction form et les sessions pour transmettre l'info de page en page. En page 3 l'info est enregistrée dans la base de données. Seulement mon formulaire n'est pas fini car l'utilisateur peut ajouter d'autres info. Ma question est la suivante:
Je ne sais pas comment faire en sorte que l'info ajoutée en 2eme partie de formulaire (apres le 1er enregistrement dans la base) soit ajoutée à aux données du formulaire en cours de soumission. En d'autre terme je ne veux pas créer une nouvelle ligne dans ma base mais simplement ajouter l'info dans la ligne deja existante. Comment je peux faire?
N'hésitez pas à me signaler si vous n'avez pas compris ma question.
Merci d'avance
Dolf
Posté : 29 mai 2006, 20:05
par jpaul
Ben où est le problème, s'il y a un ID pour chaque enregistrement, j'imagine qu'il est unique. Il suffit de faire un UPDATE avec un WHERE qui sélectionne l'enregistement correspondant au bon id non ?
J'ai pas compris l'énoncé du problème ?
Posté : 29 mai 2006, 21:42
par HanX
je confirme jpaul... tu fais un UPDATE
Posté : 29 mai 2006, 22:36
par dolf
Ben où est le problème, s'il y a un ID pour chaque enregistrement, j'imagine qu'il est unique. Il suffit de faire un UPDATE avec un WHERE qui sélectionne l'enregistement correspondant au bon id non ?
J'ai pas compris l'énoncé du problème ?
Ma question peut vous paraitre evidente mais je debute et je ne sais pas comment faire pour ajouter de l'info dans un enregistrement existant sans creer un nouvel enregistrement. Auriez vous un exemple de code à me donner ou bien un tutoriel?
Merci
Posté : 29 mai 2006, 22:45
par Cyrano
Schématiquement :
Dans un premier temps, tu enregistres les données avec une requête INSERT : si ton internaute peut rajouter des informations, il faut alors utiliser une requête UPDATE au lieu de INSERT : ça signifie que lors du premier INSERT, il faut récupérer l'identifiant de ton enregistrement avec par exemple une fonction toute simple: mysql_insert_id() : tu te serviras de cet identifiant pour faire ta requête de mise à jour :
Code : Tout sélectionner
UPDATE tatable SET champ1 = 'valeur1', champ2 = 'valeur2, ... WHERE id = ". $identifiant .";
Est-ce que tu saisis mieux comme ça ?
Posté : 29 mai 2006, 23:21
par dolf
Schématiquement :
Dans un premier temps, tu enregistres les données avec une requête INSERT : si ton internaute peut rajouter des informations, il faut alors utiliser une requête UPDATE au lieu de INSERT : ça signifie que lors du premier INSERT, il faut récupérer l'identifiant de ton enregistrement avec par exemple une fonction toute simple: mysql_insert_id() : tu te serviras de cet identifiant pour faire ta requête de mise à jour :
Code : Tout sélectionner
UPDATE tatable SET champ1 = 'valeur1', champ2 = 'valeur2, ... WHERE id = ". $identifiant .";
Est-ce que tu saisis mieux comme ça ?
Oui... sauf que je cherche pas a updater des info dans la base mais à en ajouter à un enregistrement dans lequel se trouve deja des infos. Je dois donc utiliser la fonction Insert pour ajouter les info et selectionner l'enregistrement avec Where????
Posté : 29 mai 2006, 23:30
par Cyrano
Ajouter des infos dans une ligne existante, ça s'appelle une mise à jour, même si c'est pour remplir des champs non complétés lors de l'insertion originale: il faut donc passer par une requête UPDATE. Si tu fais un INSERT, ça va créer une nouvelle ligne indépendante de la précédente.
Posté : 29 mai 2006, 23:35
par dolf
OK je vais essayer. Merci