Hoi allemaal!
Ik ben aan het proberen een archiefscript te schrijven dat moet werken met mijn nieuwsdatabase. Daar heb ik de datum in DATE formaat opgeslagen.
Het is de bedoeling om een archief te maken waar ik alle artikels, gesorteerd, kan weergeven.
Tot nu toe nog maar één site gezien die een archief naar mijn hart hebben ;)
als je zo'n uitgebreid iets wil wat ook alleen maar van een jaar en maand weergeeft ben je wel even bezig....
tips:
-Zet de datum in een array, zo kan je het jaar en maand apart opsplitsen....
verder: veel suc7!
heb even geen tijd om je met een flink stuk script te helpe....
Joel - 30/01/2006 16:16 (laatste wijziging 30/01/2006 16:17)
SELECT DISTINCT(DATE_FORMAT(datum, '%Y-%m-%d')) AS datum FROM artikels
SELECT DISTINCT(DATE_FORMAT(datum,'%Y-%m-%d'))AS datum FROM artikels
Maar het uitlezen daarna lukt niet meer (daarmee bedoel ik de artikels die bij de datum horen).
De data die hij uitleest staat op één pagina, en dat is niet echt overzichtelijk. Bij jou is dat met pijltjes zodat je tussen verschillende pagina's kan klikken (is véél overzichtelijker)...
<?
include "database.php";
$query = "SELECT DISTINCT WEEKDAY(datum) AS weekdag, DAYOFMONTH(datum) AS dag, MONTH(datum) AS maand, YEAR(datum) AS jaar, id FROM nieuws ORDER BY datum DESC";
$sql = mysql_query($query) or die (mysql_error());
while ($obj = mysql_fetch_object($sql))
{
echo "$obj->dag-$obj->maand-$obj->jaar<br>";
}
?>
<?
include"database.php";
$query="SELECT DISTINCT WEEKDAY(datum) AS weekdag, DAYOFMONTH(datum) AS dag, MONTH(datum) AS maand, YEAR(datum) AS jaar, id FROM nieuws ORDER BY datum DESC";
<?
include "database.php";
$query = "SELECT DISTINCT(DATE_FORMAT(datum, '%d-%m-%Y')) AS datum FROM nieuws ORDER BY DATE_FORMAT(datum, '%Y-%m-%d') DESC";
$sql = mysql_query($query) or die (mysql_error());
while ($obj = mysql_fetch_object($sql))
{
echo "$obj->datum<br>";
}
?>
<?
include"database.php";
$query="SELECT DISTINCT(DATE_FORMAT(datum, '%d-%m-%Y')) AS datum FROM nieuws ORDER BY DATE_FORMAT(datum, '%Y-%m-%d') DESC";
<?php
$whileloopquery = mysql_query("SELECT * FROM nieuws WHERE DATE_FORMAT(datum, '%Y-%m-%d')") OR die(mysql_error()); // selecteer de datum....
while($arr = mysql_fetch_assoc($whileloopquery)) // maak van de query een array
{
echo $arr['datum']."<br />"; // echo de datums
}
mysql_free_result($whileloopquery); // en de resultaten clearen
?>
<?php
$whileloopquery=mysql_query("SELECT * FROM nieuws WHERE DATE_FORMAT(datum, '%Y-%m-%d')") OR die(mysql_error());// selecteer de datum....
while($arr=mysql_fetch_assoc($whileloopquery))// maak van de query een array
<?
include "database.php";
include "limit.php";
$query = "SELECT DISTINCT(DATE_FORMAT(datum, '%d-%m-%Y')) AS datum, id, titel_nl FROM nieuws ORDER BY DATE_FORMAT(datum, '%Y-%m-%d') DESC LIMIT $offset, $aantal_items_per_pagina";
$result = mysql_query($query);
?>
<?
while ($row = mysql_fetch_array($result)) {
?>
<? print("$row[datum]") ?>
<br>
<?php
$whileloopquery = mysql_query("SELECT * FROM nieuws WHERE DATE_FORMAT(datum, '%d-%m-%Y')") OR die(mysql_error());
while($arr = mysql_fetch_assoc($whileloopquery))
{
echo $arr['titel_nl']."<br />";
}
mysql_free_result($whileloopquery);
?>
<?
}
?>
<p> </p>
<? navigatietonen(); ?>
<?
include"database.php";
include"limit.php";
$query="SELECT DISTINCT(DATE_FORMAT(datum, '%d-%m-%Y')) AS datum, id, titel_nl FROM nieuws ORDER BY DATE_FORMAT(datum, '%Y-%m-%d') DESC LIMIT $offset, $aantal_items_per_pagina";
waarom in je 2e query dat WHERE gedoe.... dat slaat namelijk niet eg ergens op.... je kan beter de datum in een query zetten en die while steeds herhalen voor hoeveel result je krijgt voor die datum... dus met een for iets...
<?
include "database.php";
include "limit.php";
$query = "SELECT DISTINCT(DATE_FORMAT(datum, '%d-%m-%Y')) AS datum, id, titel_nl FROM nieuws ORDER BY DATE_FORMAT(datum, '%Y-%m-%d') DESC LIMIT $offset, $aantal_items_per_pagina";
$result = mysql_query($query);
while ($row = mysql_fetch_array($result)) {
print("$row[datum]") ?>
<br>
<?php
$whileloopquery = mysql_query("SELECT * FROM nieuws WHERE DATE_FORMAT('".$row['datum']."', '%d-%m-%Y')") OR die(mysql_error());
while($arr = mysql_fetch_assoc($whileloopquery))
{
echo $arr['titel_nl']."<br />";
}
mysql_free_result($whileloopquery);
}
?>
<p> </p>
<? navigatietonen(); ?>
<?
include"database.php";
include"limit.php";
$query="SELECT DISTINCT(DATE_FORMAT(datum, '%d-%m-%Y')) AS datum, id, titel_nl FROM nieuws ORDER BY DATE_FORMAT(datum, '%Y-%m-%d') DESC LIMIT $offset, $aantal_items_per_pagina";
<?
include "database.php";
include "limit.php";
$query = "SELECT DISTINCT(DATE_FORMAT(datum, '%d-%m-%Y')) AS datum FROM nieuws ORDER BY DATE_FORMAT(datum, '%Y-%m-%d') DESC LIMIT $offset, $aantal_items_per_pagina";
$result = mysql_query($query);
while ($row = mysql_fetch_array($result)) {
print("$row[datum]") ?>
<br>
<?php
$whileloopquery = mysql_query("SELECT * FROM nieuws WHERE DATE_FORMAT('".$row['datum']."', '%d-%m-%Y')") OR die(mysql_error());
while($arr = mysql_fetch_assoc($whileloopquery))
{
echo $arr['titel_nl']."<br />";
}
mysql_free_result($whileloopquery);
}
?>
<p> </p>
<? navigatietonen(); ?>
<?
include"database.php";
include"limit.php";
$query="SELECT DISTINCT(DATE_FORMAT(datum, '%d-%m-%Y')) AS datum FROM nieuws ORDER BY DATE_FORMAT(datum, '%Y-%m-%d') DESC LIMIT $offset, $aantal_items_per_pagina";
Maarrrrr, het probleem is (en blijft) dat hij geen titels wil uitlezen die bij de data horen :s
Ik lees nu perfect de data uit (zelfs al zijn er meerdere artikels gepost op één datum, hij geeft maar één datum weer), maar hij geeft de titels niet weer.
Zou moeten werken zoals het nieuws op Sitemasters, maar ik zit er blijkbaar nog ver af
$query="SELECT DISTINCT(DATE_FORMAT(datum, '%d-%m-%Y')) AS datum FROM nieuws ORDER BY DATE_FORMAT(datum, '%Y-%m-%d') DESC LIMIT $offset, $aantal_items_per_pagina";
mmm, handig!
nu wordt er goed uitgelezen én goed weergegeven thanks Timo!
Volgende uitdaging... zal denk ik niet zo eenvoudig zijn...
Op de eerste pagina een menu voor het jaartal, als dat aangeklikt is een menu voor de maanden... om op deze manier het archief te kunnen raadplegen volgens jaar en volgens maand...
EDIT...
Ahummm...
Het uitlezen volgens maand / jaar is blijkbaar niet zo simpel...