Laatste reactie en aantal reacties in 1 query
Heb je geen fout melding?? Zoja vermeld die dan met de relevante code, help makkelijker. Is die er niet ontbreekt er goed afhandling van errors.
Maar probeer dit maar eens
Code (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
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
<?php
// hoe je ook maar de aan id komt
$id = $get['id'];
// de mysl
$mysql = "
SELECT
on.id,
on.onderwerp,
COUNT( re.id ) AS aantal,
re.onderwerId
re.auteur
FROM
onderwerp AS on,
LEFT JOIN
reactie AS re
ON
on.id = re.onderwerId
WHERE
on.id = '".$id."'
GROUP BY
on.id,
on.onderwerp,
re.auteur,
re.onderwerId
";
?>
// hoe je ook maar de aan id komt
$id = $get['id'];
// de mysl
$mysql = "
SELECT
on.id,
on.onderwerp,
COUNT( re.id ) AS aantal,
re.onderwerId
re.auteur
FROM
onderwerp AS on,
LEFT JOIN
reactie AS re
ON
on.id = re.onderwerId
WHERE
on.id = '".$id."'
GROUP BY
on.id,
on.onderwerp,
re.auteur,
re.onderwerId
";
?>
Heb hem niet getest(hier nu even geen localhost).
Zou zeggen kijk maar eens naar join, volgens mij kan het niet simpeler.
http://www.phphulp.nl/php/tutorial/overig/sql-joins-uitgebreid/479/tot-slot/1120/ ja weet oude tut.
on.id = re.onderwerId komen overeen in beide tabels. Dus de zelde getallen.
Inline view bekijkt eerst na de () dan de rest(Als ik het goed had).
En probeer je mysql ook uit te lijnen leest makkelijker, hellemaal als je met meer mensen werkt.
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
SELECT
ond.id,
ond.onderwerp,
COUNT( re.id ) AS aantal,
re.ond_id,
re.auteur
FROM
onderwerp AS ond
LEFT JOIN
reactie AS re
ON
ond.id = re.ond_id
WHERE
ond.id = '3'
GROUP BY
ond.id,
ond.onderwerp,
re.auteur,
re.ond_id
ond.id,
ond.onderwerp,
COUNT( re.id ) AS aantal,
re.ond_id,
re.auteur
FROM
onderwerp AS ond
LEFT JOIN
reactie AS re
ON
ond.id = re.ond_id
WHERE
ond.id = '3'
GROUP BY
ond.id,
ond.onderwerp,
re.auteur,
re.ond_id
Bedankt want deze is voor mij iig iets begrijpelijker. Die andere query van Aad werkte btw ook ondanks dat er geen GROUP BY in zat. Kreeg hier ook geen errors in phpMyAdmin.
Ik persoonlijk zou vanuit de reactie tabel werken en dan koppelen met de onderwerp tabel:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
2
3
4
5
6
7
8
9
10
11
12
13
14
15
SELECT
COUNT(re.id) aantal,
re.auteur,
re.content,
re.post_date redate
ond.onderwerp,
ond.post_date onddate
FROM reacties re
RIGHT JOIN
onderwerpen ond ON ond.id = re.ond_id
GROUP BY
re.ond_id
ORDER BY
redate DESC, onddate DESC
LIMIT 0,10
COUNT(re.id) aantal,
re.auteur,
re.content,
re.post_date redate
ond.onderwerp,
ond.post_date onddate
FROM reacties re
RIGHT JOIN
onderwerpen ond ON ond.id = re.ond_id
GROUP BY
re.ond_id
ORDER BY
redate DESC, onddate DESC
LIMIT 0,10
Deze query geeft de laatse 10 reacties cq posts
Overigens staan er in jouw query te veel velden in de group by