login  Naam:   Wachtwoord: 
Registreer je!
 Forum

Probleem met de volgorde van het ophalen van gegevens

Offline daboytommy87 - 27/03/2006 13:04
Avatar van daboytommy87Nieuw lid Hallo allemaal,

Ik zal beginnen met de code:

  1. <?php
  2. include("db_connectie2.php");
  3. ?>
  4. <?php
  5. $queryCount = "SELECT COUNT(ID) FROM berichten";
  6. $resultCount = mysql_query($queryCount);
  7. $aantal = mysql_result($resultCount, 0, 0);
  8. echo($aantal);
  9. ?>
  10.  
  11.  
  12. <html>
  13. <head>
  14. <title>Rolling tekst uit database</title>
  15. </head>
  16.  
  17. <body>
  18. <marquee behavior=scroll loop=-1 scrollamount=2 scrolldelay=4 direction=left>
  19. <?php
  20.  
  21. if ($aantal==0){
  22. echo("Er zijn nog geen berichten geplaatst.");
  23. }
  24. else{
  25. if ($aantal - 5 <= 0){
  26. $query = "SELECT * FROM berichten ORDER BY ID DESC;";
  27. $result = mysql_query($query);
  28. echo($query);
  29. while ($rij = mysql_fetch_array($result)){
  30. echo($rij["ID"].". ".$rij["Naam"]." schreef: " .$rij["Bericht"]. "; ");
  31. }
  32. }
  33. elseif ($aantal - 5 > 0){
  34. $aantal = $aantal - 5;
  35. $query = "SELECT * FROM berichten ORDER BY ID DESC LIMIT $aantal, 5;";
  36. $result = mysql_query($query);
  37. echo($query);
  38. while ($rij = mysql_fetch_array($result)){
  39. echo($rij["ID"].". ".$rij["Naam"]." schreef: " .$rij["Bericht"]. "; ");
  40. }
  41. }
  42. }
  43. ?>
  44. </marquee>
  45. </body>
  46. </html>


Mijn bedoeling was, om de laatste 5 berichten uit een database te halen(beginnend met de laatste, dan de eennalaatste enz.), en deze rollend over het scherm te laten zien.
Dit gaat allemaal goed totdat ik meer dan 5 berichten in de database heb staan. Wanneer ik 5 of minder berichten in de database heb staan, kan ik deze sorteren met de volgende query: SELECT * FROM berichten ORDER BY ID DESC;
Zodra er meer dan 5 berichten in staan en ik gebruik de volgende query: SELECT * FROM berichten ORDER BY ID DESC LIMIT $aantal, 5; pakt hij de eerste 5 berichten. Dit komt door het stukje ORDER BY ID DESC, want als ik ASC wegzet, doet deze het wel goed, alleen begint hij niet met het laatste bericht maar met het 5nalaatste en eindigt hij met de laatste, maar ik wil het juist net andersom hebben.

Mijn vraag: hoe kan ik er voor zorgen dat hij met de laatste query toch de laatste 5 berichten in de juiste volgorde laat zien?

De uitvoer is te zien op http://www.tvldesign.com/films/probeer.php

Alvast bedankt.

4 antwoorden

Gesponsorde links
Offline marten - 27/03/2006 13:09
Avatar van marten Beheerder je moet hier met LIMIT werken ;)
Offline daboytommy87 - 27/03/2006 13:12 (laatste wijziging 27/03/2006 13:16)
Avatar van daboytommy87 Nieuw lid Kijk eens goed naar mijn query:
SELECT * FROM berichten ORDER BY ID DESC LIMIT $aantal, 5;
Volgens mij staat hier limit in.
Alleen sorteerd hij ze niet goed want op deze manier pakt hij de eerste 5 berichten.
En met deze query:
SELECT * FROM berichten ORDER BY ID ASC LIMIT $aantal, 5;
pakt hij wel de laatste 5 berichten, maar eindigt hij met de laatste, en ik wil juist met de laatste beginnen.
Offline Thomas - 27/03/2006 13:53 (laatste wijziging 27/03/2006 13:53)
Avatar van Thomas Moderator
  1. SELECT *
  2. FROM berichten
  3. ORDER BY ID DESC
  4. LIMIT 0, 5


ORDER BY ID DESC
Sorteer aflopend op de ID-kolom

LIMIT 0, 5
Limiteer de resultaatset. Start hierbij bij de eerste resultaatrij (rijnummer 0) en pak vanaf deze rij de eerste 5 items.
Offline daboytommy87 - 27/03/2006 14:46
Avatar van daboytommy87 Nieuw lid Yesss, dat werkt!^^
Hartstikke bedankt.
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.179s