SELFPHP: Version 5.8.2 Befehlsreferenz - Tutorial – Kochbuch – Forum für PHP Einsteiger und professionelle Entwickler

SELFPHP


Professional CronJob-Service

Suche



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



:: Buchempfehlung ::

TYPO3 Kochbuch

TYPO3 Kochbuch zur Buchempfehlung
 

:: Anbieterverzeichnis ::

Globale Branchen

Informieren Sie sich über ausgewählte Unternehmen im Anbieterverzeichnis von SELFPHP  

 

:: Newsletter ::

Abonnieren Sie hier den kostenlosen SELFPHP Newsletter!

Vorname: 
Name:
E-Mail:
 
 

Zurück   PHP Forum > SELFPHP > MySQLi/PDO/(MySQL)

MySQLi/PDO/(MySQL) Anfänger, Fortgeschrittene oder Experten können hier Fragen und Probleme rund um MySQLi/PDO/(MySQL) diskutieren

Antwort
 
Themen-Optionen Ansicht
  #1  
Alt 15.11.2003, 17:01:00
c4 c4 ist offline
SELFPHP Guru
 
Registriert seit: Jul 2002
Ort: Oberursel
Alter: 54
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
__________________
sic!
--> http://dbCF.de/
Mit Zitat antworten
  #2  
Alt 15.11.2003, 18:05:39
Gweilo Gweilo ist offline
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
Mit Zitat antworten
  #3  
Alt 15.11.2003, 19:13:50
c4 c4 ist offline
SELFPHP Guru
 
Registriert seit: Jul 2002
Ort: Oberursel
Alter: 54
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.
__________________
sic!
--> http://dbCF.de/
Mit Zitat antworten
  #4  
Alt 15.11.2003, 19:59:35
overclocker overclocker ist offline
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
Mit Zitat antworten
  #5  
Alt 15.11.2003, 20:10:08
c4 c4 ist offline
SELFPHP Guru
 
Registriert seit: Jul 2002
Ort: Oberursel
Alter: 54
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.
__________________
sic!
--> http://dbCF.de/
Mit Zitat antworten
  #6  
Alt 15.11.2003, 20:43:42
Gweilo Gweilo ist offline
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.
Mit Zitat antworten
  #7  
Alt 15.11.2003, 21:20:32
c4 c4 ist offline
SELFPHP Guru
 
Registriert seit: Jul 2002
Ort: Oberursel
Alter: 54
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....
__________________
sic!
--> http://dbCF.de/

Geändert von ­c­4­ (15.11.2003 um 21:27:48 Uhr)
Mit Zitat antworten
  #8  
Alt 27.11.2003, 19:32:30
c4 c4 ist offline
SELFPHP Guru
 
Registriert seit: Jul 2002
Ort: Oberursel
Alter: 54
Beiträge: 4.748
Des Lösungs Problem: Forum neu schreiben. :)
--> http://dbCF.de/t-forum/
Mehr Tabellen und mehr durchdacht.
__________________
sic!
--> http://dbCF.de/
Mit Zitat antworten
Antwort


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen
Ansicht

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.

BB-Code ist an.
Smileys sind aus.
[IMG] Code ist aus.
HTML-Code ist aus.

Gehe zu


Alle Zeitangaben in WEZ +2. Es ist jetzt 19:15:43 Uhr.


Powered by vBulletin® Version 3.8.3 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.


© 2001-2024 E-Mail SELFPHP OHG, info@selfphp.deImpressumKontakt