Datenbankabfrage für die Startseite (General)
Hallo,
Eine Korrektur bitte: ich wollte die x-neuen Themen anzeigen lassen, nicht die x-letzten Postings.
Ich habe auf einer Seite eine Liste, welche immer die letzten x unterschiedlichen Postings zeigt. Hier das Script dazu Vielleicht könnt Ihr es für Eure Dinge umbiegen.
<?php if (realpath($_SERVER['SCRIPT_FILENAME'])==realpath("recentForum.php")) { die("Kein Direktaufruf!"); } $forumfolder = "myforum"; $topic_length = 25; $topic_limit = 5; $forumuri = "http://".$_SERVER["HTTP_HOST"]."/".$forumfolder."/"; $content = ""; function setCurrentLength($str, $maxlen){ $words = explode(" ",$str); $str = ""; for ($i=0; $i<count($words); $i++){ if (strlen($str)>$maxlen){ return trim($str)."…"; } else { $str .= trim($words[$i])." "; } } return trim($str); } include_once "../".$forumfolder."/config/db_settings.php"; $conForumDB = mysqli_connect($db_settings['host'], $db_settings['user'], $db_settings['password']) OR die("Keine Verbindung zur Datenbank. Fehlermeldung:".mysqli_error()); mysqli_query($conForumDB,'SET NAMES utf8'); mysqli_select_db($conForumDB,$db_settings['database']) OR die("Konnte Datenbank nicht benutzen, Fehlermeldung: ".mysqli_error()); // Kategorien bestimmen und deren Status abfragen $Categorys = array(); $sql = "SELECT `id`, `accession` FROM `".$db_settings['category_table']."`"; $result = mysqli_query($conForumDB, $sql) or die("Query failed : " .mysqli_error()); if (mysqli_num_rows($result)){ while($row = mysqli_fetch_array( $result )) { $Categorys[''.$row['id'].''] = $row['accession']; } mysqli_free_result($result); } // Letzten X-Beiträge aus der EintragsDB holen $sql = "select `id`, UNIX_TIMESTAMP(time), `subject`, `name`, `user_id`, `category` from (select `tid`, `time`, `id`, `subject`, `name`, `user_id`, `category` from `".$db_settings['forum_table']."` WHERE `spam` = 0 order by `time` desc) g1 group by `tid` order by `time` desc limit 0, ".$topic_limit.""; $result = mysqli_query($conForumDB, $sql); if (mysqli_num_rows($result)){ $content .= "<ul>\n"; while($row = mysqli_fetch_array( $result )) { if ($row['user_id'] != 0 && empty($row['name'])) { $sql_name = "select `user_name` from `".$db_settings['userdata_table']."` WHERE `user_id` = ".$row['user_id'].""; $result_name = mysqli_query($conForumDB, $sql_name); $row_name = mysqli_fetch_array( $result_name ); $row["name"] = $row_name["user_name"]; mysqli_free_result( $result_name ); } if ($Categorys[ $row['category'] ] != 0){ $content .= "\t<li><a title=\"Forum: ".$row["subject"]." (Nur registrierte Benutzer oder Mitglieder)\" href=\"".$forumuri."index.php?id=".$row['id']."\">"; $content .= setCurrentLength($row["subject"], $topic_length); $content .= "</a> von ".$row["name"]." am ".date('d.m.Y - H:i', $row["UNIX_TIMESTAMP(time)"])." Uhr <img style=\"margin:0; padding:0; border:none;\" src=\"".$forumuri."themes/default/images/registered.gif\" alt=\"für registrierte Nutzer\" title=\"\" /></li>\n"; } else { $content .= "\t<li><a title=\"Forum: ".$row["subject"]."\" href=\"".$forumuri."index.php?id=".$row['id']."\">"; $content .= setCurrentLength($row["subject"], $topic_length); $content .= "</a> von ".$row["name"]." am ".date('d.m.Y - H:i', $row["UNIX_TIMESTAMP(time)"])." Uhr</li>\n"; } } $content .= "</ul>\n"; mysqli_free_result($result); } echo $content; ?>
Gruß Micha
--
applied-geodesy.org - OpenSource Least-Squares Adjustment Software for Geodetic Sciences