WebslaveMedlem sedan maj 2002662 inlägg
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...
WebslaveMedlem sedan maj 2002662 inlägg
rIkLuNdMedlem sedan feb. 2003174 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']...
WebslaveMedlem sedan maj 2002662 inlägg
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. 2003174 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. 2003174 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;
?>
WebslaveMedlem sedan maj 2002662 inlägg
Hum... den är ju som min... skumt skumt.
rIkLuNdMedlem sedan feb. 2003174 inlägg
jo, jag vet... *lägger pannan i djupa veck*
WebslaveMedlem sedan maj 2002662 inlägg
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. 2003174 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?
WebslaveMedlem sedan maj 2002662 inlägg
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);
?>
WebslaveMedlem sedan maj 2002662 inlägg
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. 2003174 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
WebslaveMedlem sedan maj 2002662 inlägg
Oja... den är inskriven på samma sätt med punkt som skiljer varje "set" med siffror åt...
rIkLuNdMedlem sedan feb. 2003174 inlägg
ok, ska kolla lite till på den, och se om jag hittar nåt som är galet...
WebslaveMedlem sedan maj 2002662 inlägg
Jag ska ringa killen som står för lottoraderna och se om han har lagt in allt rätt... igen :)
rIkLuNdMedlem sedan feb. 2003174 inlägg
gör så... vem vet, det kanske är hans fel... ;)
WebslaveMedlem sedan maj 2002662 inlägg
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. 2003174 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...
WebslaveMedlem sedan maj 2002662 inlägg
Hum... jo. Men vad? Ikke så bra på databaser...