Du bist nicht angemeldet. Der Zugriff auf einige Boards wurde daher deaktiviert.

#1 01. Februar 2011 21:44

leerraum
kennt CMS/ms
Ort: Baden-Baden
Registriert: 15. Dezember 2010
Beiträge: 479
Webseite

[GELÖST] MySQL, special Chars und PHP

Hi,

das hat nur indirekt was mit CMSms zu tun, aber ich steh grade voll auf dem Schlauch.

Ich darf in einer DB von Tabelle 1 nach Tabelle 2 haufenweise Daten portieren. Das macht man natürlich am Besten mit PHP.

[== PHP ==]
    mysql_query ("INSERT INTO bvsse_module_feusers_properties(id,userid,title,data ) VALUES ('".$b."', '".$c."', 'job', '".            utf8_encode(html_entity_decode($row['job'])))         or die(mysql_error());         $b++;         
    mysql_query ("INSERT INTO bvsse_module_feusers_properties(id,userid,title,data ) VALUES ('".$b."', '".$c."', 'titel', '".        utf8_encode(html_entity_decode($row['titel'])))     or die(mysql_error());      $b++;         
    mysql_query ("INSERT INTO bvsse_module_feusers_properties(id,userid,title,data ) VALUES ('".$b."', '".$c."', 'webseite', '".    utf8_encode(html_entity_decode($row['webseite'])))     or die(mysql_error());      $b++;         
    mysql_query ("INSERT INTO bvsse_module_feusers_properties(id,userid,title,data ) VALUES ('".$b."', '".$c."', 'abschluss', '".    utf8_encode(html_entity_decode($row['abschluss']))) or die(mysql_error());        $b++;     
    mysql_query ("INSERT INTO bvsse_module_feusers_properties(id,userid,title,data ) VALUES ('".$b."', '".$c."', 'e_mail', '".        utf8_encode(html_entity_decode($row['e_mail'])))     or die(mysql_error());      $b++;         
    mysql_query ("INSERT INTO bvsse_module_feusers_properties(id,userid,title,data ) VALUES ('".$b."', '".$c."', 'name', '".        utf8_encode(html_entity_decode($row['name'])))         or die(mysql_error());      $b++;         
    mysql_query ("INSERT INTO bvsse_module_feusers_properties(id,userid,title,data ) VALUES ('".$b."', '".$c."', 'vorname', '".        utf8_encode(html_entity_decode($row['vorname'])))     or die(mysql_error());      $b++;     
    mysql_query ("INSERT INTO bvsse_module_feusers_properties(id,userid,title,data ) VALUES ('".$b."', '".$c."', 'joblink', '".        utf8_encode(html_entity_decode($row['joblink'])))     or die(mysql_error());         $b++;

Mein Problem ist jetzt, dass die Datenbank Ersteller leider überall alles reingeschrieben haben. Heißt, es sind HTML Tags drin, special Chars ohne Ende und und und...

Dazu kommt noch, dass ich das ganze von latin1 nach UTF8 portieren möchte.

Ich bekomme von der Datei diese Meldung zurück:

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''Studentin Zahn' at line 1

Subbar. Kann mir irgendjemand helfen? Es muss doch da nen Modus geben, solche Chars zu ignorieren und die einfach hart einzufügen.

Danke
leerraum

Beitrag geändert von leerraum (02. Februar 2011 19:05)


Designer benötigt? Einfach eine Mail an info at lrrm dot de schicken.

Offline

#2 01. Februar 2011 21:52

piratos
Gast

Re: [GELÖST] MySQL, special Chars und PHP

Mysql kann alle Zeichen speichern.

Du solltest dir mal das anlesen:

http://php.net/manual/de/function.mysql … string.php

#3 02. Februar 2011 12:59

leerraum
kennt CMS/ms
Ort: Baden-Baden
Registriert: 15. Dezember 2010
Beiträge: 479
Webseite

Re: [GELÖST] MySQL, special Chars und PHP

hm, ok, ich habs durchgelesen, habs eingebaut, ich bekomme aber immernoch den fehler. soweit ich das verstehe, muss es sich wohl um ein zeichen handeln, dass nicht durch diese methode abgedeckt wird.


Designer benötigt? Einfach eine Mail an info at lrrm dot de schicken.

Offline

#4 02. Februar 2011 13:22

piratos
Gast

Re: [GELÖST] MySQL, special Chars und PHP

Dann hast du nicht alle Felder damit behandelt oder es falsch (Reihenfolge - das muss die finale Behandlung sein).

Ansonsten ohne die vollständige fehlerhafte SQL kann man die nicht helfen.

#5 02. Februar 2011 14:51

leerraum
kennt CMS/ms
Ort: Baden-Baden
Registriert: 15. Dezember 2010
Beiträge: 479
Webseite

Re: [GELÖST] MySQL, special Chars und PHP

hm, ich poste hier das vollständige script und schicke dir per mail einen link zu db. ich kann leider die daten hier nicht öffentlich machen, weils eine lange liste personenbezogener informationen ist.

script:

[== php ==]
<?php
$dbhost = 'localhost';
$dbuser = 'root';
$dbpass = '';
$dbname = 'bvssetemp';

$conn = mysql_connect($dbhost, $dbuser, $dbpass) or die ('Error connecting to mysql');
mysql_select_db ($dbname);

$result = mysql_query ("SELECT titel, name, mail, page, jahrgang, job, link, agbtg, eintrag FROM eheliste");
$c = 8;
$b = 66;

while($row = mysql_fetch_array($result, MYSQL_ASSOC))
{
    
    mysql_query ("INSERT INTO bvsse_module_feusers_users(id, username, password, createdate, expires) VALUES ('".$c."', '".utf8_encode(mysql_real_escape_string($row['name'])))))."', '".md5('ehemaligerschueler')."', '".utf8_encode(mysql_real_escape_string($row['eintrag'])))))." 23:59:59', '2099-12-31 23:59:59'") or die(mysql_error());
    mysql_query ("INSERT INTO bvsse_module_feusers_properties(id,userid,title,data ) VALUES ('".$b."', '".$c."', 'job', '".            utf8_encode(mysql_real_escape_string($row['job'])))         or die(mysql_error());    $b++;         
    mysql_query ("INSERT INTO bvsse_module_feusers_properties(id,userid,title,data ) VALUES ('".$b."', '".$c."', 'titel', '".        utf8_encode(mysql_real_escape_string($row['titel'])))         or die(mysql_error());     $b++;         
    mysql_query ("INSERT INTO bvsse_module_feusers_properties(id,userid,title,data ) VALUES ('".$b."', '".$c."', 'webseite', '".    utf8_encode(mysql_real_escape_string($row['webseite'])))    or die(mysql_error());     $b++;         
    mysql_query ("INSERT INTO bvsse_module_feusers_properties(id,userid,title,data ) VALUES ('".$b."', '".$c."', 'abschluss', '".    utf8_encode(mysql_real_escape_string($row['abschluss'])))    or die(mysql_error());    $b++;     
    mysql_query ("INSERT INTO bvsse_module_feusers_properties(id,userid,title,data ) VALUES ('".$b."', '".$c."', 'e_mail', '".        utf8_encode(mysql_real_escape_string($row['e_mail'])))         or die(mysql_error());     $b++;         
    mysql_query ("INSERT INTO bvsse_module_feusers_properties(id,userid,title,data ) VALUES ('".$b."', '".$c."', 'name', '".        utf8_encode(mysql_real_escape_string($row['name'])))         or die(mysql_error());     $b++;         
    mysql_query ("INSERT INTO bvsse_module_feusers_properties(id,userid,title,data ) VALUES ('".$b."', '".$c."', 'vorname', '".        utf8_encode(mysql_real_escape_string($row['vorname'])))     or die(mysql_error());     $b++;     
    mysql_query ("INSERT INTO bvsse_module_feusers_properties(id,userid,title,data ) VALUES ('".$b."', '".$c."', 'joblink', '".        utf8_encode(mysql_real_escape_string($row['joblink'])))     or die(mysql_error());    $b++;
    
    $c++;
    
} 
echo('done!');
mysql_close ($conn);

?>

Designer benötigt? Einfach eine Mail an info at lrrm dot de schicken.

Offline

#6 02. Februar 2011 14:58

piratos
Gast

Re: [GELÖST] MySQL, special Chars und PHP

Das nützt wenig bis nichts - den Sql Fehler  ohne Daten zu finden ist praktisch nicht möglich.

Das aber ist schon mal verkehrt:

utf8_encode(mysql_real_escape_string(

muss
mysql_real_escape_string(utf8_encode .....

sein - letzte Instanz !!


Am besten die voillständige SQL einmal ausgeben wo es klemmt -  Personendaten kann man ja verfremden.


Und alles was Text ist also auch Username, Passwort und blah muss damit behandelt werden.

Beitrag geändert von piratos (02. Februar 2011 14:59)

#7 02. Februar 2011 15:10

leerraum
kennt CMS/ms
Ort: Baden-Baden
Registriert: 15. Dezember 2010
Beiträge: 479
Webseite

Re: [GELÖST] MySQL, special Chars und PHP

e-mail ist grade an dich raus wink


Designer benötigt? Einfach eine Mail an info at lrrm dot de schicken.

Offline

#8 02. Februar 2011 15:38

piratos
Gast

Re: [GELÖST] MySQL, special Chars und PHP

Die Daten sind doch gut - enthalten fast überall in der Rubrik job Links zu der Jobstelle - entfernt man die wird der Text teils zerissen da manchmal >Jobeschreibung</a> gegeben ist.

Sollen die href's unter dem Job Eintrag verschwinden ?

#9 02. Februar 2011 15:41

leerraum
kennt CMS/ms
Ort: Baden-Baden
Registriert: 15. Dezember 2010
Beiträge: 479
Webseite

Re: [GELÖST] MySQL, special Chars und PHP

ich hab versucht es 1:1 zu übernehmen... ehm, bei mir steht die eheliste auf latin1 swedish ci oder ähnlich. ich hab beim export der db allerdings utf8 angegeben. ist das erhalten geblieben, oder ist die jetzt auch utf8? auf jeden fall tut das script so mit den daten nicht. Ich bekomme bei "'Studentin in Gießen" ein Problem.


Designer benötigt? Einfach eine Mail an info at lrrm dot de schicken.

Offline

#10 02. Februar 2011 16:23

piratos
Gast

Re: [GELÖST] MySQL, special Chars und PHP

Dein ganzes Script  ist ziemlich fehlerhaft -  bist ein Klammerkönig.  big_smile
Und es sollen Felder importiert werden die es nicht gibt:

Notice: Undefined index: webseite in /var/www/l2/test.php on line 20

Notice: Undefined index: abschluss in /var/www/l2/test.php on line 21

Notice: Undefined index: e_mail in /var/www/l2/test.php on line 22

Notice: Undefined index: vorname in /var/www/l2/test.php on line 24

Notice: Undefined index: joblink in /var/www/l2/test.php on line 25

Also klären sollen die Links aus dem Job raus, welche Felder wohin.

Deine utf8 codierungsdinge habe ich alle entfernt.

<?php
$dbhost = 'localhost';
$dbuser = 'root';
$dbpass = '';
$dbname = '';

$conn = mysql_connect($dbhost, $dbuser, $dbpass) or die ('Error connecting to mysql');
mysql_select_db ($dbname);

$result = mysql_query ("SELECT titel, name, mail, page, jahrgang, job, link, agbtg, eintrag FROM eheliste");
$c = 8;
$b = 66;

while($row = mysql_fetch_array($result, MYSQL_ASSOC))
{   $names=explode(',',$row['name']);
    if (isset($names[1]))
    {
        $name=$names[0];
        $vorname=$names[1];
    }
    elseif (isset($names[0]))
    {
        $name=$names[0];
        $vorname='';
    }
    
    mysql_query ("INSERT INTO bvsse_module_feusers_users(id, username, password, createdate, expires) VALUES ('".$c."', '".mysql_real_escape_string($row['name'])."', '".md5('ehemaligerschueler')."', '".mysql_real_escape_string($row['eintrag'])." 23:59:59', '2099-12-31 23:59:59')") or die(mysql_error());
    mysql_query ("INSERT INTO bvsse_module_feusers_properties(id,userid,title,data ) VALUES ('".$b."', '".$c."', 'job', '".mysql_real_escape_string($row['job'])."')")      or die(mysql_error());    $b++;
    mysql_query ("INSERT INTO bvsse_module_feusers_properties(id,userid,title,data ) VALUES ('".$b."', '".$c."', 'titel', '".mysql_real_escape_string($row['titel'])."')")    or die(mysql_error());     $b++;
    mysql_query ("INSERT INTO bvsse_module_feusers_properties(id,userid,title,data ) VALUES ('".$b."', '".$c."', 'webseite', '".mysql_real_escape_string($row['page'])."')")    or die(mysql_error());     $b++;
    mysql_query ("INSERT INTO bvsse_module_feusers_properties(id,userid,title,data ) VALUES ('".$b."', '".$c."', 'abschluss', '".mysql_real_escape_string($row['jahrgang'])."')")    or die(mysql_error());    $b++;
    mysql_query ("INSERT INTO bvsse_module_feusers_properties(id,userid,title,data ) VALUES ('".$b."', '".$c."', 'e_mail', '".mysql_real_escape_string($row['mail'])."')")         or die(mysql_error());     $b++;
    mysql_query ("INSERT INTO bvsse_module_feusers_properties(id,userid,title,data ) VALUES ('".$b."', '".$c."', 'name', '".mysql_real_escape_string($name)."')")         or die(mysql_error());     $b++;
    mysql_query ("INSERT INTO bvsse_module_feusers_properties(id,userid,title,data ) VALUES ('".$b."', '".$c."', 'vorname', '".mysql_real_escape_string($vorname)."')")     or die(mysql_error());     $b++;
    mysql_query ("INSERT INTO bvsse_module_feusers_properties(id,userid,title,data ) VALUES ('".$b."', '".$c."', 'joblink', '".mysql_real_escape_string($row['link'])."')")     or die(mysql_error());    $b++;

    $c++;

}
echo('done!');
mysql_close ($conn);
?>

wird bei mir einwandfrei eingelesen.

Falls noch etwas sein sollte, den Rest müsstest du allein schaffen.

#11 02. Februar 2011 16:24

piratos
Gast

Re: [GELÖST] MySQL, special Chars und PHP

PS Am Vorposting kann man gut erkennen warum man bei der Entwicklung alles an Bemerkungen, Warnungen und Fehlern ausgeben sollte. tongue

PS:

Daten komplett entfernt inkl. Mail.

Beitrag geändert von piratos (02. Februar 2011 16:26)

#12 02. Februar 2011 16:57

leerraum
kennt CMS/ms
Ort: Baden-Baden
Registriert: 15. Dezember 2010
Beiträge: 479
Webseite

Re: [GELÖST] MySQL, special Chars und PHP

ok, moment, ich guck grade mal smile
...
der HAMMER! woran lag das jetzt genau? waren das nur die Kommas, die MySQL so verwirrt haben? (mal abgesehen von den 150 script fehlern wink )

Klammerkönig hat mich auch noch keiner genannt!

DICKES DANKE!

Beitrag geändert von leerraum (02. Februar 2011 17:02)


Designer benötigt? Einfach eine Mail an info at lrrm dot de schicken.

Offline

#13 02. Februar 2011 18:01

piratos
Gast

Re: [GELÖST] MySQL, special Chars und PHP

leerraum schrieb:

Klammerkönig hat mich auch noch keiner genannt!

Auf der einen Seite viel zu viele Klammern auf der anderen Seite fehlten sie. cry

Musst noch ein gelöst rein pinseln.

#14 02. Februar 2011 19:05

leerraum
kennt CMS/ms
Ort: Baden-Baden
Registriert: 15. Dezember 2010
Beiträge: 479
Webseite

Re: [GELÖST] MySQL, special Chars und PHP

mit anderen worten: putz mal deinen code wink big_smile

mach ich gleich.


Designer benötigt? Einfach eine Mail an info at lrrm dot de schicken.

Offline