Ik sla de datum van mijn nieuwsberichten op als date type in mijn database. Zo kan ik met select where month() de huidige maand eruit filteren, maar ik wil de datum omnoemen....

toen raadde iemand aan hem om te slaan als int van 13 lang, alleen kan ik dan niet meer month() gebruiken. Noem ik bovenstaand date type niet om krijg ik een probleem want dat is net unix... dus wordt het erges in 1970

dit zijn de scripts in kwestie:
1
<?php

//Eerst connecten we met de database
mysql_connect ("localhost","***", "***"); //host, username, password
mysql_select_db("vak429_nl_-_news"); //database

$sql = "SELECT * FROM nieuws WHERE MONTH(datum) = MONTH(NOW()) ORDER BY id DESC";
$res = mysql_query($sql);

// bekijk of er rijen als resultaat zijn
if (mysql_num_rows($res) >= 1)
{
// zet de resultaten in een 'array'
$row = mysql_fetch_array($res);

// url maken zodat laatste bericht geopend wordt //
$url="view_month.php?id=$row[id]";
header ("Location: $url");

}
else
{
echo "Er zijn geen resultaten gevonden";
}
?>



2
<?php
//Database connect //
mysql_connect ("localhost","***", "***");
mysql_select_db("vak429_nl_-_news");

// Maak query om titel en bericht behorend bij de juiste id op te halen//
$query = "SELECT * FROM nieuws WHERE id = '$id'";

// Voer query uit //
$resultaat = mysql_query($query) or die ("query mislukt");


// Maak een loop

while( // zolang er resultaten zijn//
$obj = mysql_fetch_object($resultaat)){

// haal het onderwerp uit de array
$onderwerp = $obj->onderwerp;

// haal het bericht uit de array en haal de//
//overbodige slashes eruit en begin een nieuwe//
// lijn als dit in het bericht ook gebeurd//
$bericht = stripslashes($obj->bericht);
$bericht = nl2br($bericht);

// Definieer een maanden-array
$maand_array = array(
"januari", "februari", "maart", "april",
"mei", "juni", "juli", "augustus", "september",
"oktober", "november", "december");
$datum = date("d ", $row[datum]) . $maand_array[date("m", $row[datum]) - 1] . date(" y", $row[datum]);
?>
<table width="540" border="0" align="center" cellpadding="0" cellspacing="0">
<tr>
<td bgcolor="C31E1E">
<div align="left"> <font color="#FFFFFF" size="1" face="Verdana, Arial, Helvetica, sans-serif"><b>
<?php echo"$datum"; ?> - <?php echo"$onderwerp"; ?></b></font>
</div> </td></tr><tr>
<td valign="top" height="43">
<table width="540" border="0" cellspacing="0" cellpadding="3" height="35">
<tr>
<td height="19" valign="top" bgcolor="#CCCCCC">
<div align="left"> <font color="#FF0000" size="1" face="Verdana, Arial, Helvetica, sans-serif">
<?php echo"$bericht"; ?>
</font></div> </td></tr><tr>
<td valign="top" height="8">
<div align="right"></div></td></tr></table></td></tr>
</table>
<br>

<table width="540" border="0" align="center" cellpadding="0" cellspacing="0">
<?

// qry uitvoeren om alles van de huidige maand uit de database te toveren //
$qry = mysql_query("SELECT * FROM nieuws WHERE MONTH(datum) = MONTH(NOW()) ORDER BY id DESC") or die (MySQL_Error());

// zolang er resultaat... //
while ($regel = mysql_fetch_array($qry)){

// $ uit array halen //
$onderwerp = $regel["onderwerp"];
$datum1 = date("d ", $regel[datum]) . $maand_array[date("m", $regel[datum]) - 1] . date(" y", $regel[datum]);
$id = $regel["id"];
?>
<tr>
<td width="166"><div align="left"><font size="2" face="Verdana, Arial, Helvetica, sans-serif" color="#FF0000"><? PRINT"$datum1";?></font> </div></td>
<td width="374"><div align="left"><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><? PRINT"<a href='view_month.php?id=$id'>$onderwerp</a>";?></font></div></td>
</tr>
<? }
?>
</table> <? } ?>


en de weergave wordt hierdoor dus:
01 januari 70
Omnoemen.......staat niet in van Dale. Wat bedoel je?
soory

ik wil het weergeven als 23 september 2005
$datum = date("d ", $row[datum]) . $maand_array[date("m", $row[datum]) - 1] . date(" y", $row[datum]);

Hier klopt niets van. Wat is hier de bedoeling?

Edit: In de pagina waar dit staat kent ie helemaal geen $row, wel in de eerste pagina.
Zet daar eens echo $row[datum]; voor. En kijk wat daar inzit.

Edit: Het is trouwens $row['datum']; (quotes)
ok, wat moet ik nou aanpassen, en het heeft te maken met dat het geen unix timestamp is hoorde ik van iemand?

dus leest hij uit mijn database uit 20050923 el deelt dat door die secondes wat 1970 oplevert
<?php
$datum = substr($row['datum'],6,2) . $maand_array[strval(substr($row['datum'],4,2)) - 1] . substr($row['datum'],0,4);
?>
as ik dat erin zet komt er helemaal geen datum, check de link en dan de rode titelbalk bij t bericht
Okee, dus even samenvattend:

Je hebt een DATE type in je database.
Je wilt de huidige maand eruit halen.
Die wil je weergeven in een Nederlandse datumnotatie.

Klopt dat?
$row['datum'] is LEEG.....

Reageren