php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger

PHP Einsteiger PHP Problemlösungen für Spracheinsteiger
Archive: 2004, 2004/2, 2005, 2005/2, 2006, 2007, 2008, 2009, 2010,

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 11.01.2012, 15:31  
Neuer Benutzer
 
Registriert seit: 10.02.2008
Beiträge: 28
schani
Standard Felder aus Tabelle auslesen und in neue Tabelle eintragen

Hallo zusammen,
ich möchte aus eine MySQL Table Datensätze auslesen und in eine andere Table wieder eintragen.

PHP-Code:
$allesauslesen mysql_query("SELECT * FROM table_a GROUP BY art")
where($feld mysql_fetch_object($allesauslesen)){

       
$insert "REPLACE INTO table_b SET title = ".$feld->title." ;";

        if(!
$ok mysql_query($insert)){
                print 
mysql_error();
            };

}; 
Folgendes passiert:
Im Feld title von table_a steht z.B. drin "Kessy erfreut die Bewohner des AWO-Seniorenparks"

Jetzt bekomme ich eine Fehlermeldung:
Fehler in der SQL-Syntax. Bitte die korrekte Syntax im Handbuch nachschlagen bei 'erfreut die Bewohner des AWO-Seniorenparks' in Zeile 3

Feld title von table_b ist ein VARCHAR(255). Sollte also funktionieren.

Erst dachte ich an Anführungszeichen oder Sonderzeichen die im Feld enthalten sind, aber egal welcher Inhalt ausgelesen und eingetragen werden soll, ergibt die gleiche Fehlermeldung.
Kann es mit unterschiedlichen Charsets zu tun haben?
Table_a = latin1 default und table_b = utf8

Liegt es daran? Und wie kann ich dies umcodieren?
Besten Dank für Tipps

Christian
schani ist offline   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

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

Alt 11.01.2012, 15:34  
Erfahrener Benutzer
 
Registriert seit: 01.09.2010
Beiträge: 4.561
PHP-Kenntnisse:
Fortgeschritten
eagle275 ist ein sehr geschätzer Menscheagle275 ist ein sehr geschätzer Menscheagle275 ist ein sehr geschätzer Mensch
Standard

wie oft denn noch, String-Daten gehören in SQL in String-Begrenzer.. also Single-Quotes (normalerweise)


$insert = "REPLACE INTO table_b SET title = '".$feld->title."' ";

das Semikolon am Ende brauchst du NICHT (im SQL-String)

das Encoding KÖNNTE dir noch Probleme bereiten - aber gewöhnlich treten diese nur beim umgekehrten Weg auf.

Falls es Probleme bei Umlauten und anderen Zeichen (alle mit Codezahlen oberhalb 127) gibt, müsstest du dann eingreifen und mit iconv für eine Konvertierung sorgen, mit deinem Fehler der vergessenen Quotes hat es erstmal nix zu tun
__________________
"Irren ist männlich", sprach der Igel und stieg von der Drahtbürste

Geändert von eagle275 (11.01.2012 um 15:37 Uhr).
eagle275 ist offline   Mit Zitat antworten
Alt 11.01.2012, 15:55  
Neuer Benutzer
 
Registriert seit: 10.02.2008
Beiträge: 28
schani
Standard

Ja, Du hast recht. Ich hab die Single-Quotes vergessen. Schande auf mein Haupt.

Wie verhält es sich mit den Charset? Ich habe nun Umlaute in der neuen table_b und die werden auch sauber angezeigt. Ist jetzt latin1 Text in einer UTF-8 Tabelle oder wurde der Text automatisch konvertiert?
Ich hab mal versucht mit utf8_encode die latin1 Texte umzurechnen was mir dann "Grüße aus Lenggries" ergibt.

Jetzt habe ich es mal mit iconv versucht:
PHP-Code:
setlocale(LC_ALL'de_DE');
$title iconv('UTF-8''ISO-8859-1'$feld->title); 
Aber da wird bei ersten auftreten eines Umlauts die Ausgabe abgebrochen.

Grüße aus Lenggries = Gr

Welche Auswirkung hat denn mysql_real_escape_string in diesen Zusammenhang?

PS.: ist hab noch ISO-8859-2 ISO-8859-8 ISO-8859-15 versucht, aber alle brechen beim ersten Umlaut ab.

Geändert von schani (11.01.2012 um 16:00 Uhr).
schani ist offline   Mit Zitat antworten
Alt 11.01.2012, 16:16  
Erfahrener Benutzer
 
Registriert seit: 01.09.2010
Beiträge: 4.561
PHP-Kenntnisse:
Fortgeschritten
eagle275 ist ein sehr geschätzer Menscheagle275 ist ein sehr geschätzer Menscheagle275 ist ein sehr geschätzer Mensch
Standard

nun offensichtlich brauchst du in deinem Fall nicht aufs Encoding achten - Grundsätzlich aber schon ...Problem ist halt, dass UTF8 die Umlaute mit 2 Bytes speichert , was dann zu den 2 komischen Zeichen führt in deinem Beispiel
__________________
"Irren ist männlich", sprach der Igel und stieg von der Drahtbürste
eagle275 ist offline   Mit Zitat antworten
Antwort


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
Bedingungen bei MySQL Tabelle ? + best. Zeilen in neue Tabelle verschieben. schacky PHP Einsteiger 3 06.01.2012 06:21
Spalte oder neue Tabelle.... scriptbubi Datenbanken 4 20.07.2011 10:18
Tabelle soll nach X Einträgen neue Zeile anfangen raws18 PHP Einsteiger 6 10.02.2011 17:19
Bildpfad in Tabelle mysql auslesen DKuhn Datenbanken 5 07.10.2009 13:46
[Erledigt] Statistikdaten eintragen und auslesen sofalord Datenbanken 1 17.04.2009 17:28
Array mit verschachtelten inneren Array auslesen und leere Felder rausschmeißen kai.kobold PHP Tipps 2008 2 31.12.2008 16:52
Tabelle in Textfelder auslesen, ändern und wieder schreiben thron PHP Tipps 2008 10 22.02.2008 13:12
Dropdownfeld in eine neue tabelle schreiben thron Datenbanken 14 12.02.2008 09:24
[Erledigt] gelöst: Tabelle auslesen -> Gleiche Einträge nur 1 Mal Datenbanken 3 31.03.2006 01:44
Auslesen mySQL tabelle und ausgabe als html Calli PHP Tipps 2004-2 3 21.12.2004 16:51
ID übertragen in ein neue Tabelle PHP-Fortgeschrittene 6 28.09.2004 00:13
Neue Seite in Tabelle Anuschka PHP Tipps 2004 3 21.08.2004 01:12
[Erledigt] Tabelle auf einer Seite auslesen und in meiner Seite wiederg PHP Tipps 2004 2 14.07.2004 08:46
HILFE: Column count doesn't match value count at row 1 Datenbanken 17 12.06.2004 16:45
[Erledigt] Werte eines Arrays aus Tabelle auslesen ? PHP-Fortgeschrittene 12 08.06.2004 19:57

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
mit feldern aus tabelle neue tabelle, felder aus tabelle lesen, php tabellen felder auslesen, php inhalt feld tabelle auslesen, utf-8 tabelle

Alle Zeitangaben in WEZ +2. Es ist jetzt 18:47 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