Yo! Jag frågade om något liknande för ett tag sedan men saker och ting ändrades så det bra tipset jag fick funkar inte under de nya förutsättningarna.
Jag har tre olika tal som ser ut som liknande: 12.2.3.22.1.33 och de ska jämföras och jag slängde ihop följande... men det verkar inte stämma riktigt ordentligt. Om någon ser någto som inte ser ut som det bör så hojta gärna till.
$str1 = $row2['week_lotto_one'];
$lotto1 = explode(".",$str1);
$str2 = $row2['week_lotto_two'];
$lotto2 = explode(".",$str2);
$str3 = $row['user_number'];
$user_numbers = explode(".",$str3);
$correct_numbers_lotto_one = 0;
$correct_numbers_lotto_two = 0;
for($i=0;$i<7;$i++){
if($lotto1[$i]==$user_numbers[$i]){
$correct_numbers_lotto_one++;
}
if($lotto2[$i]==$user_numbers[$i]){
$correct_numbers_lotto_two++;
}
}
Dettta loopas igenom för varje användare...
rIkLuNdMedlem sedan feb. 2003169 inlägg du har råkat göra ett sånt här roligt fel som man sitter och sliter håret av sig för att man inte ser det... du har gömt en 2:a i $row['user_number']. ändra det till $row2['user_number']...
Nej nej... det kanske jag skulle ha sagt. Det finns en $row, där varje användare loopas ut, och en $row2, där lottonummren finns.
Tack i alla fall ;)
rIkLuNdMedlem sedan feb. 2003169 inlägg aj då... ja, förlåt för att jag anklagar dig för felaktiga saker... ska kolla vidare på koden!
rIkLuNdMedlem sedan feb. 2003169 inlägg <?php
// den här koden använde jag när jag testade ditt script,
// och den funkar för mig i alla fall...
$row2['week_lotto_one'] = "12.2.3.22.1.33";
$row2['week_lotto_two'] = "12.5.2.33.7.93";
$row['user_number'] = "12.6.2.34.7.33";
$str1 = $row2['week_lotto_one'];
$lotto1 = explode(".",$str1);
$str2 = $row2['week_lotto_two'];
$lotto2 = explode(".",$str2);
$str3 = $row['user_number'];
$user_numbers = explode(".",$str3);
$correct_numbers_lotto_one = 0;
$correct_numbers_lotto_two = 0;
for($i = 0; $i < 6; $i++)
{
if($lotto1[$i] == $user_numbers[$i])
{
$correct_numbers_lotto_one++;
}
if($lotto2[$i] == $user_numbers[$i])
{
$correct_numbers_lotto_two++;
}
}
echo "Lotto 1: ".$correct_numbers_lotto_one." || \n";
echo "Lotto 2: ".$correct_numbers_lotto_two;
?>
Hum... den är ju som min... skumt skumt.
rIkLuNdMedlem sedan feb. 2003169 inlägg jo, jag vet... *lägger pannan i djupa veck*
Kan det vara så att det krånglar när jag hämtar från db'n eller nått? Att det blir nå knas när den loopar ut användarna...? Humm... jag sätter mig och klurar lite nu...
rIkLuNdMedlem sedan feb. 2003169 inlägg jo, jag kom faktiskt att tänka på det nu... är du säker på att datan i db:n har samma syntax som du vill att den ska ha?
BTW... om det hjälper så är detta hela koden:
<?PHP
require ("variables.php");
$week_sql = "SELECT * FROM test_lotto_weeks ORDER BY week_number DESC";
$week_query = mysql_query("$week_sql");
while($week_row = mysql_fetch_array($week_query)){
echo "<table width=\"500\" cellspacing=\"0\">\n";
echo "<tr><td align=\"center\" colspan=\"3\" class=\"top\"><b>Vecka ".$week_row['week_number']."</b></td></tr>\n";
echo "<tr><td class=\"second1\">Namn:</td><td align=\"center\" class=\"second\">Lotto1</td><td align=\"center\" class=\"second\">Lotto2</td></tr>\n";
$sql = "SELECT * FROM test_lotto_users ORDER BY user_name ASC";
$query = mysql_query("$sql");
while($row = mysql_fetch_array($query)){
$sql2 = "SELECT * FROM test_lotto_weeks WHERE week_number = '".$week_row['week_number']."'";
$query2 = mysql_query("$sql2");
while($row2 = mysql_fetch_array($query2)){
$str1 = $row2['week_lotto_one'];
$lotto1 = explode(".",$str1);
$str2 = $row2['week_lotto_two'];
$lotto2 = explode(".",$str2);
$str3 = $row['user_number'];
$user_numbers = explode(".",$str3);
$correct_numbers_lotto_one = 0;
$correct_numbers_lotto_two = 0;
for($i=0;$i<7;$i++){
if($lotto1[$i]==$user_numbers[$i]){
$correct_numbers_lotto_one++;
}
if($lotto2[$i]==$user_numbers[$i]){
$correct_numbers_lotto_two++;
}
}
echo "<tr><td class=\"name\"><b>".$row['user_name']."</b></td><td align=\"center\" class=\"main\">";
if($correct_numbers_lotto_one>=4){
echo "<font color=\"green\">";
}
else{
echo "<font color=\"red\">";
}
echo "<b>".$correct_numbers_lotto_one."</b></font></td><td align=\"center\" class=\"main\">";
if($correct_numbers_lotto_two>=4){
echo "<font color=\"green\">";
}
else{
echo "<font color=\"red\">";
}
echo "<b>".$correct_numbers_lotto_two."</b></td></tr>";
}
}
echo "</table>\n<br>";
}
mysql_close($connect);
?>
rIkLuNd skrev:
jo, jag kom faktiskt att tänka på det nu... är du säker på att datan i db:n har samma syntax som du vill att den ska ha?
I db'n så är formatet varchar... eftersom jag har punkter med.
rIkLuNdMedlem sedan feb. 2003169 inlägg jo, men jag menar, är du säker på att datan ser ut t ex så här:
55.23.73.12.32.45
Oja... den är inskriven på samma sätt med punkt som skiljer varje "set" med siffror åt...
rIkLuNdMedlem sedan feb. 2003169 inlägg ok, ska kolla lite till på den, och se om jag hittar nåt som är galet...
Jag ska ringa killen som står för lottoraderna och se om han har lagt in allt rätt... igen :)
rIkLuNdMedlem sedan feb. 2003169 inlägg gör så... vem vet, det kanske är hans fel... ;)
Hehe... ja, det vet man ju aldrig. Han har kollat alla användarnas nummer och de stämmer... men jag tror han glömt kolla lotto1 och lotto2. Men det knepiga är när jag testar exakt samma kod med några tal från en db och det irriterande är att de som ska ha 0 rätt får i alla fall 1 rätt... riktigt irriterande.
rIkLuNdMedlem sedan feb. 2003169 inlägg det måste vara nåt med datan från db:n som är galet, eftersom det verkar som att själva koden funkar utmärkt, om man använder värden från lokala variablar...
Hum... jo. Men vad? Ikke så bra på databaser...