Nu börjar jag bli sååå trött på den här tabellen. Har tagit tag i den igen, finns även i en annan tråd, men där med andra frågor också. Har nu försökt igen i flera dagar att få den att fungera. Men jag kan inte. Snälla någon... HJÄLP!
for ($i = 2006; $i <= date('Y'); $i++)
{
echo('<tr><td>'. $i .'</td>');//årtalet skrivs ut. Bli rätt.
for ($j = 0; $j < 8; $j++)
{
echo('<td>');
if (isset($result[$i][$j]))
echo($result[$i][$j]);
else
echo("0");//antal placeringar i 8 kolumner. Blir rätt.
echo ("</td>\n");
}
/*
problemet kommer här:
vid utskrift print_r så finns det;
Array (
[0] => Array ( [pris] => 180250 [0] => 180250 [theYear] => 2006 [1] => 2006 )
[1] => Array ( [pris] => 151500 [0] => 151500 [theYear] => 2007 [1] => 2007 )
)
som ska in här:*/
echo "<td class=\"hoger\"> $pengar </td></tr>\n";
//Som koden är nu så blir det 151500 för både 2006 och 2007
}
//print_r($resultat); //skriver ut som beskrivet ovan.
//print_r($pengar); //skriver ut 151500
?>
Jag testade ditt förslag och gjorde så bara summan skulle skrivas ut eftersom året skrivs ut tidigare men då blev problemet det omvända.
Då kördes en loop, men sedan kördes inte 2007 från början, utan summan skrevs bara ut och då lite konstigt. Jag förstår inte hur man ska kunna köra 2 loopar för ett år i taget. Men kanske är vi på rätt väg. Skriver ut källkoden för båda våra...
Mitt problem är att jag inte kan se och förstår vad som verkligen finns i $result och $pengar (det råder nog viss förvirring om vad som är vad). Kan du skriva ut dessa?
Min ide, som byggde på vad som fanns i kommentarerna i din kod, var att du har en yttre vektor med två element och att dessa två elementen innehåller var sin inre vektor med vardera fyra element (egentligen ser dessa fyra ut det som två som är dubblerade). Eftersom den yttre inte innehåller årtal som "key" utan har heltal (0-1) som index måste man loopa genom den yttre vektorns element (min $k loop) för att leta reda på rätt årtal och när man hittat rätt årtal med hjälp av detta index plocka ut rätt 'pris'.
Att $pengar hela tiden blir 'pris' elementet för sista elementet i $resultat vektorn beror ju på att det är det du sätter det till det i foreach-satsen.
Gör du
foreach($resultat as $vinst)
$pengar = number_format($vinst['pris'], 0, '', ' ');
resten av koden
men tror att du gör
foreach($resultat as $vinst)
{
$pengar = number_format($vinst['pris'], 0, '', ' ');
resten av koden
}
dvs tror att du är inne i foreach blocket när du gör resten av koden.
Har flyttat och lagt till måsvingar eller semikolons flera dagar nu och det blir bara antingen en summa eller bägge. Som här t.ex. Då de kommer de tillsammans. Blir tokig... Så hur tar jag mig ur blocket?
foreach($resultat as $vinst)
{
$pengar = "error - no value for ". $i; // inte mycket till felhantering men....
if ($vinst['theYear'] == $i)
{
$pengar = number_format($vinst['pris'], 0, '', ' ');
echo "<td class=\"hoger\"> $pengar </td></tr>\n";
}
}
Vilket i princip är samma sak med en foreach- + if-sats som min ursprungliga förslag med en for- + if-sats för att få tag i rätt 'pris'.
Där satt den! Men så skönt...
Felhanteringen ska jag försöka klura ut hur jag ska göra, för där behövs en 0:a 1:a januari och fram tills det kommit in pengar igen.
Tack så JÄTTEmycket för din hjälp!
139 ms totalt · 3 externa anrop · v20260731065814-full.b746b907