Willkommen in der Webstatt
User-1 am 02.04.09 23:03

Hallo,
Ich habe ein Problem.
Es werden keine Umlaute oder sonderzeichen direkt übernommen in die MySQL DB. Hat der wer spontan einen Tipp ?

Strucktur vllt. hilft es ja
CREATE TABLE IF NOT EXISTS `news` (
`id` int(11) NOT NULL auto_increment,
`thema` varchar(50) default NULL,
`image` text,
`news` text,
`autor` varchar(50) default NULL,
`datum` datetime default NULL,
PRIMARY KEY (`id`)
)


So lass ich es Anzeigen:

###Abfrage
$abfrage = "SELECT id, thema, image, news, autor, datum FROM news WHERE id = '$teile[1]'";
$ergebnis = mysql_query($abfrage);
###Anzeige
while( $row = mysql_fetch_object($ergebnis) ) {
$a_datum = explode("-",$row->datum);
$b_datum = explode(" ",$row->datum);
$a_datum[2] = substr($a_datum[2], 0, 2);
$b_datum = substr($b_datum[1], 0, 5);
$new_datum = $a_datum[2].".".$a_datum[1].".".$a_datum[0];
$text = str_replace("\n","<br />",$row->news );
if( $row->image == "" ) {
$image = "";
}elseif( $row->image == "http://" ) {
$image = "";
}else{
$image = "<img src=\"".$row->image."\" border=\"0\" style=\"float: left;\">";
}
##################################################################################
echo "<b>&nbsp;&nbsp;".$row->thema."</b><hr />";
echo $image;
echo $text;
echo "<hr />&nbsp;&nbsp;<font size=\"1\">Verfasst von ".$row->autor." am $new_datum um $b_datum Uhr.</font>";
echo "<br />";
}

netcup.de Warum gibt es hier Werbung?
User-2 am 03.04.09 11:52

stell doch mal den Zeichensatz der Tabelle auf UTF-8 dann sollte das eigentlich gehen.. bzw. latin1 sollte das auch können.

User-1 am 03.04.09 13:13

ich hab es jetzt auf latin1_german1_ci umgestellt... Zeichen werden jetzt dargestellt, jedoch keine Ü Ä Ö's ...

Noch eine Idee ?

Grüße

User-3 am 03.04.09 16:09

Hallo,

die Hauptfrage stellt sich erst einmal, wo genau der Zeichensatz nicht stimmt. Funktionieren denn Umlaute, wenn du sie ohne Datenbank ausgibst?
Werden die Umlaute in phpMyAdmin dargestellt?

User-1 am 03.04.09 17:21

nach der Umstellung nicht mehr,
davor ja

User-3 am 03.04.09 18:14

und ein einfaches "echo 'äöü';" funktioniert?

User-1 am 06.04.09 09:44

ja das funktioniert

User-4 am 06.04.09 15:56

Eine andere Frage - wie sehen denn die Umlaute in der Datenbank aus, wenn Du sie hinzufügst?! Machst Du es per phpMyAdmin direkt, oder über die mysql- Funktion in der PHP- Datei selbst?, wenn ja - wäre es vllt. hilfreich, wenn Du diese mal reinstellen würdest..

User-1 am 06.04.09 19:15

Ich machs über PHP:

<form name="Formular" method="post" action="<?php $PHP_SELF; ?>">
&Uuml;berschrift:<br />
<input type="text" name="ueberschrift" size="35" maxlength="50"><br />
Text:<br />
<textarea name="text" cols="45" rows="10"></textarea><br />
News Bild (URL):<br />
<input type="text" name="image" size="35" maxlength="50" value="http://"><br />
Autor:<br />
<input type="text" name="autor" size="21" maxlength="20"><br />
<input type="text" name="los" size="4" maxlength="4" value="ok" style="display: none;">
<input type="submit" name="gesendet" value="Absenden"> *
<input type="reset">
</form>

<?php
include("mysql_connect.php");
if($_POST["los"] == "ok") {
$timestamp = time();
$date = date("d.m.Y",$timestamp);
$zeit = date("H:i",$timestamp);
$a_datum = explode(".",$date);
$datum = $a_datum[2]."-".$a_datum[1]."-".$a_datum[0]." ".$zeit.":00";
$ueberschrift = $_POST["ueberschrift"];
$text = $_POST["text"];
$image = $_POST["image"];
$autor = $_POST["autor"];

$eintrag = "INSERT INTO news (thema, image, news, autor, datum) VALUES ('$ueberschrift', '$image', '$text', '$autor', '$datum')";
$eintragen = mysql_query($eintrag);
echo "<br /><br /><font color=\"#ff0000\"><b>Eintrag erfolgreich hinzugefügt!</b></font>";
}
mysql_close($verbindung);
?>

User-5 am 08.04.09 16:07

Viele Zeichenkodierungsprobleme kannst du beheben, wenn du direkt nach dem der Datenbank-Verbindung folgendes "Abfrage" machst:

$db->query("SET NAMES 'utf8'");

User-1 am 13.05.09 23:06

irgendwie mache ich etwas falsch
wenn ich folgendes mache:
<?php
$verbindung = mysql_connect("localhost", "root", "") or die ("Keine Verbindung m&ouml;glich"); //Verbindung herstellen
mysql_select_db("hwc") or die ("Die Datenbank existiert nicht"); //Verbindung zur Datenbank
$db->query("SET NAMES 'utf8'");
?>


zeigt er mir eine fehlermeldung an... klar ist mir dass das ding halt nicht $db heißen soll...
was kommt da nu hin?! $verbindung?

User-6 am 13.05.09 23:33

mysql_query("SET NAMES 'utf8'",$verbindung)
sollte in dem fall helfen.
meist hat man halt eine Klasse $db, die dann alles kann...

Creative Commons Lizenzvertrag
Alle Inhalte des Webstatt-Archivs stehen unter einer Creative Commons Namensnennung - Weitergabe unter gleichen Bedingungen 3.0 Unported Lizenz.

Impressum & Kontakt