CronJob-Service
bei SELFPHP mit ...
|
+ minütlichen Aufrufen
+ eigenem Crontab Eintrag
+ unbegrenzten CronJobs
+ Statistiken
+ Beispielaufrufen
+ Control-Bereich
Führen Sie mit den CronJobs von
SELFPHP zeitgesteuert Programme
auf Ihrem Server
aus. Weitere Infos

|
:: Anbieterverzeichnis ::
Globale Branchen
Informieren Sie sich über ausgewählte Unternehmen im Anbieterverzeichnis von SELFPHP 
:: Newsletter ::
Abonnieren Sie hier den kostenlosen
SELFPHP Newsletter!
|
MySQLi/PDO/(MySQL) Anfänger, Fortgeschrittene oder Experten können hier Fragen und Probleme rund um MySQLi/PDO/(MySQL) diskutieren |

15.11.2003, 16:01:00
|
SELFPHP Guru
|
|
Registriert seit: Jul 2002
Ort: Oberursel
Alter: 55
Beiträge: 4.748
|
|
Beiträge eines Forums zählen?
Moin,
bin mal wieder am Basteln eines kleinen Forums. Auf der Startseite soll die Zahl der Beiträge in jedem Forum angezeigt werden sollen.
Erstmal die Tabelle:
Code:
CREATE TABLE IF NOT EXISTS forum (
id INT AUTO_INCREMENT PRIMARY KEY,
pid INT NOT NULL,
hits INT NOT NULL,
subject VARCHAR(200) DEFAULT '',
content TEXT NOT NULL DEFAULT '',
user VARCHAR(50) DEFAULT '',
email VARCHAR(100) DEFAULT '',
timestamp INT DEFAULT '0',
ip VARCHAR(15) DEFAULT '',
showemail CHAR(1) DEFAULT '1',
sendemail CHAR(1) DEFAULT '0'
);
Was bei SelfPHP z.B. 'Grundlagen' oder 'Off-Topic' ist, das hat bei mir die pid (parent id) 0. Alle neuen Beiträge werden dann mit dieser pid zugeordnet.
Gibt es eine ordentliche Methode, um die Zahl der Beiträge jedes Forums (alle Einträge, die sich auf einen Eintrag mit pid==0 beziehen) zu ermitteln? Schleifen & Co. entfallen, denn das würde zu langsam werden.
Das selbe Problem besteht auch bei den Hits: Wie zeige ich auf der Startseite an, wie oft in jedem Forum rumgeklickt wurde?
Besten Dank,
Carsten
|

15.11.2003, 17:05:39
|
Member
|
|
Registriert seit: Oct 2002
Ort: ch
Beiträge: 822
|
|
Hi C4,
Die hits kannst du mit mySQL zusammenzählen:
SELECT SUM( hits )
FROM forum
WHERE pid=30
Die anzahl Posts pro Unterforum kannst du so etwa zählen:
SELECT COUNT(*)
FROM forum
WHERE pid=30
Das war doch, wonach du gesucht hast, oder hab ich Dich da misverstanden?
Gweilo
|

15.11.2003, 18:13:50
|
SELFPHP Guru
|
|
Registriert seit: Jul 2002
Ort: Oberursel
Alter: 55
Beiträge: 4.748
|
|
Jap, leider falsch 'verstanden'.
Der Inhalt sieht ungefähr so aus:
Code:
ID PID hits bla
33 0 14 lalalala
34 33 7 lalalala
35 34 0 lalalala
36 34 0 lalalala
37 33 9 lalalala
38 37 0 lalalala
39 37 0 lalalala
- ID 33 ist ein Hauptforum (wie in dem Board MySQL oder Off-Topic)
- ID 34 ist ein Thread in dem Unterforum 33
- 35 und 36 sind Beiträge im Thread 34 (darum auch 0 Hits)
Nun würde ich gerne wissen, wie viele Hits in Forum 33 getätigt wurden und wie viele Beiträge sich darin insgesamt befinden.
|

15.11.2003, 18:59:35
|
Junior Member
|
|
Registriert seit: May 2002
Beiträge: 179
|
|
mal schauen ob ich's 'verstanden' hab ;)
SELECT SUM(hits) AS hitz, COUNT(id) AS posts FROM forum WHERE pid=33
|

15.11.2003, 19:10:08
|
SELFPHP Guru
|
|
Registriert seit: Jul 2002
Ort: Oberursel
Alter: 55
Beiträge: 4.748
|
|
Naja, da fehlt aber noch was, Übertakter.
Wenn ich das in der obersten Ebene (praktisch ID==0) mache, dann stimmt die Anzahl doch nicht. Dann fehlen Beitrag 38 und 39, da diese sich auf 37 beziehen und anscheinend nichts mit 33 zu tun haben.
Das war es, was ich am Anfang meinte, dass man das in einer Schleife abfragen könnte, was ich aber nicht will.
|

15.11.2003, 19:43:42
|
Member
|
|
Registriert seit: Oct 2002
Ort: ch
Beiträge: 822
|
|
Ahso, jetz hab ich's verstanden (glaube ich zumindest)
Ist's möglich innerhalb eines Querys ein zweites Query zu starten? Ansonsten sähe ich da keine andere möglichkeit als durchzuschleifen.
Wie unterscheidest du eigentlich zwischen Forum und Thread? Bloss durch die 0 in PID? Ich weiss nicht. ich würde da ehrlich gesagt mehrere Tabellen machen, finde das nicht so toll, alles in einer Tabelle zu halten.
|

15.11.2003, 20:20:32
|
SELFPHP Guru
|
|
Registriert seit: Jul 2002
Ort: Oberursel
Alter: 55
Beiträge: 4.748
|
|
Zitat:
Ist's möglich innerhalb eines Querys ein zweites Query zu starten? Ansonsten sähe ich da keine andere möglichkeit als durchzuschleifen.
|
Doch, mySQL 4 kann das (angeblich). Schimpft sich SubSELECT. Jetzt wo Du es sagst (ich sollte ausschlafen): Ich hab mySQL 4 und mein Provider auch. Also steht dem nix im Weg, außer meiner Unlust.
Zitat:
ich würde da ehrlich gesagt mehrere Tabellen machen, finde das nicht so toll, alles in einer Tabelle zu halten.
|
Jau, gehört sich auch so. Ich hatte bloß keine Lust dazu. :)
Ich werde mich dann mal an SubSELECTs versuchen. Aber nicht mehr heute....
Geändert von c4 (15.11.2003 um 20:27:48 Uhr)
|

27.11.2003, 18:32:30
|
SELFPHP Guru
|
|
Registriert seit: Jul 2002
Ort: Oberursel
Alter: 55
Beiträge: 4.748
|
|
Des Lösungs Problem: Forum neu schreiben. :)
--> http://dbCF.de/t-forum/
Mehr Tabellen und mehr durchdacht.
|
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
|
|
Themen-Optionen |
|
Ansicht |
Linear-Darstellung
|
Forumregeln
|
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.
HTML-Code ist aus.
|
|
|
Alle Zeitangaben in WEZ +2. Es ist jetzt 01:06:10 Uhr.
|