Du befindest Dich im Archiv vom ABAKUS Online Marketing Forum. Hier kannst Du Dich für das Forum mit den aktuellen Beiträgen registrieren.

SQL doppelte Einträge

Ajax, Hijax, Microformats, RDF, Markup, HTML, PHP, CSS, MySQL, htaccess, robots.txt, CGI, Java, Javascript usw.
Neues Thema Antworten
Pretender
PostRank 9
PostRank 9
Beiträge: 1081
Registriert: 22.04.2004, 14:44
Wohnort: Naumburg

Beitrag von Pretender » 02.04.2006, 17:46

Moin Moin,

ich möchte alle Suchanfragen in eine Datenbank schreiben. Schon vorhandene Suchworte sollen dabei nicht mitgelogt werden.

Ich habe daher in der SQL ein Tabelle angelegt mit einer Spalte
"id"
und eine Spalte Names
"suche"
Für die Spalte "suche" habe ich "UNIQUE " aktiviert, damit keine doppelten Einträge entstehen..... dachte ich.

Aber irgendwie logt die DB trotzdem alle Einträge mit Umlauten wie ö ä ü mit indem Sie aus diesen Suchworten wie z.B.

aus:
Mütze
wird:
Mütze

oder viele andere Variationen.
Hier ist einmal der Code:

Code: Alles auswählen

$query = "INSERT INTO log "
."(suche) "
."VALUES "
."('$suche')";
$dummy = mysql_query($query);
Suchworte ohne Umlaute werden nicht mitgeolgt wenn Sie schon vorhanden sind.

Kann mir da eventuell jemand helfen?

Ich hoffe ich habe mich verständlich ausgedrückt.
Vielen Dank schonmal

Anzeige von ABAKUS

von Anzeige von ABAKUS »

SEO Consulting bei ABAKUS Internet Marketing
Erfahrung seit 2002
  • persönliche Betreuung
  • individuelle Beratung
  • kompetente Umsetzung

Jetzt anfragen: 0511 / 300325-0.


Anonymous

Beitrag von Anonymous » 02.04.2006, 18:39

die Ursache, ist dass Suchmaschinen teilweise auch schon UTF-8 verwenden, dann bekommst du eben einen UTF-8 String...

die Lösung wäre einfach jeden String vorher mit der php funktion utf8_decode() umwandeln... falls der string schon in ISO 8859-1 codiert ist, sollte es nichts ausmachen, und die UTF-8 Strings werden in ISO 8859-1 umgewandelt....

könntest natürlich jeden String auch vorher prüfen, ob er umgewandelt werden muss...

Pretender
PostRank 9
PostRank 9
Beiträge: 1081
Registriert: 22.04.2004, 14:44
Wohnort: Naumburg

Beitrag von Pretender » 02.04.2006, 19:32

Code: Alles auswählen

$suche = html_entity_decode(utf8_decode($suche));
$query = "INSERT INTO log "
."(suche) "
."VALUES "
."('$suche')";
$dummy = mysql_query($query);
so geht es leider auch nicht.
Hier macht er aus der "Mütze" eine "m%FCtze"

Anonymous

Beitrag von Anonymous » 02.04.2006, 20:08

dann musste eben vorher prüfen ob Umlaute im utf-8 Encoding vorliegen und dann ggf. umwandeln...

Code: Alles auswählen

$suchstring="/[".utf8_encode("äüöÄÜÖ")."]+/";
if (preg_match($suchstring,$suche))
{
$suche=utf8_decode($suche);
}
$suche=html_entity_decode($suche);

Pretender
PostRank 9
PostRank 9
Beiträge: 1081
Registriert: 22.04.2004, 14:44
Wohnort: Naumburg

Beitrag von Pretender » 02.04.2006, 20:33

ohhh ja :o

das sieht gut aus!

THX net(t)worker

Ich teste es mal noch etwas länger mit allen möglich aufrufen, aber es sieht sieht sehr gut aus.

Antworten
  • Vergleichbare Themen
    Antworten
    Zugriffe
    Letzter Beitrag