Ik ben bezig met een forum en heb twee tabellen voor de berichten (zowel onderwerpen als reacties)
). 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:
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:
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 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) |
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) |