par
Patpillon » 29 juil. 2009, 21:37
merci pour les réponses, ca a réglé le problème. J'aurais besoin de retourné $groupWidth et $gender dans un tableau et ensuite faire un echo. avez-vous une idee ? merci
function findValidSample($noEdition, $noExercise, $noLevel, $gender, $age, $lstAgeGroup, $indAgeMin, $indAgeMax)
{
$MIN_RECORD = 25;
$MAX_GROUP_WIDTH = 15;
$stop = false;
//print("base indAgeMin = ");
//print($indAgeMin);
//print("base indAgeMax = ");
//print($indAgeMax);
while ($stop == false)
{
// Requêtes #2 à N
$query = "SELECT * FROM ResultGame WHERE NoEdition = ".$noEdition." AND NoExercise = ".$noExercise." AND NoLevel = ".$noLevel." AND Age >= ".$lstAgeGroup[ $indAgeMin]." AND Age <= ".$lstAgeGroup[$indAgeMax];
// Requête #1 seulement
if (strlen($gender) == 1)
{
$query = $query." AND Gender = '".$gender."'";
}
$result = mysql_query($query) or die(mysql_error());
$nbRecord = mysql_num_rows($result);
$groupWidth = $lstAgeGroup[$indAgeMax] - $lstAgeGroup[$indAgeMin] + 1;
//print("nbRecord = ");
//print($nbRecord);
if ($nbRecord < $MIN_RECORD)
{
$gender = "M,F";
if ($groupWidth < $MAX_GROUP_WIDTH)
{
if (getAgeGroupDirection($age, $lstAgeGroup, $indAgeMin, $indAgeMax) == "younger")
{
$indAgeMin -= 2;
//print("younger");
}
else
{
$indAgeMax += 2;
//print("older");
}
$groupWidth = $lstAgeGroup[$indAgeMax] - $lstAgeGroup[$indAgeMin] + 1;
//print("indAgeMin = ");
//print($indAgeMin);
//print("indAgeMax = ");
//print($indAgeMax);
}
else if (($indAgeMin == 0) or ($indAgeMax == (sizeof($lstAgeGroup) - 1)))
{
if ($extremeGroup == false)
{
$extremeGroup = true;
}
else
{
$stop = true;
}
}
else
{
$stop = true;
}
}
else
{
$stop = true;
}
//print("groupWidth = ");
//print($groupWidth);
}
return array($lstAgeGroup[$indAgeMin], $lstAgeGroup[$indAgeMax], $gender, $result);
}
j'ai également une erreur SQL?
$query = "SELECT * FROM ResultGame WHERE NoEdition = ".$noEdition." AND NoExercise = ".$noExercise." AND NoLevel = ".$noLevel." AND Age >= ".$lstAgeGroup[ $indAgeMin]." AND Age <= ".$lstAgeGroup[$indAgeMax];
merci pour les réponses, ca a réglé le problème. J'aurais besoin de retourné $groupWidth et $gender dans un tableau et ensuite faire un echo. avez-vous une idee ? merci
[php]function findValidSample($noEdition, $noExercise, $noLevel, $gender, $age, $lstAgeGroup, $indAgeMin, $indAgeMax)
{
$MIN_RECORD = 25;
$MAX_GROUP_WIDTH = 15;
$stop = false;
//print("base indAgeMin = ");
//print($indAgeMin);
//print("base indAgeMax = ");
//print($indAgeMax);
while ($stop == false)
{
// Requêtes #2 à N
$query = "SELECT * FROM ResultGame WHERE NoEdition = ".$noEdition." AND NoExercise = ".$noExercise." AND NoLevel = ".$noLevel." AND Age >= ".$lstAgeGroup[ $indAgeMin]." AND Age <= ".$lstAgeGroup[$indAgeMax];
// Requête #1 seulement
if (strlen($gender) == 1)
{
$query = $query." AND Gender = '".$gender."'";
}
$result = mysql_query($query) or die(mysql_error());
$nbRecord = mysql_num_rows($result);
$groupWidth = $lstAgeGroup[$indAgeMax] - $lstAgeGroup[$indAgeMin] + 1;
//print("nbRecord = ");
//print($nbRecord);
if ($nbRecord < $MIN_RECORD)
{
$gender = "M,F";
if ($groupWidth < $MAX_GROUP_WIDTH)
{
if (getAgeGroupDirection($age, $lstAgeGroup, $indAgeMin, $indAgeMax) == "younger")
{
$indAgeMin -= 2;
//print("younger");
}
else
{
$indAgeMax += 2;
//print("older");
}
$groupWidth = $lstAgeGroup[$indAgeMax] - $lstAgeGroup[$indAgeMin] + 1;
//print("indAgeMin = ");
//print($indAgeMin);
//print("indAgeMax = ");
//print($indAgeMax);
}
else if (($indAgeMin == 0) or ($indAgeMax == (sizeof($lstAgeGroup) - 1)))
{
if ($extremeGroup == false)
{
$extremeGroup = true;
}
else
{
$stop = true;
}
}
else
{
$stop = true;
}
}
else
{
$stop = true;
}
//print("groupWidth = ");
//print($groupWidth);
}
return array($lstAgeGroup[$indAgeMin], $lstAgeGroup[$indAgeMax], $gender, $result);
} [/php] j'ai également une erreur SQL?
[php]$query = "SELECT * FROM ResultGame WHERE NoEdition = ".$noEdition." AND NoExercise = ".$noExercise." AND NoLevel = ".$noLevel." AND Age >= ".$lstAgeGroup[ $indAgeMin]." AND Age <= ".$lstAgeGroup[$indAgeMax];[/php]