Datenbank Abfrage von phpBB

In diesem Forum kann man Fragen zur Programmierung stellen, die bei der Entwicklung von Mods für phpBB 3.0.x oder dem Modifizieren des eigenen Forums auftauchen.
Forumsregeln
phpBB 3.0 hat das Ende seiner Lebenszeit überschritten
phpBB 3.0 wird nicht mehr aktiv unterstützt. Insbesondere werden - auch bei Sicherheitslücken - keine Patches mehr bereitgestellt. Der Einsatz von phpBB 3.0 erfolgt daher auf eigene Gefahr. Wir empfehlen einen Umstieg auf die neuste phpBB-Version, welches aktiv weiterentwickelt wird und für welches regelmäßig Updates zur Verfügung gestellt werden.
andybabe
Mitglied
Beiträge: 65
Registriert: 16.05.2009 11:35

Datenbank Abfrage von phpBB

Beitrag von andybabe »

Ich habe mich in meinem Thread zum Thema "Page und Forum verbinden" für die Methode Page in phpBB integrieren entschieden. Klappt wunderbar. Allerdings stellt sich mir die Frage, wie kann ich andere Tabellen mit hinzu nehmen. Also ich habe einmal die Standardtabellen und möchte gerne noch weitere dazu nehmen.

Theoretisch könnte ich ja eine neue Datenbank Verbindung in einer extra Datei machen, mit der ich dann auch arbeiten kann. Aber irgendwie ist das nicht so Sinnvoll, wenn phpBB sich eh schon mit der DB verbindet.

Hat vielleicht jemand ne Ahnung? Falls es jemanden interessiert, mit welchem Script ich arbeite:

http://wiki.phpbb.com/Deutsch:Vorlage_f ... ene_Seiten
Ich bin kein Profi, aber ich helfe, wo ich kann, aber lasse mich auch gerne des Besseren belehren und ich versuche durch mitreden zu lernen.

Plauder Community --> http://gmmts.de (Games, Movies, Music, Technic, Software)
andybabe
Mitglied
Beiträge: 65
Registriert: 16.05.2009 11:35

Re: Datenbank Abfrage von phpBB

Beitrag von andybabe »

Weiß keiner, wie ich das machen kann?
Ich bin kein Profi, aber ich helfe, wo ich kann, aber lasse mich auch gerne des Besseren belehren und ich versuche durch mitreden zu lernen.

Plauder Community --> http://gmmts.de (Games, Movies, Music, Technic, Software)
Benutzeravatar
mad-manne
Ehemaliges Teammitglied
Beiträge: 5403
Registriert: 18.03.2005 10:00
Wohnort: Marl im Ruhrgebiet

Re: Datenbank Abfrage von phpBB

Beitrag von mad-manne »

Naja ... am einfachsten legst du die gewünschte(n) Tabelle(n) mit einem passenden Tool(z.B.: KB:phpmyadmin) an und machst sie deiner phpBB-Installation dann "bekannt", indem du sie in der Datei includes/constants.php im Abschnitt

Code: Alles auswählen

// Additional tables
einträgst ...

Also z.B.:

Code: Alles auswählen

define('CUSTOM_TABLE', $table_prefix . 'custom_table');
Dann kannst du auf deine Tabelle(n) in der gleichen Weise wie phpBB das mit den "eigenen" macht zugreifen, also z.B.:

Code: Alles auswählen

$sql = "SELECT field1, field2 FROM " . CUSTOM_TABLE . " ...
Gruss,
Manne.

P.S. Verschoben nach phpBB 3.0: Mod-Bastelstube
Try not. Do or do not. There is no try. (YODA)
Supportanfragen via E-Mail oder PN werden ignoriert
Benutzeravatar
nickvergessen
Ehrenadmin
Beiträge: 11559
Registriert: 09.10.2006 21:56
Wohnort: Stuttgart, Germany
Kontaktdaten:

Re: Datenbank Abfrage von phpBB

Beitrag von nickvergessen »

Sofern keine Variablen in der SQL Abfrage direkt vorkommen, sollten die " mit einfachen ' ersetzt werden ;)

Code: Alles auswählen

$sql = 'SELECT field1, field2 FROM ' . CUSTOM_TABLE . ' ...
siehe auch http://area51.phpbb.com/docs/coding-guidelines.html#sql
kein Support per PN
andybabe
Mitglied
Beiträge: 65
Registriert: 16.05.2009 11:35

Re: Datenbank Abfrage von phpBB

Beitrag von andybabe »

1. Danke, habe das Problem selbst lösen können. Hatte es nur vergessen zu sagen, sorry.

2. Ganz so Ahnungslos bin ich nicht, wenn es um PHP und MySQL geht ;) Deshalb wusste ich das mit sql schon. Ich hoffte da nur, einen kompletten Code zu erhalten, mit dem ich arbeiten kann, weil es irgendwie nicht klappen wollte. Aber nach dem ich etwas rum probiert habe, kam ich zu folgendem Ergebnis:

Code: Alles auswählen

		$sql = "SELECT
			*
		FROM
			".$v2."
		WHERE
			site = '".$_GET[$v1]."'";
		
	$result = $db->sql_query($sql);

	while ($row = $db->sql_fetchrow($result)) {
			
			$inhalt = $row['inhalt'];
			$titel = $row['Titel'];
	
	}
	
$db->sql_freeresult($result);
Ich bin kein Profi, aber ich helfe, wo ich kann, aber lasse mich auch gerne des Besseren belehren und ich versuche durch mitreden zu lernen.

Plauder Community --> http://gmmts.de (Games, Movies, Music, Technic, Software)
Benutzeravatar
Gumfuzi
Ehemaliges Teammitglied
Beiträge: 2454
Registriert: 26.03.2004 22:25
Wohnort: Linz, AT
Kontaktdaten:

Re: Datenbank Abfrage von phpBB

Beitrag von Gumfuzi »

Hallo,

"$_GET" direkt (ungeprüft) in eine SQL-Abfrage einzubauen ist gefählich.

Es gibt in phpBB3 eine Funktion request_var(), welche unbedingt verwendet werden sollte. Des weiteren solltest Du die so erhaltene Variable auf gültige Inhalte prüfen, um nicht dann eine Fehlermeldung zu erhalten, wenn ein falscher Inhalt übergeben wird.
Du kannst niemals alle mit deinem Tun begeistern. Selbst wenn du über's Wasser laufen kannst, kommt einer daher und fragt, ob du zu blöd zum Schwimmen bist.
https://www.deskmodder.de
andybabe
Mitglied
Beiträge: 65
Registriert: 16.05.2009 11:35

Re: Datenbank Abfrage von phpBB

Beitrag von andybabe »

Alles klar. Dankeschön, werde es dann gleich so umbauen :grin:
Ich bin kein Profi, aber ich helfe, wo ich kann, aber lasse mich auch gerne des Besseren belehren und ich versuche durch mitreden zu lernen.

Plauder Community --> http://gmmts.de (Games, Movies, Music, Technic, Software)
Boecki91
Ehemaliges Teammitglied
Beiträge: 4744
Registriert: 18.06.2006 15:21

Re: Datenbank Abfrage von phpBB

Beitrag von Boecki91 »

Gumfuzi hat noch etwas wichtiges vergessen:

Code: Alles auswählen

$db->sql_escape($_eine_mit_request_var_geholte_variable);
Nur dann sind deine String-Variablen sicher.
Standart: Am besten mit beiden Beinen auf dem Boden
Standardmäßig antworte ich nicht auf PMs
andybabe
Mitglied
Beiträge: 65
Registriert: 16.05.2009 11:35

Re: Datenbank Abfrage von phpBB

Beitrag von andybabe »

So, die $_GET Variable habe ich jetzt in request_var() eingebaut, also request_var($_GET[''}).

Mir stellt sich aber die Frage, wo ich das mit $db->sql_escape machen soll. Also wie ich das einbauen soll.
Ich bin kein Profi, aber ich helfe, wo ich kann, aber lasse mich auch gerne des Besseren belehren und ich versuche durch mitreden zu lernen.

Plauder Community --> http://gmmts.de (Games, Movies, Music, Technic, Software)
Benutzeravatar
oxpus
Ehemaliges Teammitglied
Beiträge: 5394
Registriert: 03.02.2003 12:33
Wohnort: Bad Wildungen
Kontaktdaten:

Re: Datenbank Abfrage von phpBB

Beitrag von oxpus »

Hallo,
andybabe hat geschrieben:So, die $_GET Variable habe ich jetzt in request_var() eingebaut, also request_var($_GET[''}).
So wäre das auch falsch.

Wenn dann schon so:

Code: Alles auswählen

$v = request_var('name_des_formularfeldes', '');
$db->sql_escape($v);
Grüße
OXPUS
Kein Support bei unaufgeforderten PNs, E-Mails oder auf anderem Weg!!
Antworten

Zurück zu „[3.0.x] Mod Bastelstube“