login  Naam:   Wachtwoord: 
Registreer je!
 Forum

Ordenen volgens reactie

Offline Frederic - 13/04/2005 13:57
Avatar van FredericPHP ver gevorderde Ik heb op mijn forum volgend systeem om alle gegevens op te halen, maar nu is mijn vraag: hoe kan ik het instellen zodat de weergave gebeurt zoals hier op SM: gerangschikt volgens laatste reactie, en indien er geen reacties zijn volgens datum van topic?
  1. $sql = mysql_query("SELECT `*` FROM `forum` ORDER BY `id` DESC") or die(mysql_error());
  2. $i=0;
  3. while ($rij = mysql_fetch_assoc($sql)){
  4. $kleur = ($kleur == "#E9E9E9" ? "#F0F0F0": "#E9E9E9");
  5. $topicid = ($rij["id"]);
  6. $datum = htmlspecialchars($rij["datum"]);
  7. $titel = htmlspecialchars($rij["titel"]);
  8. $naam = htmlspecialchars($rij["naam"]);
  9. activeer_ubb($titel);
  10. $hits = $rij["hits"];
  11. $reacties_sql = mysql_query("SELECT id, naam, datum, tijd FROM forum_reactie WHERE topicid='".$topicid."' ORDER BY id DESC");
  12. $reacties = mysql_num_rows($reacties_sql);
  13. $rij_reacties = mysql_fetch_assoc($reacties_sql);
  14. $reacties_naam = $rij_reacties["naam"];
  15. $reacties_datum = $rij_reacties["datum"];
  16. $reacties_tijd = $rij_reacties["tijd"];
  17. //Datum onderzoeken
  18. $vandaag = date('d-m');
  19. $post_datum = substr($reacties_datum, 0, 5);
  20. if($post_datum == $vandaag)
  21. {
  22. $reacties_datum = substr($reacties_tijd,0,5);
  23. $reacties_datum = "<i>".str_replace(":", "u", $reacties_datum)."</i>";
  24. }
  25. else
  26. {
  27. $reacties_datum = substr($reacties_datum, 0, 5);
  28. }
  29. $laatste_reactie = "[".$reacties_datum."]".ucfirst($reacties_naam);
  30. if ($reacties == 0)
  31. {
  32. $laatste_reactie = "Nog niemand";
  33. }
  34. //Navigatiepagina zoeken
  35. $sql1 = mysql_query("SELECT COUNT(id) FROM forum_reactie WHERE topicid='".$topicid."'") or die("SQL1:". mysql_error());
  36. $totaal_aantal = mysql_result($sql1, 0);
  37. mysql_free_result($sql1);
  38. $aantal_items_per_pagina = 15;
  39. $aantal_paginas = ceil($totaal_aantal / $aantal_items_per_pagina);
  40. $aantal_paginas+=1;
  41. ?>
  42. <tr>
  43. <td valign=top bgcolor="<?php echo $kleur; ?>" class="normaal-tabel"><div align="center"><img alt="Topic" title="Topic" src="afbeeldingen/klein/topic.gif"></div></td>
  44. <td width="76" valign=top bgcolor="<?php echo $kleur; ?>" class="normaal-tabel"><a href="?Pagina=Forum&actie=toon&id=<?php echo $topicid; ?>&navigatiepagina=<?php echo $aantal_paginas - 1 ;?>"><?php echo $datum; ?></a></td>
  45. <td width="156" valign=top bgcolor="<?php echo $kleur; ?>" class="normaal-tabel"><a href="?Pagina=Forum&actie=toon&id=<?php echo $topicid; ?>&navigatiepagina=<?php echo $aantal_paginas - 1 ;?>"><?php echo $titel; ?></a></td>
  46. <td width="107" valign=top bgcolor="<?php echo $kleur; ?>" class="normaal-tabel"><a href="?Pagina=Forum&actie=toon&id=<?php echo $topicid; ?>&navigatiepagina=<?php echo $aantal_paginas - 1 ;?>"><?php echo $naam; ?></a></td>
  47. <td width="54" valign=top bgcolor="<?php echo $kleur; ?>" class="normaal-tabel"><div align="right"><a href="?Pagina=Forum&actie=toon&id=<?php echo $topicid; ?>&navigatiepagina=<?php echo $aantal_paginas - 1 ;?>">
  48. <?php
  49. echo $reacties
  50. ?>
  51. </a></div></td>
  52. <td width="55" valign=top bgcolor="<?php echo $kleur; ?>" class="normaal-tabel"><div align="right">
  53. <a href="?Pagina=Forum&actie=toon&id=<?php echo $topicid; ?>&navigatiepagina=<?php echo $aantal_paginas - 1 ;?>">
  54. <?php
  55. echo $hits
  56. ?>
  57. </a></div></td>
  58. <td width="140" valign=top bgcolor="<?php echo $kleur; ?>" class="normaal-tabel"><div align="right"><a href="?Pagina=Forum&actie=toon&id=<?php echo $topicid; ?>&navigatiepagina=<?php echo $aantal_paginas - 1 ;?>#nieuwste_"><?php echo $laatste_reactie; ?></a></div></td>
  59. </tr>
  60. <?php
  61. $i++;
  62. }

4 antwoorden

Gesponsorde links
Offline Disa - 13/04/2005 15:03
Avatar van Disa PHP interesse alles in een array steken zou een mogelijkheid zijn maar ik dnek dat het ook wel via MySQL gaat.

disa
Offline Frederic - 13/04/2005 15:59
Avatar van Frederic PHP ver gevorderde daar ben ik naar op zoek ja, naar de MySQL methode
Offline Disa - 13/04/2005 16:08
Avatar van Disa PHP interesse Sorteren volgens de comments date en met een join het topic afhalen:

SELECT COUNT(r.id) FROM forum_reactie r
LEFTJOIN forum f ON (f.topicid = r.topicid)
ORDER BY r.datum DESC
LIMIT 0,10

zoiets, ik weet wel niet of het helemaal hetzelfde is als jouw sql structuur.

disa
Offline Frederic - 13/04/2005 16:23 (laatste wijziging 13/04/2005 20:06)
Avatar van Frederic PHP ver gevorderde Dit is mijn structuur:
  1. CREATE TABLE `forum` (
  2. `id` int(10) unsigned NOT NULL auto_increment,
  3. `naam` varchar(100) default NULL,
  4. `email` varchar(150) default NULL,
  5. `homepage` text NOT NULL,
  6. `titel` text,
  7. `inhoud` text,
  8. `datum` varchar(12) default NULL,
  9. `tijd` time default NULL,
  10. `hits` int(5) NOT NULL default '0',
  11. PRIMARY KEY (`id`),
  12. FULLTEXT KEY `titel` (`titel`,`inhoud`)
  13. ) TYPE=MyISAM AUTO_INCREMENT=57 ;

&
  1. CREATE TABLE `forum_reactie` (
  2. `id` int(10) unsigned NOT NULL auto_increment,
  3. `topicid` varchar(100) default NULL,
  4. `naam` varchar(100) default NULL,
  5. `email` varchar(150) default NULL,
  6. `homepage` text,
  7. `bericht` text,
  8. `datum` varchar(12) default NULL,
  9. `tijd` time default NULL,
  10. PRIMARY KEY (`id`),
  11. FULLTEXT KEY `naam` (`naam`,`bericht`)
  12. ) TYPE=MyISAM AUTO_INCREMENT=2457 ;

//Edit:
Aan jouw code kan ik niet echt uit, wat is dat met die r's en die f's?
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2025 Sitemasters.be - Regels - Laadtijd: 0.211s