Laatste reactie en aantal reacties in 1 query

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Pagina: « vorige 1 2

Simon ploegh

simon ploegh

31/01/2012 02:17:26
Quote Anchor link
Volgens mij koppen die hier boven genoemenden ook niet. Omdat er getelt wordt COUNT() waar door GROUP BY moet worden toegevoegt word.
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)
PHP script in nieuw venster Selecteer het PHP script
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
<?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
"
;
?>

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.
 
PHP hulp

PHP hulp

08/01/2025 08:37:55
 
Jan Horden

Jan Horden

31/01/2012 10:55:42
Quote Anchor link
Ik heb even een aantal foutjes eruit gehaald (komma's en je mag je tabel geen on noemen aangezien dat een reserved word is) en dit kwam er uit en werkte:
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
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


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.
 
Ger van Steenderen
Tutorial mod

Ger van Steenderen

31/01/2012 11:30:58
Quote Anchor link
Hier krijg volgens mij niet de laatste reactie maar de eerste.
Ik persoonlijk zou vanuit de reactie tabel werken en dan koppelen met de onderwerp tabel:
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
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

Deze query geeft de laatse 10 reacties cq posts
Overigens staan er in jouw query te veel velden in de group by
 

Pagina: « vorige 1 2



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.