[GastForen Programmierung/Entwicklung PHP und MySQL datensätze wie z.b. L'Abbaye - backslash oder error

  • Suche
  • Hilfe
  • Lesezeichen
  • Benutzerliste
Themen
Beiträge
Moderatoren
Letzter Beitrag

datensätze wie z.b. L'Abbaye - backslash oder error

jrandi
Beiträge gesamt: 794

11. Jan 2005, 03:33
Beitrag # 1 von 16
Bewertung:
(2962 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo HDS !

Habe eine DB (table) welche westschweizer Gemeinden beinhaltet.

Gebe ich diese ein, wie sie heissen, also L'Abbaye u.a. so kommt beim der abfrage ein sql-error. (das apostrophe gefällt offensichtlich nicht. . .)

ok, also schreibe ich L\'Abbeye in die DB - nur auf dem Pulldown und auf dem Titel (der suchabfrage) erschein dann auch L\'Abbeye . . .
hingegen die abfrage klappt bestens, kein error.

man mache also bei der ausgabe (pulldown für abfrage und titel der abfrage)
$row->nom_commune = ereg_replace("L\'" , "L'" , $row->nom_commune);
$tpl->MxText("titre_commune",$row->nom_commune);

nur geht es leider immer noch nicht. . . ???

allerdings in der stastitik-abfrage, wo verfolgt wird, welche abfragen gemacht werden, ist wieder alles sauber. . .

code :
for($i=0;$i<$lignes;$i++) { // etc. . .
echo mysql_result($query,$i,"commune");

hat jemand eine idée ?? thx für tipps und tricks !
jurg
X

datensätze wie z.b. L'Abbaye - backslash oder error

Kusi
Beiträge gesamt: 1398

11. Jan 2005, 08:31
Beitrag # 2 von 16
Beitrag ID: #135374
Bewertung:
(2962 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo
Schau dir das da mal an:
http://ch2.php.net/...ion.htmlentities.php

Gruss
Kusi

http://www.k-k.ch
Grafik, Layout, Webdesign


als Antwort auf: [#135362]

datensätze wie z.b. L'Abbaye - backslash oder error

ganesh
Beiträge gesamt: 1981

11. Jan 2005, 11:36
Beitrag # 3 von 16
Beitrag ID: #135428
Bewertung:
(2962 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
http://ch2.php.net/...ion.stripslashes.php

Schau auch nach ob magic_quotes on oder off ist
http://ch2.php.net/magic_quotes


als Antwort auf: [#135362]

datensätze wie z.b. L'Abbaye - backslash oder error

oesi50
  
Beiträge gesamt: 2315

11. Jan 2005, 11:44
Beitrag # 4 von 16
Beitrag ID: #135434
Bewertung:
(2962 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
oder das:

http://de.php.net/...ql-escape-string.php

Grüße Oesi
Ich weiß, dass ich nichts weiß... (Sokrates)


als Antwort auf: [#135362]

datensätze wie z.b. L'Abbaye - backslash oder error

jrandi
Beiträge gesamt: 794

11. Jan 2005, 14:17
Beitrag # 5 von 16
Beitrag ID: #135475
Bewertung:
(2962 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Besten Dank für Eure Inputs !

habe es jetzt so gelöst
while($row=mysql_fetch_object($query)) {
$liste_commune{$row->id_commune}= htmlspecialchars(stripslashes($row->nom_commune));
}

Nur eines nervt mich noch :
z.B. die Ortschaft L'Aabbaye wird am Schluss aller "L"-Gemeinden aufgeführt. . . erscheint mir nur halbwegs logisch.

Muss man damit leben oder gibt abhilfe - meiner meinung nach sucht man diese Ortschaft anfangs der "L"-Gemeinden. . .

thx und gruss
jurg


als Antwort auf: [#135362]

datensätze wie z.b. L'Abbaye - backslash oder error

oesi50
  
Beiträge gesamt: 2315

11. Jan 2005, 14:36
Beitrag # 6 von 16
Beitrag ID: #135489
Bewertung:
(2962 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
wie wär's denn mit

SELECT .... ORDER BY ortschaft


Grüße Oesi
Ich weiß, dass ich nichts weiß... (Sokrates)


als Antwort auf: [#135362]

datensätze wie z.b. L'Abbaye - backslash oder error

jrandi
Beiträge gesamt: 794

11. Jan 2005, 15:46
Beitrag # 7 von 16
Beitrag ID: #135503
Bewertung:
(2962 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
natürlich arbeite ich mit ORDER BY, und alles sieht auch ganz schön alphabethisch aus. . . nur die Gemeinden mit "L'" reihen sich unbeeindruckt am schluss von L ein. . .

gruss
jurg


als Antwort auf: [#135362]

datensätze wie z.b. L'Abbaye - backslash oder error

oesi50
  
Beiträge gesamt: 2315

11. Jan 2005, 16:53
Beitrag # 8 von 16
Beitrag ID: #135519
Bewertung:
(2962 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
kann es sein, daß Du den Backslash mitgespeichert hast?

L'Abbaye
LAbbaye
L\'Abbaye


schauen wir uns mal den ASCII Code an

' - 39
A - 65
Z - 91
\ - 92

Damit dürfte alles klar sein.


Grüße Oesi
Ich weiß, dass ich nichts weiß... (Sokrates)


als Antwort auf: [#135362]

datensätze wie z.b. L'Abbaye - backslash oder error

ganesh
Beiträge gesamt: 1981

11. Jan 2005, 16:53
Beitrag # 9 von 16
Beitrag ID: #135520
Bewertung:
(2962 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
// edit:
ooops, ich glaub oesi ist der Sache näher :)
Ich habe eine kleine Test-Tabelle gemacht und alles geht wunderbar...


Vielleicht musst Du explizit irgendwo einen anderen ISO-Sprachcode definieren (für Tabelle, Feld oder ganze DB).

Versuch's mal mit COLLATE

http://dev.mysql.com/...n/Charset-table.html
http://dev.mysql.com/...Charset-collate.html
http://dev.mysql.com/...ollation-effect.html


als Antwort auf: [#135362]
(Dieser Beitrag wurde von ganesh am 11. Jan 2005, 16:57 geändert)

datensätze wie z.b. L'Abbaye - backslash oder error

jrandi
Beiträge gesamt: 794

11. Jan 2005, 17:43
Beitrag # 10 von 16
Beitrag ID: #135535
Bewertung:
(2962 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
@ ganesh : besten dank für die links. sieht interessant aus ;-) kannte ich überhaupt nicht. mal ausprobieren.

@ oesi : àhm, für mich nicht so klar ;-( Ja, der Backslash ist auch in der db abgespeichert - ohne backslash erhalte ich einen sql-error (und wenn ich die error-ausgabe sperre, so kommt einfach kein resultat, obwohl er eins ausspucken müsste).

wenn ich recht verstehe, müsste ich also "L'Abbaye" ohne backslash in die db schreiben - aber wie bringe ich dann sql dazu richtig zu ticken.

so sieht eine der abfragen aus. . .
$sql = "SELECT * FROM csp_commune ORDER BY nom_commune";
$query = sql($sql);
while($row=mysql_fetch_object($query)) {
$liste_commune{$row->id_commune}= htmlspecialchars(stripslashes($row->nom_commune));
}

gruss
jurg


als Antwort auf: [#135362]

datensätze wie z.b. L'Abbaye - backslash oder error

oesi50
  
Beiträge gesamt: 2315

11. Jan 2005, 18:00
Beitrag # 11 von 16
Beitrag ID: #135538
Bewertung:
(2962 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
wir müssen da etwas früher ansetzen. Wie sieht denn der INSERT aus?

Grüße Oesi
Ich weiß, dass ich nichts weiß... (Sokrates)


als Antwort auf: [#135362]

datensätze wie z.b. L'Abbaye - backslash oder error

jrandi
Beiträge gesamt: 794

11. Jan 2005, 18:12
Beitrag # 12 von 16
Beitrag ID: #135548
Bewertung:
(2962 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
gibt es nicht. habe die ortschaften mittels PhpMyAdmin z.t. per csv reingezogen und weitere neue selber eingetöggelt . . .

gruss
jurg


als Antwort auf: [#135362]

datensätze wie z.b. L'Abbaye - backslash oder error

oesi50
  
Beiträge gesamt: 2315

11. Jan 2005, 18:44
Beitrag # 13 von 16
Beitrag ID: #135555
Bewertung:
(2962 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Das kann damit zusammenhängen, daß bei deinem PHP 'magic_quotes' eingeschaltet ist. Damit fügt PHP in alle von außen übergeben Variablen automatisch einen Backslash ein.

es wird dir wohl nicht anderes übrigbleiben, als ein

UPDATE tabelle SET ortschaft=REPLACE(ortschaft, '\\', '');

drüber zu jagen.

(Das ist nur ein 'würg around', eigentlich sollte man das Problem dann noch grundsätzlich klären)

Grüße Oesi
Ich weiß, dass ich nichts weiß... (Sokrates)


als Antwort auf: [#135362]
(Dieser Beitrag wurde von oesi50 am 11. Jan 2005, 18:45 geändert)

datensätze wie z.b. L'Abbaye - backslash oder error

jrandi
Beiträge gesamt: 794

11. Jan 2005, 19:21
Beitrag # 14 von 16
Beitrag ID: #135561
Bewertung:
(2962 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
magic_quotes = OFF

--> UPDATE tabelle SET ortschaft=REPLACE(ortschaft, '\\', ''); ???

checke ich jetzt nicht. reden vom selben ? ich habe die Backslash ja nachträglich extra eingefügt, da sonst ein mysql-error.

zudem gibt es nur 4 Ortschaften welche eine Apostrophe im Namen haben, könnte das auch manuell wegmachen.

--> (Das ist nur ein 'würg around', eigentlich sollte man das Problem dann noch grundsätzlich klären)

z.B. solche ortschaftsnamen zu verbieten ;-) Muss mal abklären wie die Westschweizer diesbezüglich ticken. Könnte aus La Sarraz ja auch Sarraz La machen... dann müsste man das eben unter S anstelle L suchen.

mal sehen, soweit ist die DB eigentlich gut vorwärtsgekommen. morgen sollte ein feedback vorliegen. wenn man damit leben kann, dass L'Abbaye eben am Ende der "L" ist statt am anfang soll es mir auch recht sein. Im deutschsprachigen raum habt ihr jedenfalls eine kleine sorge weniger ;-)

besten dank nochmals - halte euch auf dem laufenden, wenn ich diesbezüglich noch änderungen vornehmen muss.
nächste schritt, wäre die links von ganesh genauer anzuschauen.

beste grüsse
jurg


als Antwort auf: [#135362]

datensätze wie z.b. L'Abbaye - backslash oder error

oesi50
  
Beiträge gesamt: 2315

11. Jan 2005, 20:05
Beitrag # 15 von 16
Beitrag ID: #135571
Bewertung:
(2962 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
was steht denn im HTML code des select feldes drin?

Grüße Oesi
Ich weiß, dass ich nichts weiß... (Sokrates)


als Antwort auf: [#135362]
X