Mijn CMS met nieuwsberichten is bijna klaar. Ik heb, lieve forumleden, nog 2vragen.
1. Hoe kan ik zorgen dat alleen de laatste vijf toegevoegde berichten op de website index.php worden getoond? Ik heb wat lopen klooien met de DESC in combinatie met LIMI maar zonder succes....
2. Alle overige nieuwsberichten (minus de 5 recent geplaatste, die staan immers al op index.php) moeten worden weergegeven in een archief.
Iemand met een mooi voorbeeld script waar ik de antwoorden voor mijn vragen uit kan halen? Dat zou tof zijn!
Laat jij maar horen of het nu werkt of niet. Ik zie in bovenstaand stukje code nog meer waarvan ik denk, werkt dat? Maar dat kan ik niet beoordelen omdat het slechts een stukje code is en niet de complete.
Ik ga met de billen bloot. Hierbij bied ik jullie inkijk in mijn script. Er staat ongetwijfeld nog wat rotzooi in, maar het werkt wel. Met uitzondering van LIMIT optie, die ik met geen mogelijkheid in de doortoe bestemde regel krijg ingepast.
doel van scirpt: Ik laat jullie het script zien: index.php. Dit script haalt berichten uit de mysql database. Rangschikken lukt nog niet, evenals de 5 meest recente berichten laten zien.
Nog wat info vooraf: Ik heb me verdiept in PHP dmv diverse tutorials. o.a. op deze site. algemene opmerkingen op mijn php scripting te verbeteren zijn van harte welkom. Opmerkingen om de LIMIT function te kunnen gebruiken uiteraard ook!
$sql = "SELECT id,titel,datum,kop,substring(datum, 7, 4) AS year FROM nieuws WHERE SUBSTRING(datum, 4, 2) = $counter ORDER BY id DESC,year DESC";
$res = mysql_query($sql);
if (mysql_num_rows($res) >= 1)
{
$year = "$row[year]";
$berichten = mysql_num_rows($res);
$month = maand($counter);
if ($berichten == 1)
echo "";
else
echo "";
while ($row = mysql_fetch_array($res))
{
$sql2 = "select id from reacties where tid = $row[id]";
$res2 = mysql_query($sql2);
$count = mysql_num_rows($res2);
//overzicht van de nieuwspagina
//linkjes E-Mail dit bericht, Print en Naar boven
echo " <img src=\"../images/icon_mail.jpg\"> <a class=\"olink\" href=\"\"onClick=\"javascript:taf()\">e-mail dit bericht</a> | <img src=\"../images/icon_print.jpg\"> <a class=\"olink\" href=\"blaaat\">print</a> | <img src=\"../images/icon_top.jpg\"> <a href=\"javascript:scroll(0,0)\" class=\"olink\">naar boven</a><br><br>";
echo " <span class=\"main\">Reacties bij dit bericht:</span><br><br>";
$sql = "SELECT id,naam,titel,msg,datum FROM reacties WHERE tid = '$HTTP_GET_VARS[id]' ORDER BY id DESC";
$res = mysql_query($sql);
Aardig stukje script. Er kan nog wel wat aan verbeterd worden. Om te beginnen zou ik de echo met enkele quotes gaan doen. Bij enkele quotes echood ie letterlijk wat er tussen staat naar het scherm. Voordeel is dat je de dubbele quotes niet meer hoeft te escapen en dus je script overzichtelijker wordt. Verder $vars altijd buiten de quotes houden is beter en duidelijker. En $HTTP_GET_VARS is antiek dat is gewoon $_GET
Dus i.p.v.
echo "<form method=\"post\" action=\"$PHP_SELF?id=$HTTP_GET_VARS[id]\">";
wordt het zoiets:
echo '<form method="post" action="' . $_SERVER['PHP_SELF'] . '?id=' . $_GET['id'] . '">';
oke, wederom hartelijk dank voor commentaar. ook fijn om te horen dat het wel een aardig stukje script is. Het begin van php geeft toch een beetje een drijfzand gevoel... :)
Ik ga de dubbele quotes aanpassen. Ik kan dan dus ook die \ uit de betreffende regels verwijderen? De \ doe ik om te zorgen dat php deze tags als html goed interpreteerd.
Heb je misschien ook nog een idee hoe ik de LIMIT functie kan verwerken? Ik kan dan mijn index.php + archief.php afronden...
Ik probeer LIMIT met LIMIT 6,*; maar bij mij geeft hij de volgende fout :
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '*' at line 1
Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /home/users/conceftp/conceptm.nl/freevoice2/pages/inc_nieuws_archief.php on line 30