login  Naam:   Wachtwoord: 
Registreer je!
 Forum

Huidige maand uit een database selecteren

Offline vak429 - 15/09/2005 18:45
Avatar van vak429Nieuw lid Ik heb voor mijn nieuws een tabel waar ik alles op sla met een date type.

Nu wil ik op een pagina alle berichten van de huidige maand weergeven. Maar hoe fix ik dit?

dus:
SELECT * FROM news WHERE maand = xx-05-2005

en hoe doe ik dit tevens voor een andere willekeurige maand die ik als $ uit een url ga halen?

15 antwoorden

Gesponsorde links
Offline Thomas - 15/09/2005 19:09
Avatar van Thomas Moderator Ik ken geen dd-mm-yyyy "date type", wel yyyy-mm-dd.
MySQL heeft een functie genaamd MONTH die kan werken op datums van het formaat yyy-mm-dd.

Dan is het makkelijk:
SELECT *
FROM whatever
WHERE MONTH(je_datum_kolom) = een_of_andere_maand

of van de huidige maand:
SELECT *
FROM whatever
WHERE MONTH(je_datum_kolom) = MONTH(NOW())
Offline vak429 - 15/09/2005 19:29 (laatste wijziging 15/09/2005 20:52)
Avatar van vak429 Nieuw lid ik gebruik nu dit script om van de huidige maand alles te selecteren en de nieuwste weer te geven:

  1. <?php
  2. //Database connect //
  3. mysql_connect ("localhost","xxx", "xxx");
  4. mysql_select_db("vak429_nl_-_news");
  5.  
  6. // Maak query om titel en bericht behorend bij de juiste id op te halen//
  7. $query = "SELECT * FROM nieuws ORDER BY id DESC LIMIT 1";
  8.  
  9. // Voer query uit //
  10. $resultaat = mysql_query($query) or die ("query mislukt");
  11.  
  12.  
  13. // Maak een loop
  14.  
  15. while( // zolang er resultaten zijn//
  16. $obj = mysql_fetch_object($resultaat)){
  17.  
  18. // haal het onderwerp uit de array
  19. $onderwerp = $obj->onderwerp;
  20.  
  21. // haal het bericht uit de array en haal de//
  22. //overbodige slashes eruit en begin een nieuwe//
  23. // lijn als dit in het bericht ook gebeurd//
  24. $bericht = stripslashes($obj->bericht);
  25. $bericht = nl2br($bericht);
  26. ?>
  27. <table width="540" border="0" align="center" cellpadding="0" cellspacing="0">
  28. <tr>
  29. <td bgcolor="C31E1E">
  30. <div align="left"> <font color="#FFFFFF" size="1" face="Verdana, Arial, Helvetica, sans-serif"><b>
  31. <?php echo"$obj->datum"; ?> - <?php echo"$onderwerp"; ?></b></font>
  32. </div> </td></tr><tr>
  33. <td valign="top" height="43">
  34. <table width="540" border="0" cellspacing="0" cellpadding="3" height="35">
  35. <tr>
  36. <td height="19" valign="top" bgcolor="#CCCCCC">
  37. <div align="left"> <font color="#FF0000" size="1" face="Verdana, Arial, Helvetica, sans-serif">
  38. <?php echo"$bericht"; ?>
  39. </font></div> </td></tr><tr>
  40. <td valign="top" height="8">
  41. <div align="right"></div></td></tr></table></td></tr>
  42. </table>
  43. <br>
  44.  
  45. <table width="540" border="0" align="center" cellpadding="0" cellspacing="0">
  46. <?
  47.  
  48. // qry uitvoeren om alles van de huidige maand uit de database te toveren //
  49. $qry = mysql_query("SELECT * FROM nieuws WHERE MONTH(datum) = MONTH(NOW())ORDER BY id");
  50.  
  51. // zolang er resultaat... //
  52. while ($regel = mysql_fetch_array($mysql1)){
  53.  
  54. // $ uit array halen //
  55. $onderwerp = $regel["onderwerp"];
  56. $datum = $regel["datum"];
  57. $id = $regel["id"];
  58. ?>
  59. <tr>
  60. <td width="166"><div align="left"><font size="2" face="Verdana, Arial, Helvetica, sans-serif" color="#FF0000"><? PRINT"$datum";?></font> </div></td>
  61. <td width="374"><div align="left"><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><? PRINT"<a href='view.php?id=$id'>$onderwerp</a>";?></font></div></td>
  62. </tr>
  63. <? }
  64. ?>
  65. </table>

maar nu krijg ik de error:
Parse error: parse error, unexpected $ in /home/virtual/site103/fst/var/www/html/HTM/admin/news/view_month.php on line 65

wat zit er fout want het lijkt mij toch wel redelijk in orde...
Offline Rens - 15/09/2005 20:50
Avatar van Rens Gouden medaille

Crew algemeen
2 dingen:
1. gebruik code tags
2. spring fatsoenlijk in.

Mijn gokje:
Je bent een } vergeten.
Zet hem eens erbij op regel 65.
Offline vak429 - 15/09/2005 20:52
Avatar van vak429 Nieuw lid die staat er al op regel 63
Offline Rens - 15/09/2005 20:53
Avatar van Rens Gouden medaille

Crew algemeen
Doe toch maar wat ik zei^^
Offline vak429 - 15/09/2005 20:56 (laatste wijziging 15/09/2005 20:58)
Avatar van vak429 Nieuw lid Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /home/virtual/site103/fst/var/www/html/HTM/admin/news/view_month.php on line 52
Offline Rens - 15/09/2005 20:57
Avatar van Rens Gouden medaille

Crew algemeen
Citaat:
Zet hem eens erbij op regel 65.
Offline vak429 - 15/09/2005 20:59
Avatar van vak429 Nieuw lid Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /home/virtual/site103/fst/var/www/html/HTM/admin/news/view_month.php on line 52
Offline Rens - 15/09/2005 20:59
Avatar van Rens Gouden medaille

Crew algemeen
Zet error handling bij je query, daarna praten we weer verder^^
Offline vak429 - 15/09/2005 21:01
Avatar van vak429 Nieuw lid blijft het zelfde als ik dat erbij zet

$qry = mysql_query("SELECT * FROM nieuws WHERE MONTH(datum) = MONTH(NOW())ORDER BY id") or die ("query mislukt");
Offline Rens - 15/09/2005 21:03
Avatar van Rens Gouden medaille

Crew algemeen
dan heb ik het over:

  1. $qry = mysql_query("SELECT * FROM nieuws WHERE MONTH(datum) = MONTH(NOW())ORDER BY id") or die (MySQL_Error());


Dan krijg je de error van MySQL er zo uitrollen.
Maar zet eens een spatie tussen NOW()) en ORDER BY...

  1. $qry = mysql_query("SELECT * FROM nieuws WHERE MONTH(datum) = MONTH(NOW()) ORDER BY id") or die (MySQL_Error());
Offline vak429 - 15/09/2005 21:05
Avatar van vak429 Nieuw lid heb em van jou overgenomen:
$qry = mysql_query("SELECT * FROM nieuws WHERE MONTH(datum) = MONTH(NOW()) ORDER BY id") or die (MySQL_Error());

zo dus maar nog steeds dezelfde error
Offline Rens - 15/09/2005 21:07
Avatar van Rens Gouden medaille

Crew algemeen
Ah, nu zie ik het.
Je voert je query uit onder $qry en je wil hem aanroepn met $mysql1 oid.

  1. $qry = mysql_query("SELECT * FROM nieuws WHERE MONTH(datum) = MONTH(NOW())ORDER BY id");
  2.  
  3. // zolang er resultaat... //
  4. while ($regel = mysql_fetch_array($mysql1)){


Verander die $mysql1 eens naar $qry.
Offline vak429 - 15/09/2005 21:10 (laatste wijziging 15/09/2005 21:17)
Avatar van vak429 Nieuw lid hhaha idd shit ik ben weer es lekker wakker 

ok nouja nu heb ik nog een puzzel voor mezelf

ff hardop denken

wanneer een nieuwe maand aanbreekt moet er in news_archive.htm een link bijkomen met al het nieuws uit de afgelopen maand.
probleempunten: waar en hoe check ik of die maand er is, en dan vervolgens een php fwriten met erin select where maand is de vorige hmzzz

en de datum staat in mijn pagina nu dus als 2005-09-15 hoe bouw ik dit om naar 15 september 2005

de maanden benoemen heb ik al in een tut zien staan maar hoe hussel ik de volgorde ed
Offline Rens - 15/09/2005 21:22
Avatar van Rens Gouden medaille

Crew algemeen
met MySQL_DATE_FORMAT.
kijk ff op http://dev.mysql.com voor meer informatie.
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.312s