Op maand sorteren door aleen de sesbetreffende maand op te vragen!
ik heb een vraagje :
ik wil graag mijn nieuws selecteren uit de database waarvan bijv. aleen de maand november is
ik heb dit nu al in mekaar geknutselt aleen werkt dit nog niet naar behoren
ik ben ook een beetje een noob met php maar ik begin er al wat meer van te snappen mischien dat jullie mij met dit probleem willen helpen (of weten wat ik fout doe) :
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
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
<?php
$maand=$_GET['maand'];
if(!empty($maand)){
mysql_query("SELECT titel,nieuws,DATE_FORMAT(datum, '%d.%m.%Y') as show_datum FROM blog_nieuws WHERE MONTH(datum) = ".$maand." ORDER BY datum DESC");
echo '
<li> <a href="#">'.$row['titel'].'</a><br />
'.$row['nieuws'].'<br />
<span class="smaller low">Published: <strong>'.$row['show_datum'].'</strong>, <strong><a href="#"></a></strong></span> </li>
';
}else{
mysql_query("SELECT titel,nieuws,DATE_FORMAT(datum, '%d.%m.%Y') as show_datum FROM blog_nieuws ORDER BY id DESC");
echo '
<li> <a href="#">'.$row['titel'].'</a><br />
'.$row['nieuws'].'<br />
<span class="smaller low">Published: <strong>'.$row['show_datum'].'</strong>, <strong><a href="#"></a></strong></span> </li>
';
}
?>
$maand=$_GET['maand'];
if(!empty($maand)){
mysql_query("SELECT titel,nieuws,DATE_FORMAT(datum, '%d.%m.%Y') as show_datum FROM blog_nieuws WHERE MONTH(datum) = ".$maand." ORDER BY datum DESC");
echo '
<li> <a href="#">'.$row['titel'].'</a><br />
'.$row['nieuws'].'<br />
<span class="smaller low">Published: <strong>'.$row['show_datum'].'</strong>, <strong><a href="#"></a></strong></span> </li>
';
}else{
mysql_query("SELECT titel,nieuws,DATE_FORMAT(datum, '%d.%m.%Y') as show_datum FROM blog_nieuws ORDER BY id DESC");
echo '
<li> <a href="#">'.$row['titel'].'</a><br />
'.$row['nieuws'].'<br />
<span class="smaller low">Published: <strong>'.$row['show_datum'].'</strong>, <strong><a href="#"></a></strong></span> </li>
';
}
?>
je haalt nergens de gegevens op met mysql_fetch_assoc of een vergelijkbare functie. Dus het is logisch dat er niet gebeurt wat je wilt.
geef je query dan een waarde of zet hem in de assoc.
en zorg voor een errorafhandeling! (zie beginnerstutorial!)
Trouwens - ik weet niet of dit je bedoeling is - maar nu krijg je als je bijvoorbeeld in nov. 2007 berichten hebt geplaatst én in 2008, de berichten van allebei de jaren. Ik vraag me af of je dit wilt.
en dan in de php
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
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
<?php
$maand=$_GET['maand'];
$jaar=$_GET['jaar'];
if(!empty($maand) && !empty($jaar)){
$row = mysql_fetch_assoc(mysql_query("SELECT titel,nieuws,DATE_FORMAT(datum, '%d.%m.%Y') as show_datum FROM blog_nieuws WHERE MONTH(datum) = ".$maand." AND YEAR(datum) = ".$jaar." ORDER BY datum DESC"));
echo '<li> <a href="#">'.$row['titel'].'</a><br />';
echo $row['nieuws'].'<br />';
echo '<span class="smaller low">Published: <strong>'.$row['show_datum'].'</strong>, <strong><a href="#"></a></strong></span></li>';
}else{
$row = mysql_fetch_assoc(mysql_query("SELECT titel,nieuws,DATE_FORMAT(datum, '%d.%m.%Y') as show_datum FROM blog_nieuws ORDER BY id DESC"));
echo '<li> <a href="#">'.$row['titel'].'</a><br />';
echo $row['nieuws'].'<br />';
echo '<span class="smaller low">Published: <strong>'.$row['show_datum'].'</strong>, <strong><a href="#"></a></strong></span></li>';
}
?>
$maand=$_GET['maand'];
$jaar=$_GET['jaar'];
if(!empty($maand) && !empty($jaar)){
$row = mysql_fetch_assoc(mysql_query("SELECT titel,nieuws,DATE_FORMAT(datum, '%d.%m.%Y') as show_datum FROM blog_nieuws WHERE MONTH(datum) = ".$maand." AND YEAR(datum) = ".$jaar." ORDER BY datum DESC"));
echo '<li> <a href="#">'.$row['titel'].'</a><br />';
echo $row['nieuws'].'<br />';
echo '<span class="smaller low">Published: <strong>'.$row['show_datum'].'</strong>, <strong><a href="#"></a></strong></span></li>';
}else{
$row = mysql_fetch_assoc(mysql_query("SELECT titel,nieuws,DATE_FORMAT(datum, '%d.%m.%Y') as show_datum FROM blog_nieuws ORDER BY id DESC"));
echo '<li> <a href="#">'.$row['titel'].'</a><br />';
echo $row['nieuws'].'<br />';
echo '<span class="smaller low">Published: <strong>'.$row['show_datum'].'</strong>, <strong><a href="#"></a></strong></span></li>';
}
?>
klopt dit en kan dit??
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
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
<?php
$maand = mysql_real_escape_string($_GET['maand']);
$jaar = mysql_real_escape_string($_GET['jaar']);
if(!empty($maand) && !empty($jaar)){
$row = mysql_fetch_assoc(mysql_query("SELECT titel,nieuws,DATE_FORMAT(datum, '%d.%m.%Y') as show_datum FROM blog_nieuws WHERE MONTH(datum) = ".$maand." AND YEAR(datum) = ".$jaar." ORDER BY datum DESC"));
echo '<li> <a href="#">'.$row['titel'].'</a><br />';
echo $row['nieuws'].'<br />';
echo '<span class="smaller low">Published: <strong>'.$row['show_datum'].'</strong>, <strong><a href="#"></a></strong></span></li>';
}else{
$row = mysql_fetch_assoc(mysql_query("SELECT titel,nieuws,DATE_FORMAT(datum, '%d.%m.%Y') as show_datum FROM blog_nieuws ORDER BY id DESC"));
echo '<li> <a href="#">'.$row['titel'].'</a><br />';
echo $row['nieuws'].'<br />';
echo '<span class="smaller low">Published: <strong>'.$row['show_datum'].'</strong>, <strong><a href="#"></a></strong></span></li>';
}
?>
$maand = mysql_real_escape_string($_GET['maand']);
$jaar = mysql_real_escape_string($_GET['jaar']);
if(!empty($maand) && !empty($jaar)){
$row = mysql_fetch_assoc(mysql_query("SELECT titel,nieuws,DATE_FORMAT(datum, '%d.%m.%Y') as show_datum FROM blog_nieuws WHERE MONTH(datum) = ".$maand." AND YEAR(datum) = ".$jaar." ORDER BY datum DESC"));
echo '<li> <a href="#">'.$row['titel'].'</a><br />';
echo $row['nieuws'].'<br />';
echo '<span class="smaller low">Published: <strong>'.$row['show_datum'].'</strong>, <strong><a href="#"></a></strong></span></li>';
}else{
$row = mysql_fetch_assoc(mysql_query("SELECT titel,nieuws,DATE_FORMAT(datum, '%d.%m.%Y') as show_datum FROM blog_nieuws ORDER BY id DESC"));
echo '<li> <a href="#">'.$row['titel'].'</a><br />';
echo $row['nieuws'].'<br />';
echo '<span class="smaller low">Published: <strong>'.$row['show_datum'].'</strong>, <strong><a href="#"></a></strong></span></li>';
}
?>
?????
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
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
<?php
$maand = (int)$_GET['maand'];
$jaar =(int)$_GET['jaar'];
if(!empty($maand) && !empty($jaar)){
$row = mysql_fetch_assoc(mysql_query("SELECT titel,nieuws,DATE_FORMAT(datum, '%d.%m.%Y') as show_datum FROM blog_nieuws WHERE MONTH(datum) = ".$maand." AND YEAR(datum) = ".$jaar." ORDER BY datum DESC"));
echo '<li> <a href="#">'.$row['titel'].'</a><br />';
echo $row['nieuws'].'<br />';
echo '<span class="smaller low">Published: <strong>'.$row['show_datum'].'</strong>, <strong><a href="#"></a></strong></span></li>';
}else{
$row = mysql_fetch_assoc(mysql_query("SELECT titel,nieuws,DATE_FORMAT(datum, '%d.%m.%Y') as show_datum FROM blog_nieuws ORDER BY id DESC"));
echo '<li> <a href="#">'.$row['titel'].'</a><br />';
echo $row['nieuws'].'<br />';
echo '<span class="smaller low">Published: <strong>'.$row['show_datum'].'</strong>, <strong><a href="#"></a></strong></span></li>';
}
[/code]
als iemand nu ?maand=ab"c invoert dan wordt doormiddel van typecasting $maand null.
Als je mysql_real_escape_string zou gebruiken wordt $maand 'ab\"c'. Dit zou geen resultaten of misschien een error opleveren. ;)
$maand = (int)$_GET['maand'];
$jaar =(int)$_GET['jaar'];
if(!empty($maand) && !empty($jaar)){
$row = mysql_fetch_assoc(mysql_query("SELECT titel,nieuws,DATE_FORMAT(datum, '%d.%m.%Y') as show_datum FROM blog_nieuws WHERE MONTH(datum) = ".$maand." AND YEAR(datum) = ".$jaar." ORDER BY datum DESC"));
echo '<li> <a href="#">'.$row['titel'].'</a><br />';
echo $row['nieuws'].'<br />';
echo '<span class="smaller low">Published: <strong>'.$row['show_datum'].'</strong>, <strong><a href="#"></a></strong></span></li>';
}else{
$row = mysql_fetch_assoc(mysql_query("SELECT titel,nieuws,DATE_FORMAT(datum, '%d.%m.%Y') as show_datum FROM blog_nieuws ORDER BY id DESC"));
echo '<li> <a href="#">'.$row['titel'].'</a><br />';
echo $row['nieuws'].'<br />';
echo '<span class="smaller low">Published: <strong>'.$row['show_datum'].'</strong>, <strong><a href="#"></a></strong></span></li>';
}
[/code]
als iemand nu ?maand=ab"c invoert dan wordt doormiddel van typecasting $maand null.
Als je mysql_real_escape_string zou gebruiken wordt $maand 'ab\"c'. Dit zou geen resultaten of misschien een error opleveren. ;)
Gewijzigd op 01/01/1970 01:00:00 door Ano Niem