ich bin noch ein Anfänger was die Webprogrammierung angeht,
aber bin mittlerweile zu den Datenbanken vorgestoßen.
Jetzt hab ich allerdings ein großes Problem und hoffe ihr könnt mir da weiterhelfen.
Zunächst einmal, hatte ich am Anfang bei HTML schon Probleme mit den Umlauten gehabt.
Das ganze löste ich mithilfe des Notepad++ indem ich alle meine Dokumente auf UTF-8 konvertiert habe.
Zusätzlich hab ich meinen Metatag geändert:
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
Dann fing ich mit PHP an, dort hatte ich seit der Umstellung meiner Kodierung keine Probleme mehr mit Umlauten.
Alles war bestens, doch jetzt bin ich einen Schritt weiter gegangen und fange mit Datenbanken an.
Ich habe zunächst in meiner Xampp Umgebung über phpmyadmin eine neue Datenbank angelegt, mit der Kollation "utf8_general_ci".
In dieser DB hab ich eine Tabelle im Format "MyISAM" angelegt, welche auch Kollation "utf8_general_ci" bekommen hat.
Diese Tabelle hat 5 Felder, 2 davon reine Zahlenfelder, die anderen 3 sind "varchars" und denen gab ich ebenfalls "utf8_general_ci".
Ich hoffe zunächst einmal das ich so alles richtig erklärt habe und ihr mir folgen könnt.
Das ganze wollte ich nun in meinen PHP Dokumenten auslesen lassen, doch sobald ich mit meinem Browser auf meine Webseite gehe und das Script meine Daten aus der Datenbank ausliest, werden alle Umlaute mit einem "?" markiert.
Ich hab hier ein Bild für euch, wie das ganze aussieht:
Jetzt komme ich zu meiner eigentlichen Frage.
Wo hab ich einen Hänger, bzw. was habe ich falsch gemacht und was muss ich ändern, damit ich eine korrekte Ausgabe mit Umlauten aus meiner Datenbank bekomme?
Damit ihr auch wirklich alles an Infos habt, hab ich hier noch mein kleines Script, das die Daten auslesen soll. Falls sich der Fehler dort versteckt.
<?php $db=mysql_connect("localhost","root","pw"); if ($db==false) { echo "Keine Verbindung möglich!"; exit; } // if mysql_select_db("kneipentest_bastian",$db) or exit ("Datenbank kann nicht geöffnet werden"); //SQL Befehl abschicken $sql = "SELECT * FROM kneipen"; $erg = mysql_query ($sql,$db) or die ("Fehlermeldung = ". mysql_error()); //Ausgabe $anz = mysql_num_rows($erg); mysql_close($db); for ($i=0; $i<$anz;$i=$i+1) { $a=mysql_result($erg, $i, "id"); $b=mysql_result($erg, $i, "Name"); $c=mysql_result($erg, $i, "Art"); $d=mysql_result($erg, $i, "Note"); $e=mysql_result($erg, $i, "Kommentar"); echo "$b - "; echo "$c - "; echo "$d - "; echo "$e <br/>"; } //for ?>
Ich hoffe ihr könnt mir weiterhelfen.
Vielen Dank im voraus.
Mit freundlichen Grüßen
borsTiHD
Dieser Beitrag wurde von borsTiHD bearbeitet: 29. Oktober 2011 - 09:31