+ Antworten
Ergebnis 1 bis 5 von 5

Thema: Php mit DB-Zugriff im Content

  1. #1
    Neu an Board
    Registriert seit
    10.02.2007
    Beiträge
    5
    Bedankte sich
    1
    Erhielt 0 Danksagungen
    in 0 Beiträgen

    Standard Php mit DB-Zugriff im Content

    Hallo zusammen,

    ich habe mir ein php-Skript geschrieben, welches mir aus einer Foren-Datenbank die aktuellen Themen anzeigt. Um schnell mal zu sehen, wie das Skript die Daten mit CSS von Joomla darstellt, habe ich es im template hinter dem Modul Mainbody included. Das Skript funktioniert.

    Nun möchte ich das php-Skript in der Frontpage im Content einfügen. Ich nutze dafür josaddphp. Der Mambot josaddphp funktioniert. Wenn mein Skipt im Content eingefügt wird, bekomme ich Fehlermeldungen.

    Ich habe rausgefunden, dass die Funktion MYSQL_SELECT_DB() in meinem Skript für diese Fehler verantwortlich ist. Ich kenne mich mit php und MySQL nicht so gut aus, aber ich vermute mal, dass es hier eine Einschränkung gibt: Man darf im eingefügten php keine Datenbank selektieren (das bringt dann wahrscheinlich den Datenbankzugriff von Joomla durcheinander).

    Ist meine Vermutung richtig? Wenn ja, gibt es hier ein Workaround?
    Joomla- und Forendatenbank sind unterschiedliche Datenbanken.

    Gruesse
    Seven

  2. #2
    Gehört zum Inventar
    Registriert seit
    18.02.2005
    Beiträge
    8.841
    Bedankte sich
    85
    Erhielt 2.269 Danksagungen
    in 1.936 Beiträgen

    Standard

    Warum verwendest du nicht einfach die J! database Klasse, damit ist zumindest sicher
    gestellt, dass du keine Fehler in deinem Verbindungsscript hast, wovon du anscheinend
    nichts preisgeben möchtest.

    Gruß
    ec

  3. #3
    Neu an Board
    Registriert seit
    10.02.2007
    Beiträge
    5
    Bedankte sich
    1
    Erhielt 0 Danksagungen
    in 0 Beiträgen

    Standard

    Zitat Zitat von ecomeback Beitrag anzeigen
    Warum verwendest du nicht einfach die J! database Klasse, damit ist zumindest sicher
    gestellt, dass du keine Fehler in deinem Verbindungsscript hast, wovon du anscheinend
    nichts preisgeben möchtest.
    Naja, ich hatte mein script soweit minimiert, dass ich auf das Problem mit der Datenbankselektion kam. Also mit dem folgendem code, genauer mit MYSQL_SELECT_DB, gibt es Fehlermeldungen. Der weitere Programmcode ist also unwichtig.

    PHP-Code:
    $db2 MYSQL_CONNECT($db2_server,$db2_user,$db2_pass) or die ("Verbindung nicht hergestellt");
    $db2_check MYSQL_SELECT_DB($db2_name);

    /** Hier erfolgen Datenbankabfragen **/

    mysql_close(); 
    Laut php-Referenz:
    mssql_select_db() sets the current active database on the server that's associated with the specified link identifier.
    Every subsequent call to mssql_query() will be made on the active database
    Ich verbiege also den Datenbankzeiger auf eine andere Datenbank, so dass Joomla! nicht mehr auf seine Datenbank zugreifen kann ... ist doch richtig?!

    EDIT: Problem gelöst.
    Zum Schluss von meinem script, selektiere ich mit mssql_select_db() wieder die Joomla!-Datenbank.
    Geändert von Seven (19.08.2007 um 07:54 Uhr) Grund: Problem gelöst:

  4. #4
    Gehört zum Inventar
    Registriert seit
    18.02.2005
    Beiträge
    8.841
    Bedankte sich
    85
    Erhielt 2.269 Danksagungen
    in 1.936 Beiträgen

    Standard

    PHP-Code:
    <?php
    $o_db 
    = new database('localhost''user''password''database''db_prefix');
    var_dump($o_db);
    ?>
    wäre wohl einfacher.

    Gruß
    ec

  5. Erhielt Danksagungen von:


  6. #5
    Neu an Board
    Registriert seit
    10.02.2007
    Beiträge
    5
    Bedankte sich
    1
    Erhielt 0 Danksagungen
    in 0 Beiträgen

    Standard

    Code:
    <?php
    $o_db = new database('localhost', 'user', 'password', 'database', 'db_prefix');
    var_dump($o_db);
    ?>
    Das ist wahrscheinlich aus der Joomla! Database Klasse, ich werde mir das mal genauer ankucken. Mein script läuft zwar jetzt fehlerfrei, allerdings wäre es schon "sauberer" programmiert, wenn man gleich "innerhalb" Joomla! bleibt.

    Danke Dir!
    Gruss
    Seven

+ Antworten

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein