Umlaute von Daten aus der Datenbank

  • Hallo,
    ich benutze buddypress und WP 3.2.1

    ich habe zweimal die gleiche Abfage,
    einmal in der archive.php und einmal in der index.php.

    Es wird dann beide Male die Ausgabe des feldes4 "abgefragt".

    PHP
    <?php
                    $myuserid = get_the_author_meta('ID');
                    $ergplz = mysql_query("SELECT * FROM wp_bp_xprofile_data WHERE user_id = ".$myuserid." AND field_id = 4");
                    while ($rowplz = mysql_fetch_object($ergplz)) {
                        $myplz = $rowplz->value;
                    }
                    
                    ?>, <?php echo $myplz; ?>

    Einmal werden die Umlaute richtig dargestellt und einmal nicht.

    Soll ich noch mehr code schicken - wo kann ich suchen?
    Die dateien sind beide mit utf8 und ohne BOM abgespeichert.

    Vielen Dank für einen Tipp!!!
    Irmen

    • 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

  • das klingt recht logisch.
    Für mich ist jetzt die frage:
    Was ist eine Ausgabe-Art?
    Ich bin von der copy-und paste-fraktion u nd weiß leider ganz viel nicht ...

    Kannst du mich aufklären?
    Denn ich hatte so den Eindruck, daß das auch beides gleich ausgegeben wird??
    Wo kann ich das prüfen?

    Vielen Dank!
    Irmen

  • Was ist eine Ausgabe-Art?


    Die mysql-Schnittstelle wird viel zu häufig noch verwendet, weil sich Unmengen an Beispielen im Web finden lassen und in der DE Version von php.net immer noch nicht darauf hingewiesen wird, dass mysql veraltet ist.

    http://php.net/manual/de/function.mysql-query.php

    In der englischen Version hingegen schon:

    Zitat

    Warning
    This extension is deprecated as of PHP 5.5.0, and will be removed in the future. Instead, the MySQLi or PDO_MySQL extension should be used.


    http://www.php.net/manual/en/function.mysql-query.php


    http://www.php.net/manual/en/function.mysql-query.phpSo kommt es halt, dass diese Schnittstelle besonders häufig von der Copy- und Paste-Fraktion immer noch für neue Scripts verwendet wird.

    Damit kann Dein Problem eigentlich nicht zusammenhängen. Was bei BuddyPress anders läuft, weiß ich nicht, doch eine The Loop wird es da wohl auch geben und da könnten schon unterschiedliche Filter und Funktionen mit für die Ausgabe verantwortlich sein. Doch wie bereits geschrieben, mit BuddyPress hatte ich noch nichts zu tun.

  • Vielen Dank für deine Antwort - was mich verwundert ist, daß innerhalb von buddypress, die Abfrage auf zwei Seiten - einmal archive und einmal auf der index(innerhalb des Themes) verschieden ausgegeben wird. Ich hätte gern einen Tipp, wo ich da noch suchen kann.

    es kann ja nicht an Buddypress liegen, wenn es doch mit der archive.php korrekt ausgegeben wird. Oder?

  • Ich kenne nicht den Aufbau und Du hast nun zwei Möglichkeiten, entweder Dich weiter wundern oder es untersuchen. Falls letzteres, so würde mich interessieren, bei welchem Punkt Du nicht weiter kamst.

    Und einen Link zur Seite bzw. zu beiden Seiten selbstverständlich in diesem Fall auch nicht vergessen.

    Einmal editiert, zuletzt von Melewo (11. Februar 2014 um 19:52)

  • Hm -
    inzwischen ist mir aufgefallen, daß das gar nicht auf zwei verschiedenen Seiten so passiert sondern auf ein und derselben Seite.

    Es geht um eine Abfage, die bestens funktioniert, wenn man im dafür bestimmten Suchfeld den Ort oder eine Postleitzahl eingibt.

    Wenn man aber keine PLZ oder Ort eingibt ins Suchfeld, dann werden zwar die Ergebnisse auch angezeigt - alle Ergebnisse, weil ja keine Eingrenzung stattfand - aber bei den jeweiligen Orten, die auch bei den Artikeln angezeigt werden, werden die Umlaute in der Raute mit fragezeichen dargestellt.

    der code der mir relevant schien - steht schon oben im eröffnungspost.


    ich hoffe, daß du dich, mit einem googleshortlink begnügst, weil ich hier nicht die Adressse stehen haben will - hier der link
    http://goo.gl/mwLgZe

    Ich hoffe du kannst den Fehler nachvollziehen - oben auf Suche klicken und keine PLZ oder Ort eingeben, dann ist die Ortangabe in den ergebnissen mit diesen Rauten.

    Ich habe einfach gar keine Ahnung wie das sein kann, daß das Ergebnis mal richtig dargestellt wird und mal falsch.

    Vielen Dank für einen Hinweis!!

  • Es betrifft ja nur die Städtenamen und alles andere ist richtig, da werden die wohl nur fehlerhaft gespeichert sein. Wenn ich bei der Ansicht auf Iso wechsle, ist alles andere fehlerhaft und die Städtenamen sind richtig.

    M�nchen

    Einmal editiert, zuletzt von Melewo (11. Februar 2014 um 22:50)

  • vielen Dank!!

    Aaaaber: kannst du mir erläutern, warum die Städtenamen an gleicher Stelle aber richtig angezeigt werden, wenn man z.B. München oder die PLz 81245 ins Suchfeld eingibt??????

  • Zu danken gibt es ja noch nichts. Schaue Dir mal die Beispiele an, darauf solltest Du beim nächsten Kopieren zurückgreifen.

    http://codex.wordpress.org/Class_Reference/wpdb

    Ich bin mal einer anderen Funktion nachgegangen, ging nicht um Daten aus der DB, doch da fand schon ein Abgleich statt ob UTF-8 oder nicht. Deshalb könnte schon ein Unterschied zwischen den Abfragen bestehen.

  • Mein Dank gilt der Tatsache, daß du dir überhaupt die Zeit nimmst, dir die Seite anzuschauen und mir zu antworten. Das stärkt zumindest schonmal die Moral.

    Leider verstehe ich von php und Datenbanken zu wenig, als daß ich deiner Antwort wirklich was entnehmen könnte.

    Ich habe nun gemerkt, daß auf den Seiten, deren Ergebnis richtig angezeigt wurde, oben diese Zeilen standen:

    Zitat

    <?php
    mysql_connect("localhost", "theme", "admin08") or die("Keine Verbindung moeglich");
    mysql_select_db("CL41148_theme-go") or die("Die Datenbank existiert nicht.");
    ?>

    nachdem ich die in die index rein kopiert hab wird auch diort das Ergebnis korrekt angezeigt.

    ABER WARUM?
    Ich sehe dort keine Utf-8 abfrage????

    Kann mir das jemand erklären??

  • Ehrlich gesagt, ich kann es nicht nachvollziehen. Dein Code baut doch nur eine (zusätzliche?) Verbindung zur Datenbank auf

    Zitat

    mysql_connect() - Öffnet eine Verbindung zu einem MySQL-Server
    mysql_select_db - Auswahl einer MySQL Datenbank


    und ist veraltet:

    Zitat

    This extension is deprecated as of PHP 5.5.0, and will be removed in the future.


    Der interne Charset (Zeichensatz) hat sich aber von ISO nach UTF-8 bei einigen PHP-Funktionen der neueren Generation verändert. Welche Funktionen es im Einzelnen betrifft und wo eine Korrektur von Scripts erforderlich werden könnte, muss ich erst einmal selbst beobachten, da ich bisher noch kein PHP 5.5 verwende.

  • Ich sehe dort keine Utf-8 abfrage????


    Davon kannst Du auch nichts sehen, weil die PHP Funktionen in C geschrieben und mit Hilfe eines Compilers in eine Exe verwandelt werden und um die WP Funktionen auch nur annähernd zu verstehen, müsstest Du sehr tief in die Core Dateien eintauchen. Beispiel aus der wp-includes/formatting.php:

    PHP
    function esc_html( $text ) {
        $safe_text = wp_check_invalid_utf8( $text );
        ...
        ...
    }
  • So wie ich das sehe liegts in der Schriftart und ist korrekt:
    Bei Großschreibung werden alle Zeichen in der gleichen Höhe angezeigt, d.h. beim Ü sind die .. innerhalb der Zeichenhöhe.

Jetzt mitmachen!

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