formulaire avec plusieurs etapes

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : formulaire avec plusieurs etapes

par dolf » 29 mai 2006, 23:35

OK je vais essayer. Merci

par Cyrano » 29 mai 2006, 23:30

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.

par dolf » 29 mai 2006, 23:21

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????

par Cyrano » 29 mai 2006, 22:45

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 ?

par dolf » 29 mai 2006, 22:36

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

par HanX » 29 mai 2006, 21:42

je confirme jpaul... tu fais un UPDATE

par jpaul » 29 mai 2006, 20:05

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 ?

formulaire avec plusieurs etapes

par dolf » 29 mai 2006, 19:04

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