Beiträge: 34
Themen: 8
Registriert seit: 24.01.2009
Hallo zusammen,
ich habe zwar schon einiges gelesen, aber ich komme dennoch nicht dahinter, wie ich mein Problem in den Griff bekomme.
Im Forum möchte ich eine Ausgabe einer anderen Datenbank anzeigen, idealerweise im Head. Die Ergebnisse werden mit einer while-Schleife ausgegeben, also habe ich auch mehr als ein Ergebnis. Mein Script beinhaltet u.a. Folgendes:
PHP-Code:
while ($row9 = mysql_fetch_array($result9)) {
echo $row9["Ausgabe1"]. $row9["Ausgabe2"]. $row9["Ausgabe3"]. ... usw.
}
Wie kann ich die Ergebnisse nun in das Templade includieren?
Gruß
Hans
Beiträge: 2.318
Themen: 13
Registriert seit: 09.11.2008
16.02.2009, 02:37
(Dieser Beitrag wurde zuletzt bearbeitet: 16.02.2009, 02:38 von frostschutz.)
Im Template kannst du nur mit Variablen arbeiten also z.B. {$meine_variable}
Ergo müsstest du in deinem Code eine globale Variable definieren ( global $meine_variable; ) und dann dieser Variable einen Wert zuweisen, z.B. in der Schleife statt echo ein $meine_variable .= $row9["ausgabe"];
Der Wert deiner Variable wird dann ins Template eingesetzt - wobei je nach Template es auch noch erforderlich sein kann, die globale Variable in den Namespace zu holen, mit global $meine_variable; bevor das Template geladen wird. Beim headerinclude Template könnte es aber auch so klappen.
Beiträge: 34
Themen: 8
Registriert seit: 24.01.2009
Hallo frostschutz,
das ich nur mit Variablen arbeiten kann, verstehe ich. Aber wo füge ich mein PHP Script ein, wo ich Variablen definieren kann? Ich muß auch noch die DB Verbindung und ein paar Ifs und Elses ausführen...?
Gruß
Hans
Beiträge: 451
Themen: 25
Registriert seit: 14.02.2009
MyBB-Version: 1.4.4
Am besten, du beschäftigst dich mit dem schreiben von Plugins, dann du nähmlich nur noch Hoocks definieren, wo er den Code laden soll und gut ists.
Außerdem hat diese Methode den Vorteil, dass nach einem Upgrade der Dateien, die Codeänderung nicht weg ist.
MfG Megaleecher
Höre nie auf besser zu werden, weil dann hast du aufgehört gut zu sein.
Beiträge: 2.504
Themen: 69
Registriert seit: 09.04.2005
16.02.2009, 11:07
(Dieser Beitrag wurde zuletzt bearbeitet: 16.02.2009, 11:08 von krafdi.)
Ich habe für mein
Forum ein kleines Plugin geschrieben welches mir ein Menü oben ausgibt. Falls das für dich Interessant ist kannst du dich bei mir Melden dann gebe ich es dir und du kannst es für dich anpassen.
Beiträge: 34
Themen: 8
Registriert seit: 24.01.2009
Hallo,
na wenn es besser ist, dann auch gerne ein Plugin. Allerdings verstehe ich nicht wirklich, wie ich eine MySQL Abfrage in ein Plugin einbauen kann.
Kann ich an dieser Stelle einfach meine Abfrage einbauen?
PHP-Code:
// Diese Funktion wird aufgerufen, wenn das Plugin aktiviert wird.
function pluginname_activate()
{
while ($row9 = mysql_fetch_array($result9)) {
$ausgabe1 = $row9["Ausgabe1"];
$ausgabe2 = $row9["Ausgabe2"];
$ausgabe3 = $row9["Ausgabe3"];
usw...
Und hier dann einige if und else Abfragen...
}
}
Sorry für die Fragen, aber ich stehe halt noch ganz am Anfang...
Gruß
Hans
Beiträge: 25.766
Themen: 269
Registriert seit: 20.09.2005
Bitte benutze $db->query und $db->fetch_array();
Außerdem musst du die Variablen, die du benutzen willst, also global definieren.
Bitte die Foren-Regeln beachten und im Profil die verwendete MyBB-Version angeben.
Beiträge: 2.318
Themen: 13
Registriert seit: 09.11.2008
$db->query klappt nur bei der Datenbank, auf die auch MyBB zugreift (wobei es keine MyBB-Tabelle sein muss, andere Tabellen in derselben Datenbank gehen auch, wenn man nicht simple_select etc. verwendet). Für fremde Datenbanken (wie im OP beschrieben) müsstest du dich selbst um den Aufbau der Verbindung zu dieser Datenbank kümmern. Der zitierte Code scheint in dieser Hinsicht unvollständig ($result9 is nicht definiert).
Beiträge: 25.766
Themen: 269
Registriert seit: 20.09.2005
Wenn man mit dem gleichen Benutzer auf beide Datenbanken zugreift, kann man schon $db->query benutzen. (*Datenbank*.*Tabelle*)
Bitte die Foren-Regeln beachten und im Profil die verwendete MyBB-Version angeben.
Beiträge: 34
Themen: 8
Registriert seit: 24.01.2009
Also hier mal das komplette Script, welches ich einbauen möchte:
PHP-Code:
include("../*Datenbankzugriff öffnen*");
$sql9="SELECT ausgabe1, ausgabe2, ausgabe3 FROM News ORDER BY Id DESC LIMIT 1";
$result9 = mysql_query($sql9);
while ($row9 = mysql_fetch_array($result9)) {
if ($row9["ausgabe1"] == "irgendwas") {
} elseif ($row9["ausgabe1"] == "irgendwas anderes") {
} else {
}
$ausgabe1 = $row9["ausgabe1"];
$ausgabe2 = $row9["ausgabe2"];
$ausgabe3 = $row9["ausgabe3"];
}
include("../*Datenbankzugriff schließen*");
Und wo, bzw. wie muß ich $db->query und $db->fetch_array() verwenden, sowie global definieren?
Ist denn die Stelle richtig, wo das Script eingebaut werden muß?
Ich möchte doch nur ein Ergebnis, welches an einer anderen Stelle meiner Seite bereits angezeigt wird, ebenfalls im Forum anzeigen...