Ich bastle zur Zeit an einem kleinen Forum (PHP), habe allerdings das Problem, dass ein paar Boards mehr als 250 Queries brauchen und die Renderzeit der Seite so in die Höhe hüpft.
Ich habe folgende Datenbankstrukur:
- `cats` = die Kategorien; Felder: `id`,`title`,`position`
- `boards` = die Kategorien; Felder: `id`,`cat_id`,`title`,`desc`,`position`
- `threads` = die Kategorien; Felder: `id`,`cat_id`,`board_id`,`title`,`date`
- `posts` = die Kategorien; Felder: `id`,`board_id`,`thread_id`,`text`,`date`,`user_id`
Im Moment läuft es so, dass mit einer Query die Kategorien ausgelesen werden:
Alles anzeigen
get_thread_name() und get_username() sind einfache Funktionen, die anhand der ID das Feld `title` zurückgeben.
Ich bin mir sicher, dass es wesentlich einfacher geht, aber ich kenne mich leider mit den Möglichkeiten von MySQL noch nicht allzu gut aus, würde mich also sehr über Tipps freuen! :]
Ich habe folgende Datenbankstrukur:
- `cats` = die Kategorien; Felder: `id`,`title`,`position`
- `boards` = die Kategorien; Felder: `id`,`cat_id`,`title`,`desc`,`position`
- `threads` = die Kategorien; Felder: `id`,`cat_id`,`board_id`,`title`,`date`
- `posts` = die Kategorien; Felder: `id`,`board_id`,`thread_id`,`text`,`date`,`user_id`
Im Moment läuft es so, dass mit einer Query die Kategorien ausgelesen werden:
Quellcode
- $sql = "SELECT * FROM `cats` ORDER BY `position` ASC";
- $res = mysql_query($sql);
- while($row = mysql_fetch_assoc($res)) {
- echo "<b>".stripslashes($row['title'])."</b>";
- $sql2 = "SELECT * FROM `boards` WHERE `cat_id`= '".$row['id']."' ORDER BY `position` ASC";
- $res2 = mysql_query($sql2);
- while($row2 = mysql_fetch_assoc($res2)) {
- echo "<b>".stripslashes($row2['title'])."</b><br />".stripslashes($row2['desc']);
- $sql3 = "SELECT * FROM `posts` WHERE `board_id`= '".$row2['id']."' LIMIT 1";
- $res3 = mysql_query($sql3);
- while($row3 = mysql_fetch_assoc($res3)) {
- echo get_thread_name($row3['thread_id'])."<br />von ".get_username($row3['user_id']);
- }
- }
- }
get_thread_name() und get_username() sind einfache Funktionen, die anhand der ID das Feld `title` zurückgeben.
Ich bin mir sicher, dass es wesentlich einfacher geht, aber ich kenne mich leider mit den Möglichkeiten von MySQL noch nicht allzu gut aus, würde mich also sehr über Tipps freuen! :]