. .
pragmaMx Support Forum 22 November 2008, 19:11:10 *
Willkommen Gast. Bitte einloggen oder registrieren.


Einloggen mit Benutzername und Passwort
News:
Brauchen Sie Hilfe? Bitte nutzen Sie unsere Suchfunktion bevor Sie Beiträge oder Fragen ins Board schreiben! Viele Fragen wurden bereits gestellt und beantwortet. Danke!
 
Übersicht Hilfe Forenregeln / Boardrules
 
Suche
Seiten: [1]   Nach unten
Drucken
Autor Thema: Daten aus der Datenbank auslesen  (Gelesen 706 mal)
0 Mitglieder und 1 Gast betrachten dieses Thema.
Barbeytes
weiss was
***
Offline Offline

Geschlecht: Männlich
Beiträge: 172



WWW
« am: 14 Mai 2008, 11:33:00 »

Hallo,

ich bastel gerade an einem Modul und möchte dieses gern zu PragmaMx kompatibel machen.

Da ich in Sachen Pragma und Datenbank noch nicht so fit bin (eigentlich voll der Änfänger), werde ich es ohne Hilfe nicht sauber hinbekommen. rougi

Ich habe das Script soweit in einer Datenbank laufen, möchte aber die Parameter der config.php von Pragma nutzen.

Zur Zeit rufe ich es so ab:

Code: [Select]  
require_once 'inc/config.inc.php';
require_once 'inc/dbopen.inc.php';

Kann ich mich einfach per

Code: [Select]  
require_once 'config.php';

auf die config.php beziehen oder include ich die mainfile.php und frage von dort mit

Code: [Select]  
($GLOBALS['dbhost'], $GLOBALS['dbuname'], $GLOBALS['dbpass'])

die Parameter ab?
Gespeichert

Das Ende eines Dinges ist besser denn sein Anfang. Ein geduldiger Geist ist besser denn ein hoher Geist.

AT / Kapitel 7 / Vers 8
JoergK
Administrator
******
Offline Offline

Geschlecht: Männlich
Beiträge: 1.922



« Antworten #1 am: 14 Mai 2008, 19:54:57 »

Hoi Wink

Sobald ein Modul über den Link "h..p://www.domain.tld/modules.php?name=Modulname" aufgerufen und zur Anzeige gebracht werden kann, sind eigentlich bereits alle Vorraussetzugen erfüllt, um mittels der pragmaMx-API auf die Datenbank zuzugreifen.
Ein zusätzliches Ermitteln der DB-Zugangsdaten und hierauf basierendes Öffnen einer DB-Verbindung im Modul ist nicht mehr notwendig, da die Verbindung bereits beim Aufruf des Moduls existiert.

Wenn Du Dir mal einige Module und/oder Blöcke vom pragmaMx anschaust, wirst Du auf die pragmaMx-"eigenen" Befehle (Funktionen) stossen, um auf die Datenbank zuzugreifen.

Zum Beispiel findest Du im Modul Downloads (index.php) in den Zeilen 54-56 folgendes:
Code: [Select]  
<?php

54        
// Anzahl ALLER Downloads in dieser Kategorie
55        $result sql_query("select count(lid) from " $prefix "_downloads_downloads where cid=" intval($cid) . " AND cid > 0");
56        list($countincat) = sql_fetch_row($result);

?>


pragmaMx: sql_query()
PHP:           mysql_query()

pragmaMx: sql_fetch_row()
PHP:           mysql_fetch_row()

Wie Du siehst, ähneln die Namen der pragmaMx-Funktionen denen von PHP, um so gleich zu erkennen, welche MySQL-Funktion von PHP dahintersteckt, nur dass wir noch einiges an Üperprüfungen und Sicherheit hinzugesetzt haben.

Um Dir einen Überblick zu verschaffen, welche pragmaMx-eigenen DB-Zugriffsfunktionen es gibt, werf mal einen Blick in die Datei /includes/sql_layer.php. Wink
Gespeichert

Gruß,
Jörg

Nobody is perfect ... so don't call me Nobody

Hier noch was zum Lesen und Lernen
HTML, JavaScript & CSS: SelfHTML
PHP: SelfPHP und PHP-Handbuch
MySQL: MySQL 5.1 Handbuch
Barbeytes
weiss was
***
Offline Offline

Geschlecht: Männlich
Beiträge: 172



WWW
« Antworten #2 am: 15 Mai 2008, 12:41:07 »

Hallo,

Danke für Deine schnelle Antwort  thumbup

Das ganze ist für mich noch recht verwirrend, da ich mich mit der Syntax ansich noch auseinandersetzen muß.

Zu Zeit sieht es bei mir so aus, daß ich die Verbindung zur PmX-Datenbank über eine config.inc.php und dbopen.inc.php herstelle.
Vielleicht kannst Du mir diese Abfrage umstellen damit ich es besser verstehe.

Code: [Select]  
$res_modul    = mysql_query("SELECT * FROM {$config['db']['prefix']}radiosender ORDER BY id asc LIMIT 100");
Gespeichert

Das Ende eines Dinges ist besser denn sein Anfang. Ein geduldiger Geist ist besser denn ein hoher Geist.

AT / Kapitel 7 / Vers 8
Tomzp
öfter hier
**
Offline Offline

Geschlecht: Männlich
Beiträge: 39


WWW
« Antworten #3 am: 15 Mai 2008, 13:58:21 »

Hallo Barbeytes,

ich würde sagen so, wenn der Meister mir nicht widerspricht:

Code: [Select]  
$res_modul = sql_query("SELECT * FROM ".$prefix."_radiosender ORDER BY id asc LIMIT 100");

Gruss

Tom

Gespeichert
Barbeytes
weiss was
***
Offline Offline

Geschlecht: Männlich
Beiträge: 172



WWW
« Antworten #4 am: 15 Mai 2008, 14:16:41 »

Hallo Tomzp,

genau so habe ich es auch versucht  smile habe nur den Unterstrich bei _radiosender übersehen.

Klasse ! Die Einträge aus der Datenbank werden angezeigt. Nun kann ich weiter basteln.

Herzlichen Dank an Euch beiden!!  thumbup

Gespeichert

Das Ende eines Dinges ist besser denn sein Anfang. Ein geduldiger Geist ist besser denn ein hoher Geist.

AT / Kapitel 7 / Vers 8
Barbeytes
weiss was
***
Offline Offline

Geschlecht: Männlich
Beiträge: 172



WWW
« Antworten #5 am: 15 Mai 2008, 15:33:02 »

Ich hätte noch eine Frage.

Neue Situation - In die Datenbank schreiben habe ich in 2 Variationen versucht:

Code: [Select]  
$sql=" INSERT INTO ".$prefix."_radiosender (sendername,url) VALUES ('".$_POST['newname']."', '".$_POST['newurl']."')";

Code: [Select]  
$sql=" INSERT INTO ".$prefix."_radiosender SET
sendername='".$_POST['newname']."',
url='".$_POST['newurl']."')";

Dies gibt zwar keine Fehlermeldung aber funktioniert leider nicht.

Ist der Parameter für (sendername,url) richtig oder übersehe ich etwas anderes?
Gespeichert

Das Ende eines Dinges ist besser denn sein Anfang. Ein geduldiger Geist ist besser denn ein hoher Geist.

AT / Kapitel 7 / Vers 8
Webfan
weiss was
***
Offline Offline

Geschlecht: Männlich
Beiträge: 224


WWW
« Antworten #6 am: 15 Mai 2008, 18:07:10 »

Hallo Barbeytes,
die 2. Variante ist schonmal grundfalsch, SET wird beim Updaten der Tabelle benutzt.
Die erste Variante sollte richtiger sein, bis auf folgendes:
- Die Benutzereingaben sollten nicht ungefiltert ind die DB übernommen werden, die Daten solten zumindest mit der PMX Funktion bearbeitet werden mxAddSlashesForSQL:
Code: [Select]  
$sql="INSERT INTO ".$prefix."_radiosender (sendername,url) VALUES ('".mxAddSlashesForSQL($_POST['newname'])."', '".mxAddSlashesForSQL($_POST['newurl'])."')";
vielleicht auch noch mit strip_tags oder so...?
- dann mußt Du den Query natürlich noch ausführen:
Code: [Select]  
sql_query($sql);
- als letztes muß sendername, url der Tabellenstruktur auch entsprechen, dann solte es eigentlich gehen, ich kann mir vorstellen, daß  hier vl. der Fehler liegt?!

mfg
  Smiley
Gespeichert

Barbeytes
weiss was
***
Offline Offline

Geschlecht: Männlich
Beiträge: 172



WWW
« Antworten #7 am: 15 Mai 2008, 19:52:20 »

Ja, es funktioniert wunderbar! Dankeschön  thumbup

Den Rest konnte ich mir erarbeiten.

Muß ich die Verbindung zu Datenbank wieder schließen oder macht das auch das CMS?
Gespeichert

Das Ende eines Dinges ist besser denn sein Anfang. Ein geduldiger Geist ist besser denn ein hoher Geist.

AT / Kapitel 7 / Vers 8
Future
Inventar
*******
Offline Offline

Geschlecht: Männlich
Beiträge: 1.688



WWW
« Antworten #8 am: 15 Mai 2008, 20:12:39 »

Zitat
Muß ich die Verbindung zu Datenbank wieder schließen oder macht das auch das CMS?

Moin,

nein das brauchst du nicht. Das übernimmt ebenfalls das CMS für dich.

Gespeichert
Seiten: [1]   Nach oben
Drucken
 
Gehe zu:  

Powered by SMF 1.1.7 | SMF © 2006-2008, Simple Machines LLC
design by hENNE, layout based on YAML