webForumDet fria alternativet

Hitta rätt cell i array.

2 svar · 403 visningar · startad av überfuzz

überfuzzMedlem sedan apr. 2006409 inlägg
#1

Jag har array-bekymmer. När jag hämtar dagar resp veckor från en sql-tabell vill jag echo:a ut hur många sql-rader som har exakt samma dag och vecka. Alltså, om det finns 5 rader som har dag 3 och vecka 10, vill jag att det ska echo:a ut 5 på platsen för dag 3 vecka 10. Mitt försök blev inte mycket för världen. Det verkar som att inget sparas utan bara skrivs över.

$user=$_SESSION['sess_user'];
$month=date("m");
$sql = mysql_query("SELECT day,week FROM resultat WHERE month = $month AND user = $user") or die(mysql_error("Det gick inte att nå tabellen 'reslutat'"));
while($resultat = mysql_fetch_array($sql)){

	$day = $resultat['day'];
	$week = $resultat['week'];
	$result_day = array();
	$result_day[$week][$day] = 1 + $result_day[$week][$day];
	foreach ($result_day as $a) {
		foreach ($a as $b) {
		echo "$b\n";
		}
	}
}
print_r  ($result_day);

print_r ger följande: Array ( [47] => Array ( [5] => 1 ) )

nitro2k01Medlem sedan aug. 20039 342 inlägg
#2
$user=$_SESSION['sess_user']; 
$month=date("m"); 
$sql = mysql_query("SELECT day,week FROM resultat WHERE month = $month AND user = $user") or die(mysql_error("Det gick inte att nå tabellen 'reslutat'")); 
$result_day = array();

while($resultat = mysql_fetch_array($sql)){ 
    $day = $resultat['day']; 
    $week = $resultat['week']; 

    $result_day[$week][$day]++;
} 

foreach ($result_day as $week => $a) { 
    foreach ($a as $day => $b) { 
        if ($b > 1){
       	    echo "W: $week D: $day Num: $b\n";
        }
    } 
}

Saker är totalt felplacerade i din kod. Du initierar om arrayen i varje runda, med $result_day = array(); och du försöker skriva ut innan du gått igenom alla element. Din print_r skriver dag 5 i vecka 47, vilket är det sista som hämtas ur databasen, och därmed det enda som överlever.

Koden ovan är otestad men bör fungera.

überfuzzMedlem sedan apr. 2006409 inlägg
#3

Gud vad genant. Nu tror jag att jag ska gå och ta lite gift.

Tack!

130 ms totalt · 3 externa anrop · v20260731065814-full.fb544a5a
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
127 ms — hämta tråd, inlägg och bilagor (db)