| PHP Developer Forum Hier habt ihr die Möglichkeit, eure Skriptprobleme mit anderen Anwendern zu diskutieren. Seid so fair und beantwortet auch Fragen von anderen Anwendern. Dieses Forum ist sowohl für ANFÄNGER als auch für PHP-Profis! Post your PHP questions here! |
 |
|

13-06-2010, 20:27
|
|
einfacheruser
Registrierter Benutzer
|
|
Registriert seit: Jun 2010
Beiträge: 19
|
|
Utf-8 geht nicht
Was ist das ?
Das ist ein script das über die google maps api zu einer Koodinate informationen abfragt und in einer Datenbank einträgt.
Mein Problem:
Da sind immer Zeichensatz fehler in der Datenbank aber ich hab eigentlich alles mit utf-8 kodiert ! auch die Datenbank(die Tabellen).
Hoffe auf schnelle hilfe
/einfacheruser
PHP-Code:
<?php header("Content-Type: text/html; charset=utf-8"); include ("../conf.php"); include ("../db.php"); include ("../functions.php"); //require( 'C:\xampplite\htdocs\blog\wp-load.php' ); ?> <script src="http://code.jquery.com/jquery-latest.min.js"></script>
<div class="proc" style=" font-size: 30px;"></div> <div class="prozent">0%</div> <div style="width:100%;height:100%;overflow:auto;"> <?php $result = GetPlaces(); echo '<script> var now = 0; var tick = '. 100 / $result->num_rows.'; </script>'; $i = 0; $null = 0; while ($row = $result->fetch_assoc()) { $i++; echo $row['Name'].'<br>'; $json = loadFile('http://maps.google.com/maps/geo?output=json&oe=utf-8&ll='.$row['x'].'%2C'.$row['y'].'&hl=en'); $orginal_data = $json; $json = json_decode($json, true); echo '<code>'; if ($json) { $sqlinsert = ''; if ($json['Placemark'][0]['address']) { $sqlinsert = $sqlinsert."`adress` = '".$json['Placemark'][0]['address']."',"; }
if ($json['Placemark'][0]['AddressDetails']['Country']['CountryNameCode']) { $sqlinsert= $sqlinsert."`CountryNameCode` = '".$json['Placemark'][0]['AddressDetails']['Country']['CountryNameCode']."',"; } if ($json['Placemark'][0]['AddressDetails']['Country']['CountryName']) { $sqlinsert= $sqlinsert."`CountryName` = '".$json['Placemark'][0]['AddressDetails']['Country']['CountryName']."',"; } $sql =" UPDATE `kitereview`.`places` SET ".$sqlinsert." `ID` = ".$row['ID']." WHERE `places`.`ID` =".$row['ID'].";"; $db->query($sql); echo '<br><a href="http://maps.google.com/maps/geo?output=json&oe=utf-8&ll='.$row['x'].'%2C'.$row['y'].'&hl=de">Json-data</a>'; //var_dump($json); $null++; }else { echo 'keine daten vorhanden'; echo $orginal_data; } echo '</code>'; echo '<br>'; echo '<br>'; /* foreach ($json as $index => $value) { var_dump ($json[$index]); } */ ?> <script> $('.proc').html($('.proc').html() + '|') now = now + tick; $('.prozent').html(Math.round(now) + '%') </script> <?php } ?> <script> alert('Query komplett ! \nes wurden <?php echo $null; ?>/<?php echo $result->num_rows; ?> Datensätze verarbeitet'); </script>
Geändert von einfacheruser (13-06-2010 um 22:07 Uhr)
|

13-06-2010, 20:29
|
wahsaga
 Moderator
|
|
Registriert seit: Sep 2001
Beiträge: 24.486
|
|
Kodierung der Datenbankverbindung auch explizit auf UTF-8 gesetzt?
__________________
I don't believe in rebirth. Actually, I never did in my whole lives.
|

13-06-2010, 20:30
|
|
einfacheruser
Registrierter Benutzer
|
|
Registriert seit: Jun 2010
Beiträge: 19
|
|
wo denn ?
*edit*
ich habs mysql_set_charset('utf8'); ich probiers mal aus
|

13-06-2010, 20:37
|
|
einfacheruser
Registrierter Benutzer
|
|
Registriert seit: Jun 2010
Beiträge: 19
|
|
PHP-Code:
<?php $db = @new MySQLi($db_host, $db_user, $db_pass, $db_db); if (mysqli_connect_errno()) { die('Konnte keine Verbindung zu Datenbank aufbauen, MySQL meldete: '.mysqli_connect_error()); } mysql_set_charset('utf8',$db); ?>
giebt folgenden Fehler aus:
Warning: mysql_set_charset() expects parameter 2 to be resource, object given in db.php on line 6
ich hab doch 2 Parameter ???
|

13-06-2010, 20:43
|
wahsaga
 Moderator
|
|
Registriert seit: Sep 2001
Beiträge: 24.486
|
|
Zitat:
Zitat von einfacheruser
Warning: mysql_set_charset() expects parameter 2 to be resource, object given in db.php on line 6
|
Was gibt es denn daran misszuverstehen?
Zitat:
|
ich hab doch 2 Parameter ???
|
Ja, aber nicht vom richtigen Typ.
__________________
I don't believe in rebirth. Actually, I never did in my whole lives.
|

13-06-2010, 20:51
|
|
einfacheruser
Registrierter Benutzer
|
|
Registriert seit: Jun 2010
Beiträge: 19
|
|
aso -.- danke werde es gleich ausprobieren
ich depp steht auch im manual
|

13-06-2010, 20:55
|
|
h3ll
Registrierter Benutzer
|
|
Registriert seit: Mar 2008
Beiträge: 2.328
|
|
Augen auf im Schneckenhaus. Einmal verwendest du mysqli, ein anderes mal mysql.
|

13-06-2010, 20:59
|
|
einfacheruser
Registrierter Benutzer
|
|
Registriert seit: Jun 2010
Beiträge: 19
|
|
jab habs kapiert 
aber es geht immer noch nicht ^^ in der Datenbank steht immer noch zb.
Zitat:
|
25704 Elpersbüttel, Germany
|
|

13-06-2010, 21:00
|
|
h3ll
Registrierter Benutzer
|
|
Registriert seit: Mar 2008
Beiträge: 2.328
|
|
Dann solltest du die Daten in der Datenbank korrigieren.
|

13-06-2010, 21:06
|
|
einfacheruser
Registrierter Benutzer
|
|
Registriert seit: Jun 2010
Beiträge: 19
|
|
das hat das Script vor ^^
vieleicht sollt ich ne Funktion schreiben der alle Umlaute ersetzt aber das mit sämtlich sprachen auf der Welt zu machen ist ein bischen anstrengend xD
|

13-06-2010, 21:16
|
|
h3ll
Registrierter Benutzer
|
|
Registriert seit: Mar 2008
Beiträge: 2.328
|
|
Naja, wenn in einer Datenbank gemischte Zeichensätze sind ist das ziemlich mühseelig bis kaum möglich.
Du solltest die Ursache dafür finden, bevor du jetzt Tage in die Symptombekämpfung steckst und dann 2 Wochen später wieder kaputte Daten in der Datenbank stehen.
|

13-06-2010, 21:40
|
|
einfacheruser
Registrierter Benutzer
|
|
Registriert seit: Jun 2010
Beiträge: 19
|
|
mhh.. ja aber alles ist in UTF-8 sogar die Api
*edit*
Bin einen Schritt nähergekommen anscheinend verträgt diese Funktion die die Api ausließt keine Umlaut:
PHP-Code:
function loadFile($file,$utf8=true) { $fp = fopen($file,"r"); if ($fp) { while(!feof($fp)) { $text = $text.fgets($fp); } fclose($fp); if ($utf8) { return utf8_decode($text); } else { return $text; } } }
Geändert von einfacheruser (13-06-2010 um 21:44 Uhr)
|

13-06-2010, 21:51
|
|
h3ll
Registrierter Benutzer
|
|
Registriert seit: Mar 2008
Beiträge: 2.328
|
|
Warum verwendest du nicht einfach file_get_contents()?
|

13-06-2010, 21:52
|
wahsaga
 Moderator
|
|
Registriert seit: Sep 2001
Beiträge: 24.486
|
|
Zitat:
Zitat von einfacheruser
PHP-Code:
if ($utf8) {
return utf8_decode($text);
}
|
Wenn du mit UTF-8 arbeiten willst - was will das utf8_decode denn dann da ...?
Und auch in deinem vorher geposteten Code fallen solche Stellen auf,
PHP-Code:
$db->query(utf8_encode($sql));
Was soll das, wenn du angeblich „eigentlich alles mit utf-8 kodiert“ hast ...?
__________________
I don't believe in rebirth. Actually, I never did in my whole lives.
|

13-06-2010, 22:06
|
|
einfacheruser
Registrierter Benutzer
|
|
Registriert seit: Jun 2010
Beiträge: 19
|
|
danke ich hab noch ein Fehler gefunden man darf irendwie nich zweimal hintereinander decodieren aber jetzt ist da noch ein Fehler:
Ich hab ein tollen sql query aber wie krieg ich ihn jetzt ohne verluste von umlauten in die Datenbank unter phpmyadmin geht das ...
Code:
UPDATE
`kitereview`.`places`
SET
`adress` = 'Fährhafenstraße 2, 25899 Dagebüll, Germany',
`CountryNameCode` = 'DE',
`CountryName` = 'Germany',
`ID` = 5
WHERE
`places`.`ID` =5;
PHP-Code:
$db->query($sql);
das macht nicht was ich will bestimmt ist es wie immer eine Kleinigkeit ...
@wahsaga
hab ich schon eingesehen und geändert siehe ersten Post
Geändert von einfacheruser (14-06-2010 um 07:25 Uhr)
|
|
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
|
|
|
| Themen-Optionen |
|
|
| Thema bewerten |
|
|
Forumregeln
|
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.
HTML-Code ist aus.
|
|
|
|
PHP News
|