vraag met betrekking tot order by

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Tim

tim

22/02/2007 14:01:00
Quote Anchor link
ik wil een lijst hebben met topic titles.
op volgorde van important
waneer important zelfde waarde heeft op volgorde van reply tijd
waneer er in die gevallen geen replys zijn op volgorde van plaatstijd

(als plaatstijd hoger is dan een andere replytijd moet die plaatstijd hoger staan, en andersom)

de tabellen die ik heb zijn:

gameforum:

gameforum_id
username
gameforum_topic_title
gameforum_time
gameforum_message
gameforum_important


gameforumreply:

gameforum_reply_id
gameforum_id
gameforum_reply_from
gameforum_reply_time
gameforum_reply_message



ik heb al verschillende dingen geprobeerd maar het wil maar niet lukken.

ik kwam wel een paar keer in de buurt denk ik. maar hij gaf steeds een lijst met uitkomsten, op volgorde van important en als die hetzelfde zijn op volgorde van plaatstijd. reply tijd deed die nix mee terwijl ik dat wel zij maarja.

wat die nogmeer deed was de lijst van titles net zo vaak herhalen als het aantal posts dat zijn gemaakt. ik weet het nu dus egt niet meer. dus plz help me
 
PHP hulp

PHP hulp

20/11/2024 06:28:01
 
Toine vd P

Toine vd P

22/02/2007 14:05:00
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
<?php
$result
= mysql_query("SELECT * FROM gameforum ORDER BY gameforum_important");
if (mysql_num_rows($result) >= 1)
  {

  while ($rij = mysql_fetch_array($result))
     {

     echo "<br>".$rij['gameforum_topic'];
     }

  }

else
  {
  echo 'geen topics';
  }
 
Tim

tim

22/02/2007 15:50:00
Quote Anchor link
volgens mij gaat dit helaas niet werken.

dit zet het alleen op volgorde van important.

maar het doet nix voor degenen die dezelfde waarden hebben in important.
ik zat zelf te denken aan

SELECT gameforum.gameforum_topic_title, gameforum.gameforum_time, gameforumreply.gameforum_reply_time

FROM gameforum, gameforumreply

ORDER BY gameforum.gameforum_important DESC, gameforumreply.gameforum_reply_time DESC, gameforum.gameforum_time DESC


en ik heb zitte proberen met een GROUP BY van gameforum_id om ervoor te zorgen dat de serie titles niet net zo vaak herhaald word als het aantal posts.

maar dat lukt me niet egt goed. ook heb ik getest met
MAX(gameforum_reply_id) gecombineerd met GROUP BY van gameforum_id om te kijken of ik dan de hoogste tijd waarde kan krijgen van een reply, want nu zet die nog steeds de topics voor elke tijd neer dat er een post is geplaatst
 
Joren de Wit

Joren de Wit

24/02/2007 13:11:00
Quote Anchor link
Wat je wilt gaat niet lukken met je huidige datamodel. Het is namelijk niet mogelijk om tegelijk te sorteren op 2 kolommen. Je sorteert altijd eerst op de ene kolom en daarna pas op de andere.

Als je dus iets anders wilt, zul je je datamodel aan moeten passen. Het is namelijk zo dat je het eerste bericht uit een topic, zoals je nu in gameforum_message opslaat, net als een reply gewoon als een 'bericht in een topic' kunt zien. Je zou dus alle berichten (zowel eerste berichten als replies) dus in 1 tabel kunnen plaatsen. Op die manier heb je wel de mogelijkheid om te sorteren op datum van laatste bericht in een topic.
 
Barry

Barry

24/02/2007 13:20:00
Quote Anchor link
probeer het eens zo:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
$query = "SELECT * FROM gameforum
                  ORDER BY gameforum_important ASC,
                                  gameforum_time ASC,
                                  gameforum_plaats ASC";
$do = mysql_query($query);
$res = mysql_fetch_*($do);


ASC = ascending (a-z, 0-10)
DESC = descending (z-a, 10-0)

Groet,

Barry

p.s. tabelnamen nog ff aanpassen ;-)
 
Joren de Wit

Joren de Wit

24/02/2007 13:38:00
Quote Anchor link
Barry, dat werkt niet aangezien je dan nog niet sorteert op gameforum_reply_time...
 
Barry

Barry

24/02/2007 13:47:00
Quote Anchor link
ow, sorry verkeerd gekeken, je zult je tabellen moeten mergen. (samenvoegen). Anders moet je altijd 2 queries doen...

Groet,

Barry
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.