Mailinglisten-Archive |
Hallo Liste, anbei mal ein kleines Programm welches die Datei Orte.sql nach dem Import in ein Format exportiert mit dem auch die Table auf nicht deutschen bzw. nicht mit charset=german compilierten Servern zur Verfügung gestellt werden kann. Das Ganze ist in tcl geschrieben (in PHP umzuschreiben sollte kein Problem sein) Falls jemand das Programm nicht ausführen kann hier ein Link zur schon umgewandelten Datenbank: http://members.tripod.de/mysql/ Schönes Wochenende Mariano #!/usr/home/mindmail/mysqltclsh # # Programm zum Umwandeln der Orte in ein Format welches keine spezielle # Compilierung von mysql erfordert (laeuft auch auf ami-servern!) # (c) 2000 Mariano Glas # glas_(at)_orgaline.net # version 0.01 (09.06.2000) proc umlaute_db {daten} { regsub -all {[\(]} $daten "" daten regsub -all {[\)]} $daten "" daten regsub -all {[\\]} $daten "',CHAR(92),'" daten regsub -all {[\']} $daten "',CHAR(39),'" daten regsub -all {[\"]} $daten "\',CHAR(34),'" daten regsub -all {[Ä]} $daten "',CHAR(196),'" daten regsub -all {[Ü]} $daten "',CHAR(220),'" daten regsub -all {[Ö]} $daten "',CHAR(214),'" daten regsub -all {[ä]} $daten "',CHAR(228),'" daten regsub -all {[ö]} $daten "',CHAR(246),'" daten regsub -all {[ü]} $daten "',CHAR(252),'" daten regsub -all {[ß]} $daten "',CHAR(223),'" daten set daten_n $daten return $daten_n } set user "test" #benutzername zum zugriff auf DB set pw "test" #passwort zum zugriff auf DB set host "mysqldb" #host der DB set db "test" #der name der DB set output "wandelorte.sql" #in diese Datei wird die neue DB geschrieben set table "orte" #ausgangstabelle set tableout "orte2" #neue zieltabelle set silent "off" #mit oder ohne Statusanzeige puts "Öffne Datei $output" set outfile [open $output w+] puts $outfile " CREATE TABLE $tableout (" puts $outfile " ID int(11) not null default 0 auto_increment," puts $outfile " PLZ varchar(11) not null default '-'," puts $outfile " Ort varchar(50) not null default '-'," puts $outfile " Land char(3) not null default '-'," puts $outfile " Vorwahl varchar(12) not null default '-'," puts $outfile " Staat varchar(5) not null default '-'," puts $outfile " primary key(ID)," puts $outfile " KEY Ort (Ort)," puts $outfile " KEY Vorwahl (Vorwahl)," puts $outfile " KEY PLZ (PLZ)," puts $outfile " KEY Staat (Staat)" puts $outfile " " puts $outfile " );" puts "Connect zur Datenbank $db" set handle [mysqlconnect -user $user -password $pw $host] set u [mysqluse $handle $db] set sql "select Ort, Land, Staat, ID, PLZ, Vorwahl from $table" mysqlsel $handle $sql set rows [mysqlresult $handle rows] puts "\[[clock format [clock clicks]]\]" puts "$rows Orte werden gecheckt und ggf. umgewandelt..." set z 0 set y 0 set prz 0 while {$z<$rows} { incr z set inhalt [mysqlnext $handle] set ort [lindex $inhalt 0] set tmport [umlaute_db $ort] set land [lindex $inhalt 1] set tmpland [umlaute_db $land] set staat [lindex $inhalt 2] set tmpstaat [umlaute_db $staat] set id [lindex $inhalt 3] set plz [lindex $inhalt 4] set vorwahl [lindex $inhalt 5] if {$ort!=$tmport || $land!=$tmpland || $staat!=$tmpstaat} { incr y if {$silent=="off"} { if {[expr $z*100/$rows]!=$prz} { puts "[expr $z*100/$rows]%" set prz [expr $z*100/$rows] } } } set sql "INSERT INTO $tableout VALUES($id, '$plz', concat('$tmport'), concat('$tmpland'),'$vorwahl',concat('$tmpstaat'));" puts $outfile $sql } flush $outfile close $outfile puts "\[[clock format [clock clicks]]\]" puts "$y Orte gewandelt." puts "Neue Datei '$output' ([file size wandelorte.sql] Bytes)" if {$table==$tableout} { puts "ACHTUNG!" puts "vor dem Import der Datei '$output' muss zuerst die tabelle '$table' gelöscht werden." } --- *** Abmelden von dieser Mailingliste funktioniert per E-Mail *** an mysql-de-request_(at)_lists.4t2.com mit Betreff/Subject: unsubscribe
php::bar PHP Wiki - Listenarchive