Archief aanmaken
ik ben bezig met een scriptje te maken voor een argief weer te geven op mijn website. Hierbij zouden alle berichten onderverdeeld moeten worden per jaar en maand. later zou ik dan met een javascriptje ervoor zorgen dat je de maanden, jaren en berichten kan laten in/uitklappen
Ik moet dus zoiets krijgen:
+2007
-Augustus
bericht 1
bericht 2
...
-Juli
...
+2006
-December
...
Voorlopig heb ik dit al:
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
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
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
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
<h1>Archief</h1>
<div class="hr"></div>
<?php
$sql = "SELECT DISTINCT
DATE_FORMAT(postdate, '%Y') AS jaar
FROM
tblNieuws
ORDER BY
postdate DESC;";
if($result = mysql_query($sql, $link)) {
while($obj = mysql_fetch_object($result)) {
?>
<h2><?php echo $obj->jaar; ?></h2>
<?php
$sql = "SELECT DISTINCT
DATE_FORMAT(postdate, '%Y') AS jaar,
DATE_FORMAT(postdate, '%m') AS maand
FROM
tblNieuws
WHERE
DATE_FORMAT(postdate, '%Y') = '" . $obj->jaar . "'
ORDER BY
postdate DESC;";
if($result = mysql_query($sql, $link)) {
while($obj = mysql_fetch_object($result)) {
?>
<h3><?php echo $obj->maand; ?></h3>
<table style="font-size: 70%;">
<tr>
<th style="width: 80px;">Datum</th>
<th style="width: 460px;">Artikel</th>
<tr>
<?php
$sql = "SELECT
NieuwsID,
Bericht,
Titel,
DATE_FORMAT(postdate, '%d-%m-%Y') AS postdate,
DATE_FORMAT(postdate, '%Y') AS jaar,
DATE_FORMAT(postdate, '%m') AS maand
FROM
tblNieuws
WHERE
DATE_FORMAT(postdate, '%Y') = '" . $obj->jaar . "'
AND
DATE_FORMAT(postdate, '%m') = '" . $obj->maand . "'
ORDER BY
NieuwsID DESC ;";
if($result = mysql_query($sql, $link)) {
$flip = 0;
while($obj = mysql_fetch_object($result)) {
$flip ^= 1;
$news = htmlentities(stripslashes($obj->Bericht));
$news = bbcode($news);
if($_SESSION['level'] == 1) {
$opmaak = "onclick=\"self.location.href='a_edit_news.php?id=" . $obj->NieuwsID . "'\"";
} else {
$opmaak = "onclick=\"self.location.href='nieuws.php?p=readmore&id=" . $obj->NieuwsID . "'\"";
}
if ($flip) {
$opmaak .= " onmouseover=\"this.style.backgroundColor='#afe890'\" onmouseout=\"this.style.backgroundColor='#fff'\" style=\"background: #fff\"";
}
else {
$opmaak .= " onmouseover=\"this.style.backgroundColor='#afe890'\" onmouseout=\"this.style.backgroundColor='#eee'\" style=\"background: #eee\"";
}
?>
<tr <?php echo $opmaak; ?>>
<td style="width: 80px; padding-top: 5px; padding-bottom: 5px;"><?php echo $obj->postdate; ?></td>
<td style="width: 460px; padding-top: 5px; padding-bottom: 5px;"><?php echo htmlentities(stripslashes($obj->Titel)); ?></td>
<tr>
<?php
}
}
?>
</table>
<?php
}
}
?>
<?php
}
}
?>
<div class="hr"></div>
<?php
$sql = "SELECT DISTINCT
DATE_FORMAT(postdate, '%Y') AS jaar
FROM
tblNieuws
ORDER BY
postdate DESC;";
if($result = mysql_query($sql, $link)) {
while($obj = mysql_fetch_object($result)) {
?>
<h2><?php echo $obj->jaar; ?></h2>
<?php
$sql = "SELECT DISTINCT
DATE_FORMAT(postdate, '%Y') AS jaar,
DATE_FORMAT(postdate, '%m') AS maand
FROM
tblNieuws
WHERE
DATE_FORMAT(postdate, '%Y') = '" . $obj->jaar . "'
ORDER BY
postdate DESC;";
if($result = mysql_query($sql, $link)) {
while($obj = mysql_fetch_object($result)) {
?>
<h3><?php echo $obj->maand; ?></h3>
<table style="font-size: 70%;">
<tr>
<th style="width: 80px;">Datum</th>
<th style="width: 460px;">Artikel</th>
<tr>
<?php
$sql = "SELECT
NieuwsID,
Bericht,
Titel,
DATE_FORMAT(postdate, '%d-%m-%Y') AS postdate,
DATE_FORMAT(postdate, '%Y') AS jaar,
DATE_FORMAT(postdate, '%m') AS maand
FROM
tblNieuws
WHERE
DATE_FORMAT(postdate, '%Y') = '" . $obj->jaar . "'
AND
DATE_FORMAT(postdate, '%m') = '" . $obj->maand . "'
ORDER BY
NieuwsID DESC ;";
if($result = mysql_query($sql, $link)) {
$flip = 0;
while($obj = mysql_fetch_object($result)) {
$flip ^= 1;
$news = htmlentities(stripslashes($obj->Bericht));
$news = bbcode($news);
if($_SESSION['level'] == 1) {
$opmaak = "onclick=\"self.location.href='a_edit_news.php?id=" . $obj->NieuwsID . "'\"";
} else {
$opmaak = "onclick=\"self.location.href='nieuws.php?p=readmore&id=" . $obj->NieuwsID . "'\"";
}
if ($flip) {
$opmaak .= " onmouseover=\"this.style.backgroundColor='#afe890'\" onmouseout=\"this.style.backgroundColor='#fff'\" style=\"background: #fff\"";
}
else {
$opmaak .= " onmouseover=\"this.style.backgroundColor='#afe890'\" onmouseout=\"this.style.backgroundColor='#eee'\" style=\"background: #eee\"";
}
?>
<tr <?php echo $opmaak; ?>>
<td style="width: 80px; padding-top: 5px; padding-bottom: 5px;"><?php echo $obj->postdate; ?></td>
<td style="width: 460px; padding-top: 5px; padding-bottom: 5px;"><?php echo htmlentities(stripslashes($obj->Titel)); ?></td>
<tr>
<?php
}
}
?>
</table>
<?php
}
}
?>
<?php
}
}
?>
Ik krijg echter alleen dit te zien:
+2007
-Augustus
alle berichten van augustus
Voor de rest komt er niets tevoorschijn. Kan iemand me ook vertellen ofdat ik wel juist bezig ben? Ben nog maar net begonnen met php en hoef dus nog veel te leren... Alvast vriendelijk bedankt!
SELECT EXTRACT(YEAR FROM datum) AS jaar, EXTRACT(MONTH FROM datum) AS maand, DATE_FORMAT(datum,'%M %Y') AS maand_jaar, COUNT(id) AS aantal FROM nieuwsberichten GROUP BY maand_jaar ORDER BY datum DESC
Hij toont dus enkel de maanden (met vermelding van jaartal) en het aantal berichten. Hij toont geen maanden waarin er geen berichten geplaatst zijn.
Hopelijk kan je er iets mee.