PhpMyAdmin - Kollations problem

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • PhpMyAdmin - Kollations problem

    Hallo!
    Also, ich verwende bei meiner Website die UTF-8 Kodierung. Wenn ich von meiner Website Daten in eine Mysql-Tabelle einfüge, so funktioniert das problemlos. Wenn ich allerdings vom PhpMyAdmin Datensätzen mit Umlauten einfüge, wo werden mir diese dann nicht korrekt angezeigt (auf der Website / im PhpMyAdmin bereich werden sie korrekt angezeigt).

    Meine ganzen Tabellen sind mit utf8_unicode_ci kodiert.
    Die PhpMyAdmin-Startseite zeigt mir folgendes :
    Language: de(de-utf-8)
    MySQL-Zeichensatz: UTF-8 Unicode (utf8)
    Zeichensatz / Kollation der MySQL-Verbindung: utf8_unicode_ci

  • #2
    Gibst du deine Website auch im entsprechenden Zeichensatz aus?
    Für alle die Fehler suchen, gibts gratis tolle Debuggingmöglichkeiten:
    var_dump(), print_r(), debug_backtrace und echo.
    Außerdem gibt es für unsere Neueinsteiger ein hervorragendes PHP Tutorial zu PHP 4 und PHP 5 (OOP)
    Es heißt $array['index'] und nicht $array[index]! Und nein, das ist nicht egal!
    Dieses Thema lesen, um Ärger im Forum und verzögerte Hilfen zu vermeiden.

    Kommentar


    • #3
      Ich habe im Headbereich
      <meta http-equiv="content-type" content="text/html; charset=UTF-8" />
      definiert.
      Alle einträge, welche ich über die Webseite mache, werden mir dann auch korrekt auf der Website angezeigt.
      Die Einträge, welche ich über den PhpMyAdmin bereich mache, werden mir auf der Webseite nicht korrekt dargestellt. Im PhpMyAdmin breich allerdings schon.

      Kommentar


      • #4
        SET NAMES wohl nicht ausgeführt...

        Ein netter Guide zum übersichtlichen Schreiben von PHP/MySQL-Code!

        bei Klammersetzung bevorzuge ich jedoch die JavaCoding-Standards
        Wie man Fragen richtig stellt

        Kommentar


        • #5
          Original geschrieben von nobody2
          Ich habe im Headbereich
          <meta http-equiv="content-type" content="text/html; charset=UTF-8" />
          definiert.
          Alle einträge, welche ich über die Webseite mache, werden mir dann auch korrekt auf der Website angezeigt.
          Die Einträge, welche ich über den PhpMyAdmin bereich mache, werden mir auf der Webseite nicht korrekt dargestellt. Im PhpMyAdmin breich allerdings schon.
          ein vernünftige Antwort auf diese Frage bekommst du auch bei PHPMyAdmin - Forum nicht.
          Am bestens machst du eigene formularen oder du ladest letzte Version 2.10.0.2
          all-languages-utf-8-only.zip.
          Slava
          bituniverse.com

          Kommentar


          • #6
            Original geschrieben von Slava
            ein vernünftige Antwort auf diese Frage bekommst du auch bei PHPMyAdmin - Forum nicht.
            Am bestens machst du eigene formularen oder du ladest letzte Version 2.10.0.2
            all-languages-utf-8-only.zip.



            Ich wette 50 Cent, dass PMA vollkommen korrekt funktioniert, der TO nur einfach die Zeichen komplett falsch in die DB einfügt... dass dann die, richtig, eingefügten Zeichen von PMA auf der Website kaputt dargestellt werden ist nicht weiter verwunderlich... und das die, kaputten, Zeichen beim, kaputten, Auslesen wieder richtig erscheinen ist da auch nicht weiter verwunderlich...

            Ein netter Guide zum übersichtlichen Schreiben von PHP/MySQL-Code!

            bei Klammersetzung bevorzuge ich jedoch die JavaCoding-Standards
            Wie man Fragen richtig stellt

            Kommentar


            • #7
              Original geschrieben von ghostgambler



              Ich wette 50 Cent, dass PMA vollkommen korrekt funktioniert, der TO nur einfach die Zeichen komplett falsch in die DB einfügt... dass dann die, richtig,
              Ich hasse es Unrecht zu haben!
              Wohin soll ich 50 Cent überweisen?

              @nobody2
              mysql_query("SET NAMES 'utf8'") or die(mysql_error());
              als erste Mysql abfrage ausführen.
              die Daten,die schon gespechert sind, muss man natürlich verändern.
              Ich habe leider kein befehl dafür gefunden, aber wenn man alte daten ohne SET NAMES in eine datei schreibt.
              und danach mit SET NAMES wieder einfügt, dann muss die problem gelöst werden.

              1) in datei einfügen
              PHP-Code:
              $fp=fopen("dateiname.txt","w");
              $q=mysql_query("SELECT *  FROM tablename ")
                    or die(
              mysql_error());

              while(
              $zeile=mysql_fetch_row($q)){
                
              fwrite($fp,implode("+#-#",$zeile)."\r\n" );

              2)
              jetzt die tabelle leeren (vorher aber besser ein backup erstellen), das kannst du auch mit phpmyadmin machen

              3)wieder einfügen, aber jetzt mit SET names
              PHP-Code:
              mysql_query("SET NAMES 'utf8'")or die(mysql_error());
              $fp=fopen("dateiname.txt","r");
              while (!
              feof($fp)) {
                 
              $buffer trim(fgets($fp8000));
                 if(
              $buffer>20)
                 
              mysql_query("insert into tablename (`felderliste`) values('".implode("','",explode("+#-#",$buffer))."')");
                 echo 
              mysql_error()."<br />";

              Zuletzt geändert von Slava; 13.03.2007, 10:42.
              Slava
              bituniverse.com

              Kommentar


              • #8
                Hallo!
                Danke schonmal.
                Ok, ich habe jetzt als erstes
                mysql_query("SET NAMES 'utf8'") or die(mysql_error());
                ausgefürht.
                Danach habe ich einen Testeintrag eingefüght.
                Die Umlaute werden jetzt im PHPMyAdmin korrekt dargestellt, allerdings auf der Website nicht.
                Was ist mit TO gemeint?

                Kommentar


                • #9
                  thread opener

                  Kommentar


                  • #10
                    Wird die Website auch als UTF8 ausgeliefert?!

                    Ein netter Guide zum übersichtlichen Schreiben von PHP/MySQL-Code!

                    bei Klammersetzung bevorzuge ich jedoch die JavaCoding-Standards
                    Wie man Fragen richtig stellt

                    Kommentar


                    • #11
                      Ja, ich habe nur vergessen, dass ich auch beim SELECT Befehl das SET NAMES angebe. Mit SET NAMES gehts jetzt. thx

                      Kommentar

                      Lädt...
                      X