8791 sujets

Développement web côté serveur, CMS

Salut à tous,

Je développe un site de courses d'obstacles avec inscription individuelle ou par groupes. Dans la page groupes, le formulaire d'inscription est suivi de 2 boutons submit: "ajouter un participant" et "s'inscrire et payer".

Quand on clique une 1ère fois sur "ajouter un participant", ça créé une nouvelle entrée dans une table "groupes" connectant tous les participants qui vont être ajoutés dans ce groupe (ça créé également un participant dans une table "participants"). Si on clique une 2eme fois sur "ajouter un participant", ça ne fait que créer un participant dans la base de donnée mais ça ne crée pas de groupe puisque le groupe est déjà créé.

Question: comment faire pour que dans mon code je sache si "ajouter un participant" a été cliqué une seule fois (auquel cas il faut créer un groupe) ou plusieurs (on ne créé pas de groupe)? Est-ce qu'utiliser des sessions PHP ou des cookies pour ça est une bonne idée, et si oui, lequel des deux serait le plus adapté ici?
Modifié par apericube (01 Jan 2013 - 13:51)
Modérateur
Salut,

A vue de nez, ça sent la mauvaise modélisation.... Paye ta contrainte d'intégrité....

Là, tel que j'entrevois ton bout d'application, je vois 3 tables.

Peux tu mettre sur le forum, un dump de la structure de tes deux tables stp ?
Modifié par niuxe (01 Jan 2013 - 20:58)
@jb_gfx: j'ai pensé à ça mais quel est le meilleur moyen de transmettre la variable contenant l'ID du groupe? Par une variable cachée de formulaire, cookie, variable de session?

@niuxe: les 2 tables sont 2 custom post type de WordPress que je connecte entre elles avec le plugin 'Posts to Posts'.
Modérateur
au temps pour moi. Je suis parti du principe d'une cardinalité n-m. Or là, les participants ont qu'un groupe d'attribué (donc 2 tables). Par contre je maintiens mon affirmation sur une mauvaise modélisation. Si la structure était plus intègre, au 2e enregistrement, il y aurait eu une erreur dans l'insertion dans la base (le group_id doit exiger une donnée valide dans la table groupes )

Comme tu dis, un champ caché peut faire l'affaire. Sinon, une variable de session. Le souci est que si le user se déconnecte puis se reconnecte, tu perds les données. A moins qu'il soit dans un espace membre. Là, tu peux aisément lui attribuer la var de session.
Modifié par niuxe (01 Jan 2013 - 23:28)
J'ai opté pour un champs caché contenant l'ID du groupe et je checke si la variable existe ou pas. Bref ca marche merci pour votre aide.