Toon posts:

[PHP/mySQL] query problemen

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

Verwijderd

Topicstarter
Ik ben bezig met een forum en heb twee tabellen voor de berichten (zowel onderwerpen als reacties)
PHP:
1
2
3
4
5
6
7
8
9
10
table topic
-   topic_id (UNIQUE)
-   topic_titel (titel van het onderwerp)
-   forum_id (gerelateerd aan het desbetreffende deel van het forum)

table message
-   message_id (UNIQUE)
-   topic_start (is een 1 indien dit het onderwerp is, anders een 0)
-   topic_id (geeft aan bij welk onderwerp het bericht hoort)
-   message_datum (datum waarop het bericht geplaatst is)
Nu wil ik door middel van een query van elk onderwerp binnen één deel van het forum de tijd hebben van het laatste bericht. Nu kan ik met onderstaande query wel alle berichten opvragen binnen één deel van het forum, maar hij drukt te veel af. In topic met id 8 bijvoorbeeld, staan 4 antwoorden (4 antwoorden + 1x het onderwerp = 5 voor de mensen die gaan natellen ;)). Nu heb ik geprobeerd doormiddel van een distinct het topic_id 8 maar één keer voor te doen laten komen, maar dat werkt niet. In principe hoefde dat ook niet om dat ik groepeer op message.topic_id. Waar maak ik een fout???

query:
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
mysql_query ("SELECT
   DISTINCT(message.topic_id),
   message.message_datum,
   COUNT(message.topic_id)
FROM
   message, 
   topic
WHERE
   topic.forum_id = ".$_GET['f']."
AND
   message.topic_id = topic.topic_id                
GROUP BY    
   message.topic_id,
   message.message_datum
ORDER BY    
   message.message_datum DESC
") or die (mysql_error());

Hieronder dan het resultaat uit bovenstaande query, dus het is de bedoeling dat alleen de bovenste array met 8 blijft staan (want dat is de juiste record uit de db), daarna de bovenste met id 11 etc…
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
Array(
    [topic_id] => 8
    [message_datum] => 2003-01-20 16:48:34)
Array(
    [topic_id] => 8
    [message_datum] => 2003-01-20 16:47:40)
Array(
    [topic_id] => 8
    [message_datum] => 2003-01-20 16:21:22)
Array(
    [topic_id] => 8
    [message_datum] => 2003-01-20 16:19:42)
Array(
    [topic_id] => 11
    [message_datum] => 2001-09-22 12:12:20)
Array(
    [topic_id] => 10
    [message_datum] => 2001-09-21 12:12:19)
Array(
    [topic_id] => 9
    [message_datum] => 2001-09-20 12:12:18)
Array(
    [topic_id] => 8
    [message_datum] => 2001-09-19 12:12:17)
Array(
    [topic_id] => 7
    [message_datum] => 2001-09-18 12:12:16)

  • dusty
  • Registratie: Mei 2000
  • Laatst online: 21-02 00:06

dusty

Celebrate Life!

Standaard SQL vraag: MAX()

Back In Black!
"Je moet haar alleen aan de ketting leggen" - MueR


Dit topic is gesloten.