php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2009

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 20.07.2009, 12:58  
Neuer Benutzer
 
Registriert seit: 06.05.2008
Beiträge: 29
japsa befindet sich auf einem aufstrebenden Ast
Standard Eine Suche mit UTF8 - Zeichen ???

Hallo,

ich habe eine DB, die Ausgabe der Webseite und die einzelnen Felder der DB alles auf UTF8 - Einträge in die DB mit Umlauten & die Ausgabe der Umlaute auf der Webseite funktioniert super als in der DB steht zB:

Schönbrunn = in der DB: Schönbrunn = Ausgabe wieder Schönbrunn
Dänemark = in der DB: Dänemark = Ausgabe wieder Dänemark

Aber wie baue ich das in meiner Suchcode ein, so dass jetzt auch die Einträge mit Schönbrunn etc. berücksichtigt werden ?

Hier hab ich mal meinen completten Code, welchen ich Einsetze:

PHP-Code:
<?php
session_start
();
if (
array_key_exists('formularSent'$_POST)) {
    
$_SESSION $_POST;
}
// Nur bei: Formular wird abgeschickt (Suche)
if ($_SESSION['formularSent'] == 1)
{
 
 
extract($_SESSIONEXTR_OVERWRITE);
 
 if(
$aURL[2]=='Bundesland'){  $Bundesland=$aURL[3];}
 if(
$aURL[2]=='bundesland'){  $Bundesland=$aURL[3];}
 if(
$aURL[2]=='Land'){  $Land=$aURL[3];}
 if(
$aURL[2]=='land'){  $Land=$aURL[3];}
 
$Land str_replace("ä""ae"$Land );
 
$Land str_replace("ü""ue"$Land );
 
$Land str_replace("ö""oe"$Land );
 
$Land str_replace("ß""ss"$Land );
 
$Kontinent str_replace("ä""ae"$Kontinent );
 
$Kontinent str_replace("ü""ue"$Kontinent );
 
$Kontinent str_replace("ö""oe"$Kontinent );
 
$Kontinent str_replace("ß""ss"$Kontinent );
 
$Region str_replace("ä""ae"$Region );
 
$Region str_replace("ü""ue"$Region );
 
$Region str_replace("ö""oe"$Region );
 
$Region str_replace("ß""ss"$Region );
 
$Bundesland str_replace("ä""ae"$Bundesland );
 
$Bundesland str_replace("ü""ue"$Bundesland );
 
$Bundesland str_replace("ö""oe"$Bundesland );
 
$Bundesland str_replace("ß""ss"$Bundesland );
 
$Reiseziel str_replace("ä""ae"$Reiseziel );
 
$Reiseziel str_replace("ü""ue"$Reiseziel );
 
$Reiseziel str_replace("ö""oe"$Reiseziel );
 
$Reiseziel str_replace("ß""ss"$Reiseziel );
 
$Ort str_replace("ä""ae"$Ort );
 
$Ort str_replace("ü""ue"$Ort );
 
$Ort str_replace("ö""oe"$Ort );
 
$Ort str_replace("ß""ss"$Ort );
 
$Unterkunft str_replace("ä""ae"$Unterkunft );
 
$Unterkunft str_replace("ü""ue"$Unterkunft );
 
$Unterkunft str_replace("ö""oe"$Unterkunft );
 
$Unterkunft str_replace("ß""ss"$Unterkunft );

 
 
 
$query ="SELECT * FROM `ferienwohnung` WHERE (Status=1 ";
 if (!empty(
$Kontinent)) {$query.= "AND Kontinent LIKE '%".$Kontinent."%' ";}
 if (!empty(
$Land)) {$query.= "AND Land LIKE '%".$Land."%' ";}
 if (!empty(
$Bundesland)) {$query.= "AND Bundesland LIKE '%".$Bundesland."%' ";}
 if (!empty(
$Region)) {$query.= "AND Region LIKE '%".$Region."%' ";}
 if (!empty(
$Reiseziel)) {$query.= "AND Reiseziel LIKE '%".$Reiseziel."%' ";}
 if (!empty(
$Ort)) {$query.= "AND Ort LIKE '%".$Ort."%' ";}
 if (!empty(
$Unterkunft)) {$query.= "AND Unterkunft LIKE '%".$Unterkunft."%' ";}
 if (!empty(
$Personen)) {$query.= "AND Personen >= '".$Personen."' ";}
 if (!empty(
$Objekt_ID)) {$query.= "AND Objekt_ID LIKE '%".$Objekt_ID."%' ";}
 if (!empty(
$Kinderfreundlich)) {$query.= "AND Kinderfreundlich = '1' ";}
 if (!empty(
$Behindertengerecht)) {$query.= "AND Behindertengerecht = '1' ";}
 if (!empty(
$Haustiere)) {$query.= "AND Haustiere = '1' ";}
 if (!empty(
$Nichtraucher)) {$query.= "AND Nichtraucher = '1' ";}
 if (!empty(
$Allergikergerecht)) {$query.= "AND Allergikergerecht = '1' ";}
 if (!empty(
$Mountainbiking)) {$query.= "AND Mountainbiking = '1' ";}
 if (!empty(
$Wandern)) {$query.= "AND Wandern = '1' ";}
 if (!empty(
$Bergsteigen)) {$query.= "AND Bergsteigen = '1' ";}
 if (!empty(
$Klettern)) {$query.= "AND Klettern = '1' ";}
 if (!empty(
$Drachenfliegen)) {$query.= "AND Drachenfliegen = '1' ";}
 if (!empty(
$Paragliding)) {$query.= "AND Paragliding = '1' ";}
 if (!empty(
$Wintersport)) {$query.= "AND Wintersport = '1' ";}
 if (!empty(
$Skigebiet)) {$query.= "AND Skigebiet = '1' ";}
 if (!empty(
$Eishalle)) {$query.= "AND Eishalle = '1' ";}
 if (!empty(
$Wassersport)) {$query.= "AND Wassersport = '1' ";}
 if (!empty(
$Rafting)) {$query.= "AND Rafting = '1' ";}
 if (!empty(
$Kanu)) {$query.= "AND Kanu = '1' ";}
 if (!empty(
$Schwimmbad)) {$query.= "AND Schwimmbad = '1' ";}
 if (!empty(
$Hallenbad)) {$query.= "AND Hallenbad = '1' ";}
 if (!empty(
$Thermalbad)) {$query.= "AND Thermalbad = '1' ";}
 if (!empty(
$Wasserski)) {$query.= "AND Wasserski = '1' ";}
 if (!empty(
$Tauchen)) {$query.= "AND Tauchen = '1' ";}
 if (!empty(
$Surfen)) {$query.= "AND Surfen = '1' ";}
 if (!empty(
$Golf)) {$query.= "AND Golf='1' ";}
 if (!empty(
$Tennis)) {$query.= "AND Tennis = '1' ";}
 if (!empty(
$Reiten)) {$query.= "AND Reiten = '1' ";}
 if (!empty(
$Freizeitpark)) {$query.= "AND Freizeitpark = '1' ";}
 if (!empty(
$Disco)) {$query.= "AND Disco = '1' ";}
 if (!empty(
$Kartbahn)) {$query.= "AND Kartbahn = '1' ";}
 if (!empty(
$Zoo)) {$query.= "AND Zoo = '1' ";}
 
 
$query.= ")";
 
$select mysql_query($query);
 
$reihen mysql_num_rows($select);
 
$total mysql_num_rows($select);
 
$entries_per_page 10;
 
$amount_pages ceil($total $entries_per_page);
 
    for (
$i=0$i<count($suchkriterien); $i++) {
        if (
strpos($suchkriterien[$i], "page") === 0) {$page intval(substr($suchkriterien[$i], 4));}
    }
 
 if (!empty(
$page)) {
  
// Ist der GET-Parameter zwischen 1 und MAX-Page ?
  // Wenn nein, dann setzen wir ihn dazwischen
  
$page = ($page 1) ? $page;
  
$page = ($page $amount_pages) ? $amount_pages $page;
 }
 
// Wenn keine Seite definiert wurde, ist $page = 1
 
else
 {
  
$page 1;
 }
 
$start = ($page 1) * $entries_per_page;
 
$limit ' LIMIT '.$start.', '.$entries_per_page;
 
$paginationSQL mysql_query($query $limit);
 
$paginationLink $config['domain'];
    for (
$i=0$i<count($suchkriterien); $i++) {
        
// Keine Seitenangabe
        
if (strpos($suchkriterien[$i], "page") !== 0) {$paginationLink .= "/".$suchkriterien[$i];}
    }
 if (
$total 0)
 {
  
$arrSuchtreffer = array();
  
$i 0;
  while (
$ausgabe mysql_fetch_assoc($paginationSQL))
  {
   
$arrSuchtreffer[$i] = $ausgabe;
   
$i++;
  }
  
$smarty->assign('arrSuchtreffer'$arrSuchtreffer);
 }
 
// F?r die Templatedatei - welcher Teil soll dargestellt werden: Formular oder Suchergebnis
 
$smarty->assign('aURL'$aURL);
 
// Anzahl der Suchtreffer
 
$smarty->assign('total'$total);
}
// Wenn page in der linken H?lfter der ersten 10 Seiten liegt, werden die ersten 10 Seiten angezeigt
$arrLinks = array();
if (
$page 5)
{
 
$for_limit = ($page 9) ? $amount_pages-9;
 
$i 0;
 for (
$i$i <= $for_limit$i++)
 {
  
$left_number = ($i 10) + 1;
  
// Seite = se
  
$arrLinks[$i] = (($i+1) != $page) ? '<a href="'.str_replace(' ','+',$paginationLink).'/page'.($i+1).'">'.$left_number.'-'.($left_number+9).'</a>':$left_number.'-'.($left_number+9);
 }
}
else if (
$page >= && $page < ($amount_pages 5))
{
 
$i1 $page 3;
 
$i2 $page 1;
 
$for_limit $page 3;
 for (
$i1$i1 $page$i1++)
 {
  
$left_number = ($i1 10) + 1;
  
// Seite = se
  
$arrLinks[] = (($i1+1) != $page) ? '<a href="'.$paginationLink.'/page'.($i1+1).'">'.$left_number.'-'.($left_number+9).'</a>':$left_number.'-'.($left_number+9);
 }
 for (
$i2$i2 $for_limit$i2++)
 {
  
$left_number = ($i2 10) + 1;
  
// Seite = se
  
$arrLinks[] = (($i2+1) != $page) ? '<a href="'.$paginationLink.'/page'.($i2+1).'">'.$left_number.'-'.($left_number+9).'</a>':$left_number.'-'.($left_number+9);
 }
}
else if (
$page >= ($amount_pages 5))
{
 
$i $page-4;
 for (
$i$i <= $amount_pages$i++)
 {
  
$left_number = ($i 10) + 1;
  
// Seite = se
  
$arrLinks[$i] = (($i+1) != $page) ? '<a href="'.$paginationLink.'/page'.($i+1).'">'.$left_number.'-'.($left_number+9).'</a>':$left_number.'-'.($left_number+9);
 }
}
# echo("<!--andi".print_r($urlParams,true)."-->");
$smarty->assign('bn_first_data'$urlParams);
$smarty->assign('arrLinks'$arrLinks);
// TPL-Datei auslesen
$left .= $smarty->fetch('suche/suche.tpl');
?>
Danke & Gruß Dirk
japsa ist offline  
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 20.07.2009, 13:01  
Erfahrener Benutzer
 
Benutzerbild von boolean
 
Registriert seit: 06.10.2008
Beiträge: 257
PHP-Kenntnisse:
Fortgeschritten
boolean ist zur Zeit noch ein unbeschriebenes Blatt
boolean eine Nachricht über Skype™ schicken
Standard

Sind die Codierungen wirklich die selben?
boolean ist offline  
Alt 20.07.2009, 13:06  
Erfahrener Benutzer
 
Benutzerbild von Squall
 
Registriert seit: 19.03.2009
Beiträge: 539
PHP-Kenntnisse:
Fortgeschritten
Squall befindet sich auf einem aufstrebenden Ast
Standard

Wenn in deiner DB "Schönbrunn" steht ist das ein anzeichen dafür das deine DB nicht UTF-8 Codiert ist.
Squall ist offline  
Alt 20.07.2009, 13:18  
Neuer Benutzer
 
Registriert seit: 06.05.2008
Beiträge: 29
japsa befindet sich auf einem aufstrebenden Ast
Standard

Mmmm was wäre denn dann Thüringen das für eine Codierung dann wenn nicht UTF8 ?

Ich habe erst gesern alles so auf UTF8 umgestellt (müssen):

DB = UTF-8 Unicode ( utf8 )
Zeichensatz / Kollation der MySQL-Verbindung = utf8_generali_ci
Kollation der einzellen Felder = utf8_generali_ci
Headerausgabe: <metahttp-equiv="content-type" content="text/html;charset=utf-8">
.htaccess = AddDefaultCharset utf-8 / AddCharset utf-8 .php .css

Wenn ich jetzt ein Wort mit ü,ä,ö in die DB eintragen lasse, dann steht es so zB für ü = ü in der DB!

Gruß Dirk

Geändert von japsa (20.07.2009 um 13:22 Uhr).
japsa ist offline  
Alt 20.07.2009, 13:25  
Erfahrener Benutzer
 
Benutzerbild von boolean
 
Registriert seit: 06.10.2008
Beiträge: 257
PHP-Kenntnisse:
Fortgeschritten
boolean ist zur Zeit noch ein unbeschriebenes Blatt
boolean eine Nachricht über Skype™ schicken
Standard

Du kannst beim eröffnen der Connection ein Charset deklarieren - mehr Infos gibts im Manual MySql.
boolean ist offline  
Alt 20.07.2009, 14:51  
Erfahrener Benutzer
 
Registriert seit: 28.05.2008
Beiträge: 2.094
PHP-Kenntnisse:
Fortgeschritten
rudygotya ist einfach richtig nettrudygotya ist einfach richtig nettrudygotya ist einfach richtig nettrudygotya ist einfach richtig nettrudygotya ist einfach richtig nett
Standard

Die Form tags hast du mit angepaßt?
Code:
<form accept-charset="utf-8" method=…
__________________
++++ Wieder einer ins Netz gegangen: Phishers Fritz zufrieden ++++
Blog
rudygotya ist offline  
Alt 20.07.2009, 14:56  
Neuer Benutzer
 
Registriert seit: 06.05.2008
Beiträge: 29
japsa befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von rudygotya Beitrag anzeigen
Die Form tags hast du mit angepaßt?
Code:
<form accept-charset="utf-8" method=…
Ja hab - aber erst Heute, ich muß erst nochmals einen Testeintrag machen, wenn ich weiß, wo dies hier

PHP-Code:
mysql_query("SET NAMES 'utf8' COLLATE 'utf8_general_ci'"


Das hab ich nähmlich vergessen
Haab ich von hier bekommen: http://www.php.de/html-usability-und...nkungen-2.html (UTF8 - Umlautproblem mit Verlinkungen ?)

Gruß Dirk
japsa ist offline  
Alt 20.07.2009, 15:04  
Erfahrener Benutzer
 
Registriert seit: 28.05.2008
Beiträge: 2.094
PHP-Kenntnisse:
Fortgeschritten
rudygotya ist einfach richtig nettrudygotya ist einfach richtig nettrudygotya ist einfach richtig nettrudygotya ist einfach richtig nettrudygotya ist einfach richtig nett
Standard

Benutz phpmyadmin und schau dir da die Kollationen an Hast du das nicht schon umgestellt??!
__________________
++++ Wieder einer ins Netz gegangen: Phishers Fritz zufrieden ++++
Blog
rudygotya ist offline  
Alt 20.07.2009, 15:20  
Neuer Benutzer
 
Registriert seit: 06.05.2008
Beiträge: 29
japsa befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von rudygotya Beitrag anzeigen
Benutz phpmyadmin und schau dir da die Kollationen an Hast du das nicht schon umgestellt??!
Ja stimmt
Bin schn ganz durcheinander -trotz all dem ist das Problem mit meiner Suche noch nicht gelöst?
japsa ist offline  
Alt 20.07.2009, 17:19  
Neuer Benutzer
 
Registriert seit: 06.05.2008
Beiträge: 29
japsa befindet sich auf einem aufstrebenden Ast
Standard

Hallo,

hat denn Niemand eine Idee, wie ich obiges Suchformular anpassen kann, so dass die Einträge in der DB auch mit zB: ü funktioniert ?

Danke & Gruß Dirk
japsa ist offline  
 


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
eine Suche definieren Tyrra PHP Tipps 2009 14 10.07.2009 09:39
phpMyAdmin Fehler pfump Datenbanken 8 07.06.2009 11:11
komische zeichen in phpmyadmin utf8 slave1970 Datenbanken 1 31.01.2009 19:56
utf8 Problem (Daten aus DB auslesen) go1denboy PHP Tipps 2008 1 23.09.2008 12:19
Benutze Zeichen anzeigen! cokotech Datenbanken 3 06.06.2008 18:24
erste 7 zeichen überprüfen aircrash PHP Tipps 2008 1 28.09.2007 09:11
UTF8 Dump erzeugt nach import in UTF8 kod DB falsche Umlaute Carino Datenbanken 18 07.05.2007 23:49
Leer- und META Zeichen verhindern korrekte suche !? madSoul Datenbanken 9 22.03.2007 14:10
Verständnisprobleme bei Utf8 > Character Set > Collate erna Datenbanken 4 20.03.2007 14:08
[Erledigt] Erweiterung der Suche PHP Tipps 2007 2 01.12.2005 19:30
mal wieder eine suche lomtas Datenbanken 0 12.07.2005 11:03
[Erledigt] UTF8 und MySQL 4.0 Datenbanken 5 18.04.2005 21:31
Suche die Notation für dieses Zeichen: # suendesizer HTML, Usability und Barrierefreiheit 2 17.03.2005 11:34
[Erledigt] nur x zeichen zeigen PHP Tipps 2004-2 2 17.12.2004 15:10

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
php mysql suche mit utf, array_key_exists utf8, utf8 suche, php suchmaschine mysql utf, ü \ü\ htaccess, suchformular utf8, php if ü, php ausgabe utf8 zeichen, mysql utf8 like suche like umlauten ä and ö, php utf 8 oe ae ue, javascript suchbox utf 8, suchanfrage mit utf-8, php array_key_exists utf8, http://www.php.de/php-einsteiger/57267-eine-suche-mit-utf8-zeichen.html, php array_key_exists umlauts, javascript utf8 zeichensatz, $ausgabe utf-8 php, phpmyadmin zeichensatz dänische umlaute, php array_key_exists utf 8, strpos suchkriterien php

Alle Zeitangaben in WEZ +2. Es ist jetzt 16:22 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum