Op maand sorteren door aleen de sesbetreffende maand op te vragen!

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Jeroen v schie

Jeroen v schie

05/11/2008 11:35:00
Quote Anchor link
Hallo vriendelijke php'ers
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)
PHP script in nieuw venster Selecteer het PHP script
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
<?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>
              
              '
;  
}




?>



Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<a href="index.php?maand=11">november</a>
 
PHP hulp

PHP hulp

21/11/2024 17:20:07
 
Robert Deiman

Robert Deiman

05/11/2008 11:50:00
Quote Anchor link
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.
 
Tikkes C

Tikkes C

05/11/2008 12:35:00
Quote Anchor link
dit onder je query:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
<?php

$row
= mysql_fetch_assoc(JE QUERY);

?>


geef je query dan een waarde of zet hem in de assoc.
en zorg voor een errorafhandeling! (zie beginnerstutorial!)
 
Henk PHP

Henk PHP

05/11/2008 14:30:00
Quote Anchor link
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.
 
Jeroen v schie

Jeroen v schie

05/11/2008 14:59:00
Quote Anchor link
dit kun je veranderen door (tog??) :
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<a href="index.php?maand=1&jaar=2008">January 2008</a>

en dan in de php

Code (php)
PHP script in nieuw venster Selecteer het PHP script
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
<?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>';  

 
}


?>
    



klopt dit en kan dit??
 
Henk PHP

Henk PHP

05/11/2008 15:10:00
Quote Anchor link
Klopt inderdaad.

Je gooit je GET vars wel zo de query in, das een erg gevaarlijke gewoonte.

Over sql-injectie
 
Jeroen v schie

Jeroen v schie

05/11/2008 15:52:00
Quote Anchor link
Zo dus :

Code (php)
PHP script in nieuw venster Selecteer het PHP script
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
<?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>';  

 
}


?>



?????
 
Ano Niem

Ano Niem

05/11/2008 16:23:00
Quote Anchor link
Nee eigenlijk niet, mysql_real_escape_string.. is bedoeld voor strings. Met typecasting kun je een variabele dwingen een bepaald type aan te nemen. In jouw geval

Code (php)
PHP script in nieuw venster Selecteer het PHP script
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
<?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. ;)
Gewijzigd op 01/01/1970 01:00:00 door Ano Niem
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.