Toon posts:

[php/mysql] op een speciale manier van sorteren

Pagina: 1
Acties:
  • 50 views sinds 30-01-2008

Verwijderd

Topicstarter
Ik was bezig met een klein forumpje beetje proberen en zo maar ik kwam op een leuk ideetje alleen deze het uit voeren van dit ideetje zit ik mee vast.

ik heb een database:
#--------------#
forum
|-forums
|-forumtopics
|-forummessage
#--------------#


Ik heb nu in de database bij forumtopics een code met
id, titel en forumid.

dus wanneer je naar forum met een ID van 1 gaat laat dan showt die alle forumtopics die een FORUMID van 1 heeft.

daaronder heb ik forummessage.
die gaat bijna het zelfde forumtopics met een ID van 1 laat die alle forummessage zien waarin IDTOPICS 1 heeft staan.

maar nu wou ik dat die bij forumtopics gaat sorteren op waarin het laaste gepost is.

In forumsmessage staat ook een database met de datum en een timestamp.

Ik krijg het niet voor elkaar ik heb nu zoveel geprobeert maar elke keer deed die iets anders ik heb al wat rond gevraagt en een hele boel andere forums geopent maar echt tot een goed resultaat ben ik niet gekomen dus jullie zijn me laaste hoop.

eigelijk om het simpel te houden.
[mode=duidelijke taal]Topic waarin het laaste gepost is boven aan zetten[/mode].

Maar het lukt mij niet :(.

  • Spooksel
  • Registratie: Oktober 2000
  • Laatst online: 22:31

Spooksel

Spooksel!

SELECT TOP 1 Date, Time
FROM forummessage
WHERE forumid = 'eennummer'

zoiets?

Bevalt mijn schrijfsel je niet? www.korrelatie.nl


Verwijderd

Topicstarter
oke maar hoe moet die nu de data van forumtopic uitvoeren??

Oke ik zit nu een beetje te wachten is er niemand die dit dan weet???

Verwijderd

Topicstarter
ik zit hier nu een tijdje te wachten maar niemand?

Verwijderd

SELECT forums.id FROM forums, forumtopics, forummessage WHERE forums.id = forumtopics.forumid AND forummessage.forumtopicid = forumtopics.id AND forummessage.id IN (SELECT id FROM forummesage ORDER BY date DESC LIMIT 1)

of kan het zo niet in mysql?

  • eborn
  • Registratie: April 2000
  • Laatst online: 08-09 12:50
Helaas, geen sub-selects in MySQL (op dit moment)

  • drm
  • Registratie: Februari 2001
  • Laatst online: 09-06-2025

drm

f0pc0dert

Esmer>

Ik begrijp eerlijk gezegd je vraag niet echt...

bedoel je ongeveer zoiets:
code:
1
2
3
4
5
6
7
8
9
- forum
  - topic
    - post
    - post
    - post
  - topic
    - post
-forum
  - topic

dus een boomstructuurtje, of begrijp ik je dan verkeerd?

Music is the pleasure the human mind experiences from counting without being aware that it is counting
~ Gottfried Leibniz


Verwijderd

Topicstarter
Op dinsdag 26 maart 2002 12:58 schreef drm het volgende:
Esmer>

Ik begrijp eerlijk gezegd je vraag niet echt...

bedoel je ongeveer zoiets:
code:
1
2
3
4
5
6
7
8
9
- forum
  - topic
    - post
    - post
    - post
  - topic
    - post
-forum
  - topic

dus een boomstructuurtje, of begrijp ik je dan verkeerd?
Nee.

Het zelfde als hier topic boven aan zetten waar het laaste gepost is.

  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 09-09 20:58

Janoz

Moderator Devschuur®

!litemod

Dan is het toch gewoon een join tussen topic en post waarbij je MAX postdate neemt en group by topic, en vervolgens order by max postdate??

Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'


  • drm
  • Registratie: Februari 2001
  • Laatst online: 09-06-2025

drm

f0pc0dert

Ah ok.

zoiets denk ik:
code:
1
2
3
4
5
6
7
8
9
10
11
SELECT
   topics.id,
   MAX(posts.id) as t
   # overige meuk
FROM
   posts
    LEFT JOIN topics ON (topics.id=posts.topicid)
GROUP BY
   topics.id
ORDER BY
   t DESC;

herschrijf uiteraard ff naar je eigen db-ontwerp.

hth :)

Music is the pleasure the human mind experiences from counting without being aware that it is counting
~ Gottfried Leibniz


  • drm
  • Registratie: Februari 2001
  • Laatst online: 09-06-2025

drm

f0pc0dert

Janoz:
Dan is het toch gewoon een join tussen topic en post waarbij je MAX postdate neemt en group by topic, en vervolgens order by max postdate??
great minds think alike, but they surely don't talk the same way :D

Music is the pleasure the human mind experiences from counting without being aware that it is counting
~ Gottfried Leibniz


Verwijderd

Topicstarter
Op dinsdag 26 maart 2002 15:33 schreef drm het volgende:
Ah ok.

zoiets denk ik:
code:
1
2
3
4
5
6
7
8
9
10
11
SELECT
   topics.id,
   MAX(posts.id) as t
   # overige meuk
FROM
   posts
    LEFT JOIN topics ON (topics.id=posts.topicid)
GROUP BY
   topics.id
ORDER BY
   t DESC;

herschrijf uiteraard ff naar je eigen db-ontwerp.

hth :)
Ik ga hem even zo proberen ik vertel wel effe of die het doet of niet.

Verwijderd

Topicstarter
Het werkt niet echt maar meschiens kan iemand hem voor mij even in elkaar zetten meschiens heb ik het wel verkeerd in elkaar gezet.

Mijn informatie staat boven aan de pagina.

  • SWINX
  • Registratie: Juni 2001
  • Laatst online: 02-06 23:18
Op donderdag 28 maart 2002 20:15 schreef Esmer het volgende:
Het werkt niet echt maar meschiens kan iemand hem voor mij even in elkaar zetten meschiens heb ik het wel verkeerd in elkaar gezet.

Mijn informatie staat boven aan de pagina.
dit begint op script request te lijken??

Mannen komen van Mars Tweakers, vrouwen van Venus Bokt


  • Grum
  • Registratie: Juni 2001
  • Niet online
lijken is ietwat zwak uitgedrukt

  • SWINX
  • Registratie: Juni 2001
  • Laatst online: 02-06 23:18
Grum: ja best wel he :+

maar toch:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
SELECT
 f.id,
 t.forumid,
 t.id,
 t.timestamp,
 m.idtopics
FROM
 forums as f,
 forumtopics as t,
 forummessage as m
WHERE
 f.id = t.forumid
AND
 t.id = m.idtopics
ORDER BY   
 t.timestamp DESC

zoiets dan maar?
Niet getest oid

het timestamp veld moet evt nog aangepast worden

Mannen komen van Mars Tweakers, vrouwen van Venus Bokt


Verwijderd

Topicstarter
sorry maar ik zit er wel effe me dit is het enigste waar ik nog problemen mee heb dus als ik een werkde voorbeeld heb kan ik daar mee ga spelen en het me zelf aanleren.

zie http://php.internet-media.nl.nu/forum/forumdisplaytest.php?forum=2

ben er nog meebezig.

maar balen hij zet nog steeds de laagste id boven aan :(.

lijkt of die niet reageerd op de DESC want ik heb het zonder meerdere functie geprobeert.

zie http://php.internet-media.nl.nu/forum/forumdisplay.php?forum=2

balen.
code:
1
2
3
4
5
6
7
8
9
10
11
12
$result = mysql_query("SELECT
 forums.id,
 forumtopic.forumid,
 forumtopic.id,
 forumtopic.timestamp,
 forummessage.topicid
WHERE
 forums.id = forumtopic.forumid
AND
 forumtopic.id = forummessage.topicid
ORDER BY   
 forummessage.timestamp DESC", $connect);

heb even hem aangepast.

ben alweer een stapje verder :)

nu krijg ik foutmeldingen.

  • drm
  • Registratie: Februari 2001
  • Laatst online: 09-06-2025

drm

f0pc0dert

:Z
Wat voor foutmeldingen?

Music is the pleasure the human mind experiences from counting without being aware that it is counting
~ Gottfried Leibniz


Verwijderd

Topicstarter
Warning: Supplied argument is not a valid MySQL result resource in d:\www\html\internetmedia\php\forum\forumdisplaytest.php on line 58

Warning: Supplied argument is not a valid MySQL result resource in d:\www\html\internetmedia\php\forum\forumdisplaytest.php on line 59

ik zal wel wat verkeerde gegevens hebben in gevult.

hier zegt die dat dit fout is.

$tel = mysql_numrows($result);
while ($row = mysql_fetch_row($result)){

Denk dat die het nu niet meer snapt.

  • drm
  • Registratie: Februari 2001
  • Laatst online: 09-06-2025

drm

f0pc0dert

Deze waarschuwing wijst erop dat je query niet klopt.

zie:
mysql_error
en evt.
mysql_errno

Music is the pleasure the human mind experiences from counting without being aware that it is counting
~ Gottfried Leibniz


Verwijderd

Topicstarter
jah dat snap ik.

maar ik kan doe fout echter niet vinden.
PHP:
1
<?include("./header.php");include("./cp/db.php");include("./cp/layout.php");    echo"<table width=\"100%\" border=\"0\" cellspacing=\"0\" cellpadding=\"0\">  <tr>    <td>[img]\"images/small_logo.gif\"[/img]<b>     <a href=\"index.php\">$forumtitle</a> > ";    $result = mysql_query("SELECT * FROM forums WHERE id = '$forum' ORDER BY id DESC", $connect);    while ($row = mysql_fetch_row($result)){    echo"    <a href=\"forumdisplay.php?forum=$forum\">$row[1]</a>     "; }    echo"    </b></td>    <td>     <div align=\"right\">      <a href=\"post.php?forumid=$topicid\">[img]\"images/post.gif\"[/img]</a>     </div>    </td>  </tr></table><table cellspacing=1 cellpadding=4 width=\"100%\" bgcolor=#000000 border=0>";$result = mysql_query("SELECT * FROM forumtopic WHERE forumid = '$forum' ORDER BY id", $connect);    $tel = mysql_numrows($result);    if ($tel<=0){echo"<tr id=cat bgcolor=\"#FFFFFF\">     <td colspan=6>Er zijn hier nog geen post geplaatst.</td><tr></div></table>     ";}else{ echo"  <tbody>   <tr bgcolor=#FFFFFF>     <td noWrap align=middle colspan=3>Topic</td>    <td noWrap align=middle><center>Auteur</center></td>    <td noWrap align=middle><center>Replies</center></td>    <td noWrap align=middle><center>Gelezen</center></td>    <td noWrap align=middle><center>Laatste Post</center></td>  </tr>";    $result = mysql_query("SELECT forums.id, forumtopic.forumid, forumtopic.id, forumtopic.timestamp, forummessage.topicidWHERE forums.id = '$forum'AND forumtopic.id = forummessage.topicidORDER BY    forummessage.timestamp DESC", $connect);      $tel = mysql_numrows($result);    while ($row = mysql_fetch_row($result)){    echo"  <tr bgcolor=\"#FFFFFF\">     <td align=middle><center>[img]\"images/icons/min_folder.gif\"></center></td>[/img]<center>[img]\"images/icons/min_folder.gif\"></center></td>[/img]<a href=\"showthread.php?thread=$row[0]&amp;forum=$forum\">$row[7]</a></td>    <td noWrap align=middle><center>$row[1]</center></td>    <td noWrap align=middle>";    $result2 = mysql_query("SELECT * FROM forummessage WHERE topicid = '$row[0]'", $connect);    $topics = mysql_numrows($result2);    echo"$topics</td>    <td align=middle>0</td>    <td noWrap>$row[3]</td>  </tr>";  }   echo"  </tbody> </table>";}echo"<br><a href=\"post.php?id=$forumid\">[img]\"images/post.gif\"[/img]</a>";include("./footer.php");?>

zie iemand hier een foutje in??

  • drm
  • Registratie: Februari 2001
  • Laatst online: 09-06-2025

drm

f0pc0dert

Esmer:
jah dat snap ik.
Als je dat snapt laat je dus niet vervolgens 6 kilometer code zien, maar laat je even zien wat voor foutmelding MySQL geeft |:(

Music is the pleasure the human mind experiences from counting without being aware that it is counting
~ Gottfried Leibniz


  • D2k
  • Registratie: Januari 2001
  • Laatst online: 31-08 10:19

D2k

debuggen doen we niet aan hierzo
en zeker niet op deze manier

Doet iets met Cloud (MS/IBM)

Pagina: 1

Dit topic is gesloten.