YourWBB


yourWBB » yourWBB Misc * » Das Proggen » MySQL und PHP » Themen aus der mysql zählen... » Hallo Gast [Anmelden|Registrieren]
Letzter Beitrag | Erster ungelesener Beitrag 2.747 Views | | Thema zu Favoriten hinzufügen

Neues Thema erstellen Antwort erstellen

Zum Ende der Seite springen Themen aus der mysql zählen...
Autor
Beitrag « Vorheriges Thema | Nächstes Thema »
JayPa JayPa ist männlich
Mitglied


images/avatars/avatar-4175.gif

Dabei seit: 26.12.05
Beiträge: 242
Forenversion: 2.3

 Themen aus der mysql zählen... Antworten Zitieren Editieren Melden       UP

Ich habe angefange mir ein kleines Forum zu bauen für eine kleine Seite!
In dem Forum sind aber leider noch keine Kategorien, also es gibt nur eine Kategorie wo man posten kann!
Sie hier:
[IMG]http://jaypa.de/ef2.jpg[/IMG]

Nun möchte ich gerne mehrere Kategorien haben, in dem ich eine neue Datei erstelle, wo ich eine Tabelle mit den verschiedenen Kategrorien verlinke!
Bloß ich wollte jetzt das so haben, wie das halt bei jedem forum so ist, das man hinter der verlinkten Kategorie die Anzahl der Themen steht!
Wie rufe ich aus der MySQL die Anzahl der Themen aus der neuen Tabelle ab???
Man müsste ja eigentlich die Anzahl der ID zählen, aber wie machen ich das?

Hier mal ein Bild von phpmyadmin und darunter ist der mysql code:
[IMG]http://jaypa.de/ef1.jpg[/IMG]


Die MySQL
code:
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:
27:
28:
29:
-- 
-- Tabellenstruktur für Tabelle `eforum`
-- 

DROP TABLE IF EXISTS `eforum`;
CREATE TABLE IF NOT EXISTS `eforum` (
  `Status` int(1) NOT NULL default '0',
  `Topic` varchar(50) NOT NULL default '',
  `Autor` varchar(30) NOT NULL default '',
  `AutorID` int(2) NOT NULL default '0',
  `AutorMail` varchar(50) NOT NULL default '',
  `TimeStamp` int(4) NOT NULL default '0',
  `LastChange` int(4) NOT NULL default '0',
  `Text` text NOT NULL,
  `ID` int(4) NOT NULL auto_increment,
  `PID` int(4) NOT NULL default '0',
  `Smileys` int(1) NOT NULL default '1',
  PRIMARY KEY  (`ID`)
) TYPE=MyISAM AUTO_INCREMENT=3 AUTO_INCREMENT=3 ;

-- 
-- Daten für Tabelle `eforum`
-- 

INSERT INTO `eforum` (`Status`, `Topic`, `Autor`, `AutorID`, `AutorMail`, `TimeStamp`, `LastChange`, `Text`, `ID`, `PID`, `Smileys`) VALUES (0, 'test', 'depedia', 1, '', 1157791128, 0, 'test', 1, 0, 0),
(0, 'testtesttest', 'depedia', 1, '', 1158526550, 0, 'testtest', 2, 0, 0);



Würde mich super freuen, wenn mir jemand helfen würde!

Gruß
17.09.06 23:16 JayPa ist offline E-Mail Finden Als Freund hinzufügen Füge JayPa in deine Kontaktliste ein MSN Passport-Profil von JayPa anzeigen
BreiteSeite BreiteSeite ist männlich
ETIESETIERB


images/avatars/avatar-4074.gif

Dabei seit: 02.10.04
Beiträge: 1.420
Fähigkeiten: WBB3 Anfänger; WBB2 Fortgeschritten
Herkunft: Sachsen
Forenversion: 3.0

Antworten Zitieren Editieren Melden       UP

code:
1:
SELECT COUNT(*) FROM `eforum`;


Das?

__________________
Mit freundlichen Grüßen
BreiteSeite


» Mancher Mensch hat ein großes Feuer in seiner Seele, und niemand kommt, um sich daran zu wärmen. «
BreiteSeites sysProfile

18.09.06 00:02 BreiteSeite ist offline E-Mail WWW Finden Als Freund hinzufügen Füge BreiteSeite in deine Kontaktliste ein AIM-Name von BreiteSeite: dackelheinz53 YIM-Name von BreiteSeite: dackelheinz53 MSN Passport-Profil von BreiteSeite anzeigen
W00tkaeppi W00tkaeppi ist männlich
Mitglied


Dabei seit: 03.12.04
Beiträge: 485

Antworten Zitieren Editieren Melden       UP

@JayPa:

Da ich gerade selbst an der Programmierung eines eigenen Forensystems sitze werde ich Dir helfen fröhlich

Übertrage in ein weiteres Feld - bspw. eforum.bid - die Foren-ID wo sich die Themen befinden, dann kannst Du einen Num_Row durchführen. Du musst dazu nicht die Anzahl der ID zählen, sondern die Anzahl der Datensätze in einer Tabelle. Du kannst erst dann Themen zusammenzählen lassen, wenn Du ihnen einen Interpreter zuweist. Bspw.:

php:
1:
mysql_num_rows(mysql_query("SELECT * FROM themen WHERE bid='".$forenidworausdieanzahlgezähltwerdensoll."'"));


Ein anderer Weg wäre, auch aus Performancegründen nicht außer Acht zu lassen, bei den Foren ein weiteres Feld anzulegen, welches mit jeder Erstellung und/oder Löschung eines Thema aktualisiert wird. Bsp. Für ein neues Thema:

php:
1:
mysql_query("UPDATE forentabelle SET threadcount=threadcount+1 WHERE id='".forumidwoneuesthemaerstelltwurde."'"));


Und das Beispiel für eine Themenlöschung:

php:
1:
mysql_query("UPDATE forentabelle SET threadcount=threadcount-1 WHERE id='".forumidwoneuesthemaerstelltwurde."'"));


Dann kannst Du den Wert der Forentabelle ganz einfach fetchen und anzeigen lassen.

€dit: Ich rate Dir außerdem dazu Deine Datenbankstruktur zu überdenken, sofern Du vorhast Dein Forum stark zu erweitern, bzw. auf ein Mindestmaß an Funktionen zu bringen.

__________________

Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von W00tkaeppi: 18.09.06 10:26.

18.09.06 09:43 W00tkaeppi ist offline E-Mail WWW Finden Als Freund hinzufügen Füge W00tkaeppi in deine Kontaktliste ein
JayPa JayPa ist männlich
Mitglied


images/avatars/avatar-4175.gif

Dabei seit: 26.12.05
Beiträge: 242
Forenversion: 2.3

Themenstarter Thema begonnen von JayPa
Antworten Zitieren Editieren Melden       UP

Danke für eure Antworten! smile Blume

@W00tkaeppi:
Also alle drei Sachen soll ich ändern, mehr gesagt neu einfügen?

Stark erweitern wollte ich es eigentlich nicht so, vielleicht noch smilies einbringen, aber sonst wars das eigentlich schon!

Gruß

Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von JayPa: 19.09.06 00:37.

19.09.06 00:36 JayPa ist offline E-Mail Finden Als Freund hinzufügen Füge JayPa in deine Kontaktliste ein MSN Passport-Profil von JayPa anzeigen
W00tkaeppi W00tkaeppi ist männlich
Mitglied


Dabei seit: 03.12.04
Beiträge: 485

Antworten Zitieren Editieren Melden       UP

So wie es auf dem Screenshot zu erkennen ist, hast Du lediglich einen Bereich worin Themen erstellt und gelesen werden können. Du willst ja jetzt nun die Möglichkeit haben, mehrere Bereiche zur Verfügung stellen zu können (Foren), worin weitere Themen erstellt werden können. Dazu möchtest Du dann natürlich in der Übersicht anzeigen lassen, wie viele Themen sich in einem Bereich (Forum) befinden.

Zunächst erstellt Du eine neue Tabelle namens foren bspw. Mit ein paar wichtigen Feldern. Zum Beispiel ID(auto_increement,pri.key), titel(varchar(60)), subtitel(text), postcount(tinyint (11)) und threadcount(tinyint(11)). In der Tabelle der Themen fügst Du ein weiteres Feld ein namens bspw. Forum(tinyint(11)) und liest die Themen für dieses Forum folgendermaßen aus:

php:
1:
mysql_query("SELECT * FROM themen WHERE forum='".$vari_ueber_die_die_forenid_gesetzt_wird."'");


Der Rest ergibt sich mit meiner Erklärung im vorherigen Post ^^

__________________

19.09.06 08:38 W00tkaeppi ist offline E-Mail WWW Finden Als Freund hinzufügen Füge W00tkaeppi in deine Kontaktliste ein
Baumstruktur | Brettstruktur
Gehe zu:

Neues Thema erstellen Antwort erstellen

yourWBB » yourWBB Misc * » Das Proggen » MySQL und PHP » Themen aus der mysql zählen...