Query geeft lege waardes?

Gestart doorOne2xs9 reacties23 weergaven

10 berichten · pagina 1 van 1

One2xs

Bot · Topicstarter

Berichten
93.699
Reputatie
0
Punten
1,27
Lid sinds
Laatst gezien
Ik heb een query die 4 berichten moet selecteren en daarbij het aantal reacties
Maar als ik deze berichten weergeef zijn ze leeg
Voorbeeld @ www.busicsites.nl
Query:

[COLOR= #0000BB]<?php
                $nieuwsQuery[/COLOR] [COLOR= #007700]=[/COLOR] [COLOR= #0000BB]$Core[/COLOR][COLOR= #007700]->[/COLOR]MySQL[COLOR= #007700]->[/COLOR]query[COLOR= #007700]([/COLOR][COLOR= #DD0000]"SELECT 
                                                nieuws.titel AS titel,
                                                nieuws.klein AS klein,
                                                nieuws.id AS id,
                                                COUNT(staffcounter.id) AS staffcount,
                                                COUNT(counter.id) AS count
                                            FROM 
                                                bomkgdsq_busicsites.nieuws AS nieuws,
                                                bomkgdsq_busicsites.nieuws_reacties AS staffcounter,
                                                bomkgdsq_busicsites.nieuws_reacties AS counter
                                            WHERE
                                                staffcounter.nieuws_id = nieuws.id
                                            AND
                                                counter.nieuws_id = nieuws.id
                                            AND
                                                counter.hide = 0
                                            AND
                                                staffcounter.hide = 1
                                            ORDER BY 
                                                nieuws.id DESC
                                            LIMIT 
                                                4"[/COLOR][COLOR= #007700]);[/COLOR]
?>


- Niels
0
Berichten
212
Reputatie
0
Punten
0,00
Lid sinds
Laatst gezien
KAn je niet beter een join gebruiken voor:
EHERE
staffcounter.nieuws_id = nieuws.id
AND
counter.nieuws_id = nieuws.id
0
One2xs

Bot · Topicstarter

Berichten
93.699
Reputatie
0
Punten
1,27
Lid sinds
Laatst gezien
Kan je een voorbeeld geven?
0
Berichten
212
Reputatie
0
Punten
0,00
Lid sinds
Laatst gezien
SELECT
nieuws.titel AS titel,
nieuws.klein AS klein,
nieuws.id AS id,
COUNT(counter.id) AS count
FROM
bomkgdsq_busicsites.nieuws AS nieuws
INNER JOIN
bomkgdsq_busicsites.nieuws_reacties AS counter
ON (counter.nieuws_id = nieuws.id)
WHERE
counter.hide = 0
ORDER BY
nieuws.id DESC
LIMIT
0, 4

Ik zie trouwens ook dat je een tabel 2 keer aanroept als staffcounter en counter en dan vraagt of het resultaat 1 en 0 moet zijn
0
One2xs

Bot · Topicstarter

Berichten
93.699
Reputatie
0
Punten
1,27
Lid sinds
Laatst gezien
Maar dan is de staffcounter weg?
0
Berichten
212
Reputatie
0
Punten
0,00
Lid sinds
Laatst gezien
Je roept als het ware 1 tabel 2 keer aan, en vervolgens roep je een resultaat van die tabel aan en vraagt:

hide moet 0 zijn maar ook 1

Dat kan dus niet het moet 1 of 0 zijn anders blijf je 0 resultaten houden.
0
One2xs

Bot · Topicstarter

Berichten
93.699
Reputatie
0
Punten
1,27
Lid sinds
Laatst gezien
Is er geen andere oplossing dan redface?
0
Berichten
212
Reputatie
0
Punten
0,00
Lid sinds
Laatst gezien
Nee, want als jij dit wilt oproepen:

id = 11
titel = "Een titel"
hide = 0

Volgens de query moet dit resultaat bij hide zowel 0 als 1 hebben en dat heeft hij niet, want hij heeft alleen maar 0 dus zet hij hem niet bij de resultaten

hetzelfde geldt voor als hide 1 was. dan voldeed hij er niet aan omdat hij wel 1 was maar niet 0.
0
Berichten
3.283
Reputatie
0
Punten
0,00
Lid sinds
Laatst gezien
Ik had het zo gedaan:

SELECT
    nieuws.titel AS titel,
    nieuws.klein AS klein,
    nieuws.id AS id,
    (
        SELECT
            COUNT(1)
        FROM
            bomkgdsq_busicsites.nieuws_reacties staffcounter
        WHERE
            staffcounter.nieuws_id = nieuws.id
        AND
            staffcounter.hide = 1
    ) AS staffcounter,
    (
        SELECT
            COUNT(1)
        FROM
            bomkgdsq_busicsites.nieuws_reacties counter
        WHERE
            counter.nieuws_id = nieuws.id
        AND
            counter.hide = 0
    ) AS counter
FROM
    bomkgdsq_busicsites.nieuws AS nieuws
ORDER by
    nieuws.id
LIMIT 4
0
One2xs

Bot · Topicstarter

Berichten
93.699
Reputatie
0
Punten
1,27
Lid sinds
Laatst gezien
Thanks Marijn
Het werkt nu biggrin
0

Jouw reactie

Deel je idee, stel een vraag of help een ander verder.

Editor laden…

Praat mee met de One2xs-community.

Inloggen om te reageren