[MYSQL-PHP] Système d'insert multiple ou simple

Rechercher

[MYSQL-PHP] Système d'insert multiple ou simple

Par Mimosa  -  6 reponses  -  Le 30/12/2009 01:19  -  Editer  - 

Bonjour,

J'ai, en effet, besoin de créer une table que l'on nommera Match. Cette table va donc contenir des informations sur des matchs (de jeux en ligne) telle que le score, la date, le nom des équipes,... .

Mon problème vient du faite qu'un match peux se jouer en 1 ou 2 manches (généralement mais possibilité de plus) et peux donc contenir 4 scores (ou plus).

Exemples :

score équipe 1 manche 1 : 10 score équipe 2 manche 1 : 20 score equipe 1 manche 2 : 12 score equipe 2 manche 2 : 18

Total : equipe 1 : 22 - 38 equipe 2

En partant d'une table qui contient par exemple un champs score_equipe et score_adversaire, il faut pouvoir entrer 1, 2 (ou plus) scores sachant que le score reste lié à une manche.

Comment, lors de la lecture de la base de donnée savoir si il y a 1, 2 ou plusieurs scores dans le champs et les départager.

J'avais essayé un système du style : 2{10;12} ou le 2 indiques qu'il y a deux manches, le premier score est celui de la manches 1 et le seconds celui de la macnhes 2.

On pourrais donc avoir : 1{10} 2{10;12} 3{10;12;15}

Mais je n'ai jamais réussi a l'interprété en PHP. Avez-vous d'autres idées ou un début d'astuce à me proposer avec mon système ?

Merci d'avance Cordialement Mimos@

 

Réponses apportées à cette discussion

Par Cyrano  -  Le 30/12/2009 07:40  -  Haut de page  - 

Salut Mimosa,

ce que tu décourves, c'est la difficulté de structurer tes données : le problème en l'occurrence n'est pas dans la manière d'enregistrer les données dans une table mais comment organiser tes données dans l'ensemble de la base.

 

Ici vois-tu, au lieu d'une table «match» et des tortures cérébrales pour enregistrer les scores, je verrais deux tables : une tables «match» et une table «manche» : à un match peut correspondre 0 à n manche(s), un match a lieu entre une équipe X et une équipe Y, tandis que la manche a une date, un score, l'identifiant du match et peut-être d'autres détails. De cette manière, tu vas te faciliter considérablement la vie et tu retrouveras tous les scores individuels sans difficulté particulière pour les relier à un match bien spécifique.

:)

 
Par Mimosa  -  Le 30/12/2009 17:10  -  Haut de page  - 

Salut,

Oui, j'avais pensé a cette méthode aussi. En faite j'ai essayé avec un serialize en passant un tableau en BDD. Mais il est vrai que passer par deux tables envelent quand même beaucoup de contrainte au niveau code.

 

 
Par Mimosa  -  Le 30/12/2009 18:20  -  Haut de page  - 

En faite avec deux table mon problème est transféré au niveau du formulaire.

Comment faire pour ajouter des lignes au formulaire si le match contient 2 manches et non une.

J'ai par exemple le formulaire pour ajouter un match avec une manche. J'aurais donc la date, le nom des équipes,.., ainsi que pour la manche le score de l'équipe A et le score de l'équipe B.

Si maintenant le match est en deux manches il faudrait que j'ai : le score de l'équipe A manche 1 le score de l'équipe B manche 1 le score de l'équipe A manche 2 le score de l'équipe B manche 2

J'ai donc deux inputs en plus dans le formulaire. En faite il faudrait que je puisse suivant si il y a une ou deux manches générer un formulaire avec 2 ou 4 inputs pour le score.

 
Par Cyrano  -  Le 30/12/2009 20:07  -  Haut de page  - 

Salut Mimosa,

je saisis pas trop à quel niveau est la difficulté. Très schématiquement, soit c'Est coté serveur : ben là, tu fais deux requêtes d'insertion, une pour le match, une pour les manches; soit coté client : dans ce cas, tu peux avantageusement utiliser Ajax pour ajouter autant de manches que tu veux pour un match donné. Et dans ce cas, tout ce que tu as à faire, c'eest ajouter une ligne avec les champs qui vont bien.

Mais il faudrait que tu précise un peu la nature de ton problème avant que je m'aventure dans des explications qui pourraient être hors sujet...

 

 
Par Mimosa  -  Le 30/12/2009 23:10  -  Haut de page  - 

Salut,

Non je n'ai pas de problème côté serveur. J'utilise doctrine comme ceci :

<?php
$war = new Match();
$war->name_host = 'Equipe A';
$war->name_opp = 'Equipe B';
$war->Manche->score_host = '10';
$war->Manche->score_opp = '20';
$war->save();
/*
Manche est une seconde table liée avec l'id d'un match, puisqu'un match peux contenir plusieurs manches.
Si il y a plusieurs Manche je peux faire avec Doctrine
$war->Manche[]->score_opp = $scor_opp; dans un foreach par exemple
*/
?>

Mon problème est donc bien côté client, mais je ne connais pas vraiment le javascript (et donc l'AJAX).

Désolé si je m'exprime mal, je n'arrive pas vraiment a definir correctement mon problème. En tout cas merci de l'interet que tu me portes.

Mimos@

 
Par Mimosa  -  Le 07/01/2010 20:23  -  Haut de page  - 

Petit up...;)

 

Ajouter une réponse à la discussion

Seuls les membres connectés sont autorisés à poster dans les forums !

Identifiez-vous
Join |  ID/MDP? |