Hallo, Gast! (Registrieren)

Letzte Ankündigung: MyBB 1.8.8 veröffentlicht (17.10.16)


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste
PHP Abfrage im Forum
#1
Hallo zusammen,

ich habe zwar schon einiges gelesen, aber ich komme dennoch nicht dahinter, wie ich mein Problem in den Griff bekomme. Blush

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
Zitieren
#2
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.
Zitieren
#3
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
Zitieren
#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.
Zitieren
#5
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.
MyBBoard.de jetzt auf YouTube!
Fehlender Plan wird durch Wahnsinn ersetzt!!Toungue
Gruß Krafdi www.krafdi.de
Zitieren
#6
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
Zitieren
#7
Bitte benutze $db->query und $db->fetch_array();
Außerdem musst du die Variablen, die du benutzen willst, also global definieren.
[Bild: banner.png]

Bitte die Foren-Regeln beachten und im Profil die verwendete MyBB-Version angeben.
Zitieren
#8
$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).
Zitieren
#9
Wenn man mit dem gleichen Benutzer auf beide Datenbanken zugreift, kann man schon $db->query benutzen. (*Datenbank*.*Tabelle*) Toungue
[Bild: banner.png]

Bitte die Foren-Regeln beachten und im Profil die verwendete MyBB-Version angeben.
Zitieren
#10
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... Cry
Zitieren


Möglicherweise verwandte Themen...
Thema Verfasser Antworten Ansichten Letzter Beitrag
  If Abfrage / XThreads PHP in Templates MrRight 34 1.677 20.11.2012, 20:20
Letzter Beitrag: MrRight