verdelen over meerdere kolommen
Uit de database haal ik van een maand alle records op, er is één record per dag en de max 31 records wil ik over twee kolommen verdelen. Het eerste deel is dag met waarde 2013, waarde 2014. daarnaast dag 2, waarde 2013, waarde 2014
De volgende code geeft nog steeds 31 (of) 30 rijen ipv 2x 15
Door $kolom de waarde 1 of 2 te geven probeer ik naar een nieuwe regel of naar het deel te gaan.
Ergens maak ik nog een denk fout.
De volgende code geeft nog steeds 31 (of) 30 rijen ipv 2x 15
Door $kolom de waarde 1 of 2 te geven probeer ik naar een nieuwe regel of naar het deel te gaan.
Ergens maak ik nog een denk fout.
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
$dbegin = 2013 ;
$deind = date("Y") ;
$sql = "" ;
$sql = "SELECT Dag AS Dag, " ;
while ($dbegin <= $deind) {
$sql = $sql . "SUM(CASE Jaar WHEN " . (string)$dbegin . " THEN Levering END) AS '" . (string)$dbegin . "'" ;
if ($dbegin < $deind) {
$sql = $sql . " , " ;
} else {
break ;
}
$dbegin = $dbegin + 1 ;
} ;
$sql = $sql . " FROM tbl_Levering INNER JOIN tbl_EParameter ON (Maand = tbl_EParameter.ZMaand) GROUP BY Dag ORDER BY Dag" ;
$result = mysqli_query($con,$sql) ;
$dbegin = 2013 ;
$lengte = (($deind-2013) * 95* 2 ) + 150 ;
$header = "<table border '1', width='" . (string)$lengte ."'>" ;
$header = $header . "<tr> <th width='60' scope='col'>Dag</th>" ;
$header1 = "<th width='10'></th> <th width='60' scope='col'>Dag</th> " ;
while ($dbegin <= $deind) {
$header = $header . "<th width='95' scope='col'>" . (string)$dbegin . "</th>" ;
$header1 = $header1 . "<th width='95' scope='col'>" . (string)$dbegin . "</th>" ;
if ($dbegin>$deind) {break ;
}
$dbegin = $dbegin + 1 ;
} ;
$header = $header . $header1 . "</tr>";
echo $header;
$dbrow = mysqli_fetch_all($result,MYSQLI_BOTH) ;
$kolom = 1 ;
foreach ($dbrow as $row) {
$dbegin = 2013 ;
echo "<tr>";
echo "<td><div align='center'>", $row['Dag'], "</td>";
while ($dbegin <= $deind) {
echo "<td><div align='right'>", $row[(string)$dbegin] ,"</td>";
if ($dbegin>$deind) {break;
}
$dbegin = $dbegin + 1 ;
} ;
if ($kolom == 1) {echo "<td> </td>";
$kolom = 2 ;
} else {echo "</tr>";
$kolom = 1 ;
}
} ;
echo "</table>";
mysqli_close($con);
$deind = date("Y") ;
$sql = "" ;
$sql = "SELECT Dag AS Dag, " ;
while ($dbegin <= $deind) {
$sql = $sql . "SUM(CASE Jaar WHEN " . (string)$dbegin . " THEN Levering END) AS '" . (string)$dbegin . "'" ;
if ($dbegin < $deind) {
$sql = $sql . " , " ;
} else {
break ;
}
$dbegin = $dbegin + 1 ;
} ;
$sql = $sql . " FROM tbl_Levering INNER JOIN tbl_EParameter ON (Maand = tbl_EParameter.ZMaand) GROUP BY Dag ORDER BY Dag" ;
$result = mysqli_query($con,$sql) ;
$dbegin = 2013 ;
$lengte = (($deind-2013) * 95* 2 ) + 150 ;
$header = "<table border '1', width='" . (string)$lengte ."'>" ;
$header = $header . "<tr> <th width='60' scope='col'>Dag</th>" ;
$header1 = "<th width='10'></th> <th width='60' scope='col'>Dag</th> " ;
while ($dbegin <= $deind) {
$header = $header . "<th width='95' scope='col'>" . (string)$dbegin . "</th>" ;
$header1 = $header1 . "<th width='95' scope='col'>" . (string)$dbegin . "</th>" ;
if ($dbegin>$deind) {break ;
}
$dbegin = $dbegin + 1 ;
} ;
$header = $header . $header1 . "</tr>";
echo $header;
$dbrow = mysqli_fetch_all($result,MYSQLI_BOTH) ;
$kolom = 1 ;
foreach ($dbrow as $row) {
$dbegin = 2013 ;
echo "<tr>";
echo "<td><div align='center'>", $row['Dag'], "</td>";
while ($dbegin <= $deind) {
echo "<td><div align='right'>", $row[(string)$dbegin] ,"</td>";
if ($dbegin>$deind) {break;
}
$dbegin = $dbegin + 1 ;
} ;
if ($kolom == 1) {echo "<td> </td>";
$kolom = 2 ;
} else {echo "</tr>";
$kolom = 1 ;
}
} ;
echo "</table>";
mysqli_close($con);
Waar het uiteindelijk om gaat is het resultaat wat je uit de query, dus wat voor ons interessant is:
Welke gegevens zijn er opgeslagen en een voorbeeld met het gewenste resultaat, dat zegt veel meer dan een berg PHP code.
Welke gegevens zijn er opgeslagen en een voorbeeld met het gewenste resultaat, dat zegt veel meer dan een berg PHP code.
De tabel komt er nu zo uit:
Dag 2013 2014 Dag 2013 2014
1 5,74 4,22
2 3,99 2,30
etc
Het moet zo worden
Dag 2013 2014 Dag 2013 2014
1 5,74 4,22 2 3,99 2,30
etc...
De record bevat de dag, waarde van 2013 en waarde van 2014. De opzet is zo dat volgend jaar automatisch 2015 is de sql komt. Het deel waar het fout gaat zit in het deel van de foreach.
Dag 2013 2014 Dag 2013 2014
1 5,74 4,22
2 3,99 2,30
etc
Het moet zo worden
Dag 2013 2014 Dag 2013 2014
1 5,74 4,22 2 3,99 2,30
etc...
De record bevat de dag, waarde van 2013 en waarde van 2014. De opzet is zo dat volgend jaar automatisch 2015 is de sql komt. Het deel waar het fout gaat zit in het deel van de foreach.
Bedankt, met behulp van deze code is het gelukt
Is het ook mogelijk om op zo'n manier twee kolomen te maken waar de eerste kolom 1 t/m 50 en de 2e kolom 51 t/m 100 toont?
Dus zo iets
1 a 11 k
2 b 12 l
3 c 13 m
4 d 14 n
5 e 15 o
6 f 16 p
7 g
8 h
9 i
10j
Dus zo iets
1 a 11 k
2 b 12 l
3 c 13 m
4 d 14 n
5 e 15 o
6 f 16 p
7 g
8 h
9 i
10j
Gewijzigd op 17/02/2015 19:55:02 door mar kla




