Bonjour,
J'ai une relation HBTML entre ma table « user » et « match ».
On imagine que j'ai 4 utilisateurs inscrits à un championnat. Ma table « participer » contient donc 4 enregistrements.
Je ferme le championnat et je souhaite générer automatiquement les matchs.
Sachant qu'il y a un match aller et retour.
Voici, actuellement, ma fonction qui génère ces matchs :
public function generateMatchs($idChampionship) {
$players = $this->query('SELECT User.id FROM user as User, participer as Participer WHERE User.id = Participer.user_id AND Participer.championship_id = '.$idChampionship.'');
foreach ($players as $key => $value) {
$joueurs] = $value'User']'id'];
}
$count = 0;
$journee = 1;
$type = "Aller";
foreach ($joueurs as $domicile) {
foreach ($joueurs as $exterieur) {
if ($domicile != $exterieur) {
$this->query('INSERT INTO `match_user` (match_id, user_id) VALUES ('.$count.', '.$domicile.')');
$this->query('INSERT INTO `match_user` (match_id, user_id) VALUES ('.$count.', '.$exterieur.')');
$this->query('INSERT INTO `match` (championship_id, type, journee) VALUES ('.$idChampionship.', "'.$type.'", '.$journee.')');
}
$count++;
}
$journee++;
$type = "Retour";
}
}
Voici comment cette fonction remplit ma base :
Table « match » :
Table « match_user » :
J'ai l'impression que mes tables ne sont pas remplient correctement.
Auriez-vous une idée pour améliorer mon système afin de pouvoir générer correctement mes matchs ?
Merci de votre aide.
je te donne une piste a toi de la travailler :)
function generateMatchs($idChampionship = 1) {
$player = array('J1','J2','J3','J4'); // Recuperes tes id
foreach ($player as $k => $v) {
foreach ($player as $l => $w) {
if($v != $w && $v < $w) {
$aller] = $v.' vs '.$w. ' -- Aller';
$retour] = $w.' vs '.$v. ' -- Retour';
}
}
}
$match = array_merge($aller, $retour);
var_dump($match);
}
ce qui donne comme resultat:
array (size=12)
0 => string 'J1 vs J2 -- Aller' (length=17)
1 => string 'J1 vs J3 -- Aller' (length=17)
2 => string 'J1 vs J4 -- Aller' (length=17)
3 => string 'J2 vs J3 -- Aller' (length=17)
4 => string 'J2 vs J4 -- Aller' (length=17)
5 => string 'J3 vs J4 -- Aller' (length=17)
6 => string 'J2 vs J1 -- Retour' (length=18)
7 => string 'J3 vs J1 -- Retour' (length=18)
8 => string 'J4 vs J1 -- Retour' (length=18)
9 => string 'J3 vs J2 -- Retour' (length=18)
10 => string 'J4 vs J2 -- Retour' (length=18)
11 => string 'J4 vs J3 -- Retour' (length=18)
Merci de ton aide, toute fois, j'aurais une question.
Quand j'insère dans ma base de données, je n'arrive pas à insérer l'idée du match.
Ou alors, en faisant avec ton code, je devrais avoir qu'une seule table match avec id, user_1, user_2 ?