Webstatt.org - Community seit 2006 - 2012 (2024?)

Keine Umlaute

Avatar user-181
02.04.2009 21: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 />";
}

...dank Prophet-Design hab ich hergefunden...
Avatar user-159
03.04.2009 09:52

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

Avatar user-181
03.04.2009 11:13

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

Noch eine Idee ?

Grüße

...dank Prophet-Design hab ich hergefunden...
user-303
03.04.2009 14: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?

Avatar user-181
03.04.2009 15:21

nach der Umstellung nicht mehr,
davor ja

...dank Prophet-Design hab ich hergefunden...
user-303
03.04.2009 16:14

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

Avatar user-181
06.04.2009 07:44

ja das funktioniert

...dank Prophet-Design hab ich hergefunden...
user-220
06.04.2009 13: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..

Avatar user-181
06.04.2009 17: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"zwinkern;
if($_POST["los"] == "ok"zwinkern {
$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'zwinkern";
$eintragen = mysql_query($eintrag);
echo "<br /><br /><font color=\"#ff0000\"><b>Eintrag erfolgreich hinzugefügt!</b></font>";
}
mysql_close($verbindung);
?>

...dank Prophet-Design hab ich hergefunden...
Avatar user-300
08.04.2009 14:07

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

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

Avatar user-181
13.05.2009 21:06

irgendwie mache ich etwas falsch
wenn ich folgendes mache:

<?php
$verbindung = mysql_connect("localhost", "root", ""zwinkern or die ("Keine Verbindung m&ouml;glich"zwinkern; //Verbindung herstellen
mysql_select_db("hwc"zwinkern or die ("Die Datenbank existiert nicht"zwinkern; //Verbindung zur Datenbank
$db->query("SET NAMES 'utf8'"zwinkern;
?>


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

...dank Prophet-Design hab ich hergefunden...
user-203
13.05.2009 21:33

mysql_query("SET NAMES 'utf8'",$verbindung)

sollte in dem fall helfen.
meist hat man halt eine Klasse $db, die dann alles kann...

Denkt dran, Kinder auf dem Rücksitz verursachen Unfälle, Unfälle auf dem Rücksitz verursachen Kinder.