MyBB.de Forum

Normale Version: Eigene PHP-Seiten ins Forum einbinden (Abfragen)
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Seiten: 1 2
Hallo zusammen,

hoffe ich hab den Titel des Threads einigermaßen passend formuliert.

Mir gehts um folgendes:
Habe eine PHP-Datei, die auch tut was sie soll auf der Homepage. Nun möchte ich genau diese im Forum einbinden. Eigene Seiten erstellen + Templates habe ich bereits schon. Das klappt.

Ich kämpfe nur mit der Ausgabe und der Darstellung/Implementierung der mySQL-Abfrage.

Beispiel:
PHP-Code:
$result mysql_query ("select name, vorname from tabelle where highgame>0 order by highgame desc limit 0,13");
while (
$row mysql_fetch_assoc ($result)) {
echo 
"<tr><td align='center'>".$row[name].", ".$row[vorname]."</td></tr>";
    } 
Einfache Abfrage, einfach Ausgabe. Wie muss ich das jetzt im Forum umsetzen. Also das Zusammenspiel PHP-Datei+Template. Muss ich mir für die Ausgabe ein zusätzliches Template machen und das dann mit {$zusätzlichesTemplate} ausgeben?

Versucht habe ich es recht kläglich so:
PHP-Code:
define ("KILL_GLOBALS"1);
define ("IN_MYBB"1);

require 
"./global.php";
require 
"./inc/functions_post.php";

add_breadcrumb ("svf_highgames");

$result $db->query ("select name, vorname from tabelle where highgame>0 order by highgame desc limit 0,13");

while(
$row $db->fetch_array($result))
    {
    
$name $row['name'];
    
$vorname $row['vorname'];
    
$highgame $row['highgame'];
    eval(
"\$highgames .= \"".$templates->get("svf_highgame2")."\";");
    echo 
$highgames;
}
eval (
"\$svf_highgames = \"".$templates->get("svf_highgames")."\";");
output_page($svf_highgames); 

In der svf_highgame2 steht die Ausgabe drin:
Code:
<tr>
<td align='center'>{$name}, {$vorname}</a></td>
<td align='center'>{$highgame}</td>
</tr>

Im Template svf_highgames lass ich dann alles durch {$highgames} anzeigen.

Über ein paar Denkanstöße wäre ich dankbar.
Was genau ist das Problem? Was funktioniert bzw. funktioniert nicht? Generell ist deine Umsetzung schon richtig. Die echo-Zeile musst du auf jeden Fall noch entfernen und es ist aus Sicherheitsgründen besser noch htmlspecialchars_uni() auf die einzelnen Daten anzuwenden:
PHP-Code:
$name htmlspecialchars_uni($row['name']);
$vorname htmlspecialchars_uni($row['vorname']);
$highgame htmlspecialchars_uni($row['highgame']); 
Ich bekomme leider keinerlei Ausgabe. Ich sehe nur das HTML-Template, aber die Abfrage bleibt leider ergebnislos.

Ich poste mal mein Template svf_highgames:
Code:
<html>
<head>
<title>{$mybb->settings[bbname]}</title>
{$headerinclude}
</head>
<body>
{$header}
<table cellspacing="0" cellpadding="0" border="0" width="100%" align="center">
<tr><td class="tborder">
<table border="0" cellspacing="1" cellpadding="4" width="100%">
<tr>
<td class="thead" width="14%"><b>High Games</b></td>
</tr>
<tr>
<td class="trow1" valign="top" colspan="2">
<table cellspacing="0" cellpadding="0" border="0" width="100%"><tr>
<td valign="top">

//AB HIER IST DER INHALT
<p>Hier seht ihr eine Übersicht der höchsten Spiele unserer Mitglieder. Die Angabe ist freiwillig und konnte natürlich nicht auf Richtigkeit überprüft werden. ;-) Mitglieder, die keine Angaben gemacht haben, erscheinen hier auch nicht!</p>
<table border="0" cellspacing="5" width="250">
<tr><th>Spieler</th><th>High Game</th></tr>
{$highgames}
</table>
//HIER IST SCHLUSS

</td>
</tr></table>
</td>
</tr>
</table>
</td></tr></table>
{$footer}
</body>
</html>

Deine Änderung hab ich drin und die echo-Zeile entfernt.
Wurde etwas ausgegeben, als das echo noch im Code war? Falls nicht liefert dein Query einfach keine Datensätze und deshalb wird nichts angezeigt.
Nein es wurde nichts ausgegeben. Mein Query liefert ein Ergebnis. Habe es gerade noch einmal im phpmyadmin geprüft. Auch auf der Website selbst funktioniert es, da der Code ja direkt von dort kopiert wurde.

Ich habe mir nun die Ausgabe mal angesehen und dort steht das:
Code:
<p>Hier seht ihr eine Übersicht der höchsten Spiele unserer Mitglieder. Die Angabe ist freiwillig und konnte natürlich nicht auf Richtigkeit überprüft werden. ;-) Mitglieder, die keine Angaben gemacht haben, erscheinen hier auch nicht!</p>
<table border="0" cellspacing="5" width="250">
<tr><th>Spieler</th><th>High Game</th></tr>

<!-- start: svf_highgame2 -->

<!-- end: svf_highgame2 --><!-- start: svf_highgame2 -->

<!-- end: svf_highgame2 --><!-- start: svf_highgame2 -->

<!-- end: svf_highgame2 --><!-- start: svf_highgame2 -->

<!-- end: svf_highgame2 --><!-- start: svf_highgame2 -->

<!-- end: svf_highgame2 --><!-- start: svf_highgame2 -->

<!-- end: svf_highgame2 --><!-- start: svf_highgame2 -->

<!-- end: svf_highgame2 --><!-- start: svf_highgame2 -->

<!-- end: svf_highgame2 --><!-- start: svf_highgame2 -->

<!-- end: svf_highgame2 --><!-- start: svf_highgame2 -->

<!-- end: svf_highgame2 --><!-- start: svf_highgame2 -->

<!-- end: svf_highgame2 --><!-- start: svf_highgame2 -->

<!-- end: svf_highgame2 --><!-- start: svf_highgame2 -->

<!-- end: svf_highgame2 -->
</table>

Also aufs Template greift er zu. Dann kann es ja eigentlich nur sein, dass in dem Template etwas nicht stimmt oder?
Existiert das Template "svf_highgame2" und ist es im richtigen Template-Set?
Ja das Template existiert. Es liegen auch beide Templates svf_highgame und svf_highgame2 im default Templateset.

Gern stelle ich auch mal einen Testaccount per PN zur Verfügung, wenn nötig.
Bitte verschiebe die Templates ins globale Template-Set. Vielleicht liegt es daran. Der Inhalt müsste ja auf jeden Fall angezeigt werden.
Das hat leider keine Veränderung gebracht. Es ist alles noch unverändert.

Hat jemand vielleicht noch einen Tipp?
Gibt es das Template svf_highgame2 vielleicht mehrfach? Der Ausgabe nach wird es geladen, hat aber keinen Inhalt. Am besten schaust du direkt per phpMyAdmin in die templates-Tabelle.
Seiten: 1 2