berichten tellen in functions.php

Installatie lukt niet? Plotseling een foutmelding. Of weet je niet hoe iets werkt. Problemen met phpBB2 kun je in dit archief opzoeken.
Forumregels

Sinds 1 januari 2009 wordt phpBB2 niet meer ondersteund.
Onderstaande informatie is verouderd en dient uitsluitend als archief.
phpBB2.0.x
Gesloten
Gebruikersavatar
LazyTiger
Berichten: 2000
Lid geworden op: 21 okt 2003, 18:21

berichten tellen in functions.php

Bericht door LazyTiger » 01 jun 2004, 18:47

case 'postcount2':
case 'topiccount2':
$sql = "SELECT SUM(forum_topics) AS topic_total, SUM(forum_posts) AS post_total
FROM " .FORUMS_TABLE ;
break;
hierboven zie je hoe berichten in mijn forum worden geteld. (functions.php) om daarna op de index te verschijnen.

nu wil ik eigenlijk dat hij wat apart telt.
namelijk de forums met het id: 50, 51, 52, 53 of 54.
nou, een makkie eigenlijk. kwestie van WHERE forum_id = 51 || enz...

nu moet er dan natuurlijk nog een 2de sql bij, waarbij hij de forums telt die niet het forum id 50, 51 enz. hebben.
echter, hoe noem je dit?
WHERE NOT of zo?

ik vind het namelijk nogal lastig als ik de andere forum_id moet gaan opnoemen en later een forum zou toevoegen.

Gebruikersavatar
Luuk
Berichten: 7311
Lid geworden op: 22 okt 2003, 10:07
Locatie: Delft

Bericht door Luuk » 01 jun 2004, 18:51

where not is idd goed ja
Afbeelding

Gebruikersavatar
LazyTiger
Berichten: 2000
Lid geworden op: 21 okt 2003, 18:21

Bericht door LazyTiger » 01 jun 2004, 18:53

okee... het was maar een wilde, logische gok.
zit overigens net op w3schools.com te neuzen. (straks niet aan gedacht.)

WHERE <> forum_id gaat ook?
al wordt vaker WHERE != forum_id gebruikt.

Gebruikersavatar
mosymuis
Berichten: 6940
Lid geworden op: 05 feb 2003, 14:00
Locatie: Amsterdam
Contacteer:

Bericht door mosymuis » 01 jun 2004, 20:13

P.T. schreef:WHERE <> forum_id gaat ook?
al wordt vaker WHERE != forum_id gebruikt.
Het bovenste is SQL, onderste is PHP.

Code: Selecteer alles

WHERE forum_id NOT IN($forums_sql)
zal waarschijnlijk werken

//edit
^^foutje verbeterd
Laatst gewijzigd door mosymuis op 01 jun 2004, 20:19, 1 keer totaal gewijzigd.

Gebruikersavatar
LazyTiger
Berichten: 2000
Lid geworden op: 21 okt 2003, 18:21

Bericht door LazyTiger » 01 jun 2004, 20:17

IN moet erbij staan?

Gebruikersavatar
mosymuis
Berichten: 6940
Lid geworden op: 05 feb 2003, 14:00
Locatie: Amsterdam
Contacteer:

Bericht door mosymuis » 01 jun 2004, 20:18

Ja, dat werkt heel wat sneller dan forum_id = X OR forum_id = X OR forum_id = X OR .... ;)

Gebruikersavatar
LazyTiger
Berichten: 2000
Lid geworden op: 21 okt 2003, 18:21

Bericht door LazyTiger » 01 jun 2004, 20:23

als ik er dus bij zet ($forums_sql) anders geen IN als ik gewoon forum_id = 50 || forum_id = 51 enz.

ik moet er dan ook AND tussen zetten ipv OR he?
(hij moet alle berichten van die 5 fora bij elkaar tellen)

Gebruikersavatar
mosymuis
Berichten: 6940
Lid geworden op: 05 feb 2003, 14:00
Locatie: Amsterdam
Contacteer:

Bericht door mosymuis » 01 jun 2004, 20:25

P.T. schreef:anders geen IN als ik gewoon forum_id = 50 || forum_id = 51 enz.

ik moet er dan ook AND tussen zetten ipv OR he?
Nogmaals, || is PHP, AND/OR is SQL/PHP.

Gebruikersavatar
LazyTiger
Berichten: 2000
Lid geworden op: 21 okt 2003, 18:21

Bericht door LazyTiger » 01 jun 2004, 20:29

ja okee, maar zie dat even als 2 losse stukjes.
dus:
als ik er dus bij zet ($forums_sql) anders geen IN als ik gewoon forum_id = 50 || forum_id = 51 enz.
en:
ik moet er dan ook AND tussen zetten ipv OR he?
(hij moet alle berichten van die 5 fora bij elkaar tellen)
dat er || staat is gewoon omdat ik dat telkens nog heb gebruikt.
kan hem ook veranderen naar OR, maar was dit even gewent.

Gebruikersavatar
mosymuis
Berichten: 6940
Lid geworden op: 05 feb 2003, 14:00
Locatie: Amsterdam
Contacteer:

Bericht door mosymuis » 01 jun 2004, 20:33

Alles binnen IN($forums_sql) vat hij op als OR, en dat is ook wat je nodig hebt.

Gebruikersavatar
LazyTiger
Berichten: 2000
Lid geworden op: 21 okt 2003, 18:21

Bericht door LazyTiger » 01 jun 2004, 20:37

dat bedoel ik dus niet. :lol:

ik defineer ergens $forums_sql
daarna zet ik bij een sql neer: WHERE forum_id NOT IN ($forums_sql)

maar stel nu, dat ik niet met $forums_sql wil werken.
maar dat ik gewoon met forum_id = 50 OR forum_id = 51 OR forum_id = 52 enz..
moet ik dan ook IN gebruiken?
of moet het dan gewoon zo zijn:
WHERE NOT forum_id = 50 OR forum_id = 51 enz

vraag 2:
moet ik OR of AND gebruiken om te zorgen dat hij de 5 fora bij elkaar optelt? mij lijkt eigenlijk AND, maar weet het niet zeker.
Wijziging: [/b]

Gebruikersavatar
mosymuis
Berichten: 6940
Lid geworden op: 05 feb 2003, 14:00
Locatie: Amsterdam
Contacteer:

Bericht door mosymuis » 01 jun 2004, 20:39

P.T. schreef:WHERE NOT forum_id = 50 OR forum_id = 51 enz
Ik denk:
WHERE NOT forum_id = 50 AND NOT forum_id = 51 enz

Gebruikersavatar
LazyTiger
Berichten: 2000
Lid geworden op: 21 okt 2003, 18:21

Bericht door LazyTiger » 01 jun 2004, 20:40

hm ja.. klinkt logischer ja. maar ik hoef dus geen IN te gebruiken.
(en dat bedoelde ik :wink: )

bedankt.
ik hoop hiermee weer wat af te kunnen maken! :thumb:

Gebruikersavatar
WebSiteNet
Berichten: 6524
Lid geworden op: 20 okt 2003, 16:56
Locatie: Wieringerwerf
Contacteer:

Bericht door WebSiteNet » 02 jun 2004, 13:35

Ik denk niet dat het veel oplevert.

Dit is het. Tussen die haakjes moeten de forum id's met komma's er tussen en er moet IN bij. Zo iets:

Code: Selecteer alles

WHERE forum_id NOT IN (1,2,3,4,5,6,7)
Dit zou moeten werken. Ik doe het altijd zo. Als je het omgedraaid wilt maken kan je NOT weghalen.

Gebruikersavatar
LazyTiger
Berichten: 2000
Lid geworden op: 21 okt 2003, 18:21

Bericht door LazyTiger » 02 jun 2004, 13:59

hm.. okee.
zal het vanavond eens allemaal gaan installeren en proberen.
(berichten die in de gedeelde categorie van MFO en FFO worden gepost, worden automatisch bij MFO opgeteld. dit wil ik nu dus apart gaan tellen.)

Gesloten