php-code und externe Datenbank in WP integrieren

  • Hallo!
    Ich möchte eine Datenbankabfrage über meine Wordpressseite realisieren. Damit Du eine Vorstellung bekommen kannst, was ich will, schau bitte auf sieger.rvweser.de.
    Die Siegerstatistik möchte ich in mein Blog, blog.rvweser.de integrieren. Mindestens so, das auf einer Seite oder in einem Artikel die letzten x Siege angezeigt werden. Besser mit Suchfunktion.

    Die Ausgabe der Tabelle habe ich schon hinbekommen erst mit extra Seitentemplate und dann mit exec-php. In beiden Fällen wird zwar die Tabelle ausgegeben, allerdings werden Umlaute nicht dargestellt und, was viel schlimmer ist, die Plugins Fold-Page-List und Eventcalender finden ihre Variablen nicht mehr. Fehlermeldung :

    Notice: Undefined variable: indent in /mnt/web8/52/09/5349109/htdocs/blog/wp-content/plugins/fold_page_list.php on line 380

    erscheint mehrfach.

    Könntest Du mir einen Tipp geben, was ich ändern muss?

    Vielen Dank,

    Henner

    • Anzeige

    Hallo!

    Wenn du gerade an deiner Website arbeitest oder dein aktuelles Hosting überdenkst: Wir betreiben mit NetzLiving eine Hosting-Plattform, die speziell auf Performance, Sicherheit und einfache Verwaltung ausgelegt ist.

    • ✔️ Schnelle Ladezeiten (optimiert für WordPress & Co.)
    • ✔️ Deutsche Server & DSGVO-konform
    • ✔️ Persönlicher Support (kein 0815-Ticket-System)

    Mehr erfahren

  • Poste doch mal deinen Code bisher (eventuell DB-Zugangsdaten unkenntlich machen). Ich hab schon ne Idee woran es liegen könnte, aber am Code selbst kann ich dir das wahrscheinlich am besten erklären. ;-)

  • So habe ich das gemacht

  • Die Sache mit den Sonderzeichen könnte daran liegen, dass die Daten in einem anderen Charset (vermutlich iso 8859-1/latin-1) vorliegen als die Codierung deines Blogs (vermutlich UTF-8).

    Gruß
    Mo

  • Die Sache mit den Sonderzeichen könnte daran liegen, dass die Daten in einem anderen Charset (vermutlich iso 8859-1/latin-1) vorliegen als die Codierung deines Blogs (vermutlich UTF-8).

    Gruß
    Mo

    Dann müsste ich die Codierung in der Datenbank ändern? Oder geht das besser für die eine Seite im Blog?
    Ich bin blutiger Anfänger. Bisher habe ich bei http://www.schattenbaum.net gelernt und selfphp und dieses Forum.

  • Erstmal musst du in jedem Fall den $new_link-Parameter setzen, und deine Verbindungskennung ($verbindung) jeder deiner eigenen Abfragen mitgeben. Sonst zerstörst du die aktive WP-DB-Verbindung.
    PHP: mysql_connect - Manual

    Und zur Zeichencodierung der DB-Verbindung gibts natürlich auch einen Handbuch-Eintrag:
    PHP: mysql_set_charset - Manual
    (gilt für PHP >= 5.2.3, Alternative für ältere PHP-Versionen steht dort ebenfalls irgendwo)

  • Erstmal musst du in jedem Fall den $new_link-Parameter setzen, und deine Verbindungskennung ($verbindung) jeder deiner eigenen Abfragen mitgeben. Sonst zerstörst du die aktive WP-DB-Verbindung.
    PHP: mysql_connect - Manual

    Und zur Zeichencodierung der DB-Verbindung gibts natürlich auch einen Handbuch-Eintrag:
    PHP: mysql_set_charset - Manual
    (gilt für PHP >= 5.2.3, Alternative für ältere PHP-Versionen steht dort ebenfalls irgendwo)

    Vielen Dank. das probiere ich Heute Abend.

  • Auf keinen Fall solltest du die Zeichenkodierung in der Datenbank ändern. Das kann u.U. zu Datenverlust führen. Außerdem müsstest du andere Applikationen die auf die Daten zugreifen dann auch entsprechend anpassen.

    Sinnvoller wäre es hier dann die Zeichenkodierung bei der Ausgabe zu ändern.

    Gruß
    Mo

  • Hallo!

    So wie ich das im manual verstanden habe, habe ich den $new-link Wert gesetzt und alle meine Abfragen mit $verbindung gekennzeichnet. Es funktioniert aber nicht. Jetzt bekomme ich folgende Fehlermeldung zusätzlich zu denen am Anfang und die Tabelle ist weg.

    Warning: mysql_fetch_object() expects parameter 2 to be string, resource given in /mnt/web8/52/09/5349109/htdocs/blog/wp-content/themes/wp-multiflex-3/siege.php on line 45

    Mein Code sieht jetzt so aus:

  • Die Sache mit den Sonderzeichen könnte daran liegen, dass die Daten in einem anderen Charset (vermutlich iso 8859-1/latin-1) vorliegen als die Codierung deines Blogs (vermutlich UTF-8).

    Gruß
    Mo

    Vielen dank! Das hat geklapt. Ist utf8 und mit diesem Codeschnipsel

    PHP
    $verbindung = @mysql_connect(MYSQL_HOST, MYSQL_USER, MYSQL_PASS, true) OR
            die("Keine Verbindung zur Datenbank. Fehlermeldung:".mysql_error());
        mysql_set_charset('utf8',$verbindung);


    funktioniert wenigstens das.

    Leider sind meine sidebars weiterhin voll mit Fehlermeldungen. :confused::confused::confused:

  • Ja so ungefähr. Es sind ja in dem Fall "nur" Notices, un da sie aus den Plugincodes kommen kannst du da ja auch nicht so ohne weiteres eingreifen. Hoff einfach dass die Autoren es bei den nächsten Upgrades ihrer Plugins beheben. Du könntest ihnen ja auch einen Hinweis zukommen lassen. ;-)

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!