[Tableaux] Code de mise en relation
Bonjour,
J'ai une liste de personne et je voudrais les mettre en relation de façon aléatoire sans qu'aucun ne puisse se retrouver seul.
exemple j'ai: a,b,c,d,e,f
je voudrais obtenir cette liste (user_id->user_dest)
a->f
b->d
c->e
d->a
e->b
f->c
et sans qu'il y ai de relation réciproque du style
a->b
b->a
J'ai commencé un code mais le problème et qu'il arrive parfois qu'un individu se retrouve tout seul.
Dans ce cas par exemple
a->b
b->d
c->a
d->e
e->c
f->? (tout le monde a déjà été distribué et "f" ne peut être mis avec lui même)
ou qu'on ai une relation reciproque :
a->b
b->d
c->a
d->c
e->f
f->? (il ne reste que "e" à distribuer alors que "e" est déjà avec f)
Voilà mon code : Merci d'avance
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46
|
$From = array();
$To = array();
$sql = "SELECT user_id FROM user_groups where group_id = '$group' order by RAND()";
$sql2 = mysql_query($sql) or die(mysql_error());
while ($Rowsql2 = mysql_fetch_assoc($sql2))
{
array_push($From, $Rowsql2['user_id']);
}
$sql = "SELECT user_id FROM user_groups where group_id = '$group' order by RAND()";
$sql2 = mysql_query($sql) or die(mysql_error());
while ($Rowsql2 = mysql_fetch_assoc($sql2))
{
array_push($To, $Rowsql2['user_id']);
}
foreach ($From as $MembreFrom) {
$sql = "SELECT user_id FROM user_groups where user_dest = '$MembreFrom' and group_id = '$group'";
$sql2 = mysql_query($sql) or die(mysql_error());
while($data = mysql_fetch_array($sql2))
{
$fromfirst = $data['user_id'];
}
foreach ($To as $Key => $Value) {
if ($Value!=$fromfirst) {
//pour éviter les relations réciproques
if ($Value!=$MembreFrom) {
//Pour éviter qu'un membre ne soit avec lui même
if ($Value) {
$sql = "UPDATE user_groups SET user_dest='$Value' where user_id='$MembreFrom' and group_id = '$group'";
$sql2 = mysql_query($sql) or die(mysql_error());
$To[$Key] = false;
//Marque ce membre comme déjà en relation
break;
}
}
}
}
} |
message erreur pour array_combine
J'ai installé php5 pour array_combine mais j'ai ce message d'erreur
Warning: array_combine() expects parameter 1 to be array, null given in envoi.php
Merci encore.