22. august 2005 - 18:38Der er
17 kommentarer og 1 løsning
Forum-indlæg på listeform
Så drenge og piger, nu kommer der en opgave.
Jeg har et forum der fungerer skidegodt. Her er koden for at vise en tråd:
<?php include('config.php'); $id = $_GET['id']; $query = mysql_query("SELECT *,DATE_FORMAT(date,'%e/%c-%y %T') AS date FROM sladder WHERE id=$id AND parent=0"); $row = mysql_fetch_assoc($query);
$query = mysql_query("SELECT *,DATE_FORMAT(date,'%e/%c-%y %T') AS date FROM sladder WHERE parent=$id ORDER BY id ASC"); while ($row = mysql_fetch_assoc($query)) { echo empty($row['email']) ? $row['name'] : "<a href='mailto:$row[email]'>$row[name]</a>"; echo " ($row[date])<br><br>"; echo nl2br($row['message']).'<hr>'; } ?>
Men nu vil jeg give folk mulighed for at få alle indlæggene på en liste, sorteret efter dato. Altså ligesom en gæstebog. Er der nogen der kan ændre koden således?
Warning: mysql_fetch_assoc(): supplied argument is not a valid MySQL result resource in /customers/123y.dk/123y.dk/httpd.www/falkobilleder/forum/liste.php on line 22
Warning: mysql_fetch_assoc(): supplied argument is not a valid MySQL result resource in /customers/123y.dk/123y.dk/httpd.www/falkobilleder/forum/liste.php on line 29
Helst ikke for meget ala! . Jeg skal have det skåret ud i pap.
Synes godt om
Slettet bruger
22. august 2005 - 19:04#5
ah :)
prøv at rette linjen:
$query = mysql_query("SELECT *,DATE_FORMAT(date,'%e/%c-%y %T') AS date FROM sladder ORDER BY parent ASC");
til:
$query = mysql_query("SELECT *,DATE_FORMAT(date,'%e/%c-%y %T') AS date FROM sladder WHERE id != '' ORDER BY parent ASC") or die(mysql_error());
Synes godt om
Slettet bruger
22. august 2005 - 19:06#6
nej det skulle da ikke være nødvendigt. Men forsøg lige alligevel :) Nu får vi i hvert fald en bedre fejlbeskrivelse.
Den behøver ikke adskille trådene specielt.. alle indlæg må gerne komme ud i én køre, men hvis det er muligt at lave et lille indhak når der starter en ny tråd ville det da være fint. - Det vigtigste er at alt hvad der overhovedet er skrevet i forumet kommer på én side i rigtig rækkefølge
$q = mysql_query("SELECT *,DATE_FORMAT(date,'%e/%c-%y %T') AS date FROM sladder WHERE parent='$row[id]' ORDER BY id ASC"); while ($res = mysql_fetch_array($q)) { echo empty($res['email']) ? $res['name'] : "<a href='mailto:$res[email]'>$res[name]</a>"; echo " ($res[date])<br><br>"; echo nl2br($res['message']).'<hr>'; }
Nu begynder det virkelig at ligne noget.. Men den har stadig problemer med at sortere, og så bliver den ved med at rykke indlæggene og trådene længere og længere ind. Den skal bare rykke indlæggene ind og så rykke ud når der starter en ny tråd.. men det sidste er ikke så vigtigt.
Du kan se på datoerne at den ikke sorterer rigtigt.
Synes godt om
Slettet bruger
23. august 2005 - 17:59#14
Ah ja, forstod heller ikke lige hvorfor den skulle rykke alle tråde længere og længere ind. Prøv med nedenstående, det skulle gerne liste en tråd med des indlæg indrykket, samt være sorteret efter dato (nyeste tråde øverst).
<?php include('config.php');
$query = mysql_query("SELECT *,DATE_FORMAT(date,'%e/%c-%y %T') AS date FROM sladder WHERE parent=0 ORDER BY date DESC"); while($row = mysql_fetch_array($query)) {
Skide godt. Tak for hjælpen. Det lykkedes langt om længe.
Synes godt om
Slettet bruger
23. august 2005 - 19:23#18
så lidt :) og tak for points!
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.