php-resource



Zurück   PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr > Entwicklung > SQL / Datenbanken
 

Login

 
eingeloggt bleiben
star Jetzt registrieren   star Passwort vergessen
 

 

 


SQL / Datenbanken Probleme mit SQL? Hier könnt ihr eure Fragen zu SQL (MySQL, PostgreSQL, MS-SQL und andere ANSI-SQL Server) los werden.

Antwort
 
LinkBack Themen-Optionen Thema bewerten
  #1 (permalink)  
Alt 29-10-2010, 09:52
Zylobrax
 Registrierter Benutzer
Links : Onlinestatus : Zylobrax ist offline
Registriert seit: Oct 2010
Beiträge: 8
Zylobrax befindet sich auf einem aufstrebenden Ast
Standard utf-8, MySQL, Zeichenkodierung, hin und her... auf ein Neues!

Hallo Freunde

Auf meiner WebSite http://www.WeezerLinks.de wurden bisher die jeweiligen Inhalte einer Art selbstgebastelten CMS per 'include' eingebunden. Nachdem der Umfang und die Anzahl allmählich für mich unübersehbar und langsam immer schwerer zu 'händeln' wird, versuche ich nun diese include-Dateien in eine Datenbank zur weiteren Verwendung zu transferieren.

PHP und MySQL ist für mich ein unendliches Spiel aus Trial & Error, man wächst bekanntlich mit den Aufgaben, aber erst wenn Sie erledigt ist, kommt der Wachstumsschub...

Zwei Probleme habe ich schon ganz am Anfang...

Alle Dateien werden zunächst in ein Array eingelesen. Klappt. Auch das Auslesen der einzelnen Datensätze aus dem Array zeigt die Texte so wie sie sein sollen. (Alle Texte liegen in utf-8 vor.)

Die Datenbank wird, wenn Sie bereits Existiert zunächst gelöscht, um dann neu aufgebaut zu werden. Deshalb soll die richtige Konfiguration bereits im PHP-/SQL-Code getroffen werden.

Beim Speichern der einzelnen Sätze in die DB bekomme ich überall da einen Abbruch, wo im Text ein Hochkomma, (bzw. ein einzelnes Anführungszeichen) verwendet wurde. In ca. 200 der Einzelparzellen habe ich bereits das Anführungszeichen durch '& p r i m e ;' ersetzt. Das sieht scheiße aus, und kann meiner Meinung nach nicht die Lösung sein.

Die Inhalte, die bis dahin bereits in die DB Kopiert wurden, werden dort mit falschen Umlauten angezeigt.

Mein Webspace wird bei 1&1 gehostet, auf diverse (PHP-, HTACESS, MySQL-) Konfigurations-Dateien habe ich keinen Zugriff (glaube ich). Im Prinzip habe ich aber auch keine Ahnung, und es dauert Tage, wenn ich nicht die Zeit und die Lust verliere bis ich irgendwie eher zufällig irgendwo eine Teillösung eingebaut habe.

Gibt es hier jemand, der zu dieser Problematik oder zu einer korrekten Vorgehensweise in anfängerverständlicher Formulierung etwas sagen kann.

viele Grüße
Der Ochs vor'm Berg...
HH.
Mit Zitat antworten
  #2 (permalink)  
Alt 29-10-2010, 10:27
eagle275
 Registrierter Benutzer
Links : Onlinestatus : eagle275 ist offline
Registriert seit: Jun 2010
Beiträge: 403
eagle275 befindet sich auf einem aufstrebenden Ast
Standard

lass bitte die Finger vom händischen Ersetzen von Hochkommas durch html-Code...

man schreibt Strings in Varchar-Felder mit Hilfe der Funktion

mysql_real_escape_string($string) - die sorgt dafür, dass sämtliche "gefährlichen" Zeichen escape-d werden (voranstellen von \, so dass ein Hochkomma eben nicht mehr die SQL-Zeichenkette beendet)

nachdem du die Strings auf diese Art in der Datenbank unterbringst, holst du sie heraus und bereitest sie mit

htmlspecialchars($datenbankstring,ENT_QUOTES) zur Ausgabe vor

woraus schließt du , dass die Inhalte, die du bisher gespeichert hast, mit falschen Umlauten dargestellt werden ? etwa phpmyadmin ? der hat ne eigene Konfiguration, die du auch auf utf-8 stellen kannst bzw. müsstest
__________________

Wer LESEN kann, ist klar im Vorteil!
Mit Zitat antworten
  #3 (permalink)  
Alt 29-10-2010, 10:56
Zylobrax
 Registrierter Benutzer
Links : Onlinestatus : Zylobrax ist offline
Registriert seit: Oct 2010
Beiträge: 8
Zylobrax befindet sich auf einem aufstrebenden Ast
Standard

Ich versuchs zuerst mal mit Teil 1, einlesen... wird wohl 'n Tag dauern... MySQL/SQL-Syntax und Parameter sind mir ein Grauen. Ich muß mir immer erst Beispiele suchen, wie andere das machen.

Damit Du siehst auf welchem ('Experten-')Niveau ich mich befinde zeige ich Dir meine Übergabe...

Keine Ahnung, wie und wo ich da 'Deine' Funktion einsetze...

Code:
for($schleife=0; $schleife < $anzahlDatensaetze; $schleife++) 
{
    $sql = "INSERT INTO WLCMS_Parz
        (info,anker,tags,kLink,contParz)
            VALUES
        (
            '".$info[$schleife]."',
            '".$anker[$schleife]."',
            '".$tags[$schleife]."',
            '".$kLink[$schleife]."',                                    
            '".$contParz[$schleife]."')";    
            mysql_query($sql) OR die(mysql_error());
        }                                    
        
        @mysql_close($db_handler);
Die Darstellung der Umlaute sehe ich per 'Adminer'-Programm. Ich habe in meinem Browser alle möglichen Zeichenkodierungen abgeklappert, keine Einstellung zeigt die Zeichen in einer vernünftigen Art und Weise an.

HH.

...to be continued...



Nachtrag:

Ich habe gerade die neuste Version des 'Adminer' hochgeladen. Aus Version 2.xx wurde 3.01. Jetzt werden die gespeicherten Umlaute zumindest hier richtig dargestellt. Die, die ankommen, kommen also (offensichtlich) wenigstens schonmal richtig an...

Ich habe noch nichts geändert.

Geändert von Zylobrax (29-10-2010 um 11:15 Uhr) Grund: zwischenzeitlich neue Erkenntnisse
Mit Zitat antworten
  #4 (permalink)  
Alt 29-10-2010, 11:00
eagle275
 Registrierter Benutzer
Links : Onlinestatus : eagle275 ist offline
Registriert seit: Jun 2010
Beiträge: 403
eagle275 befindet sich auf einem aufstrebenden Ast
Standard

na der Ansatz sieht doch gar nicht so übel aus ...
- du musst nun nur die Datenwerte durch die Funktion mysql_real_escape_string "schicken" ...dann hätten wir diesen Teil
PHP-Code:
for($schleife=0$schleife $anzahlDatensaetze$schleife++) 
{
    
$sql "INSERT INTO WLCMS_Parz
        (info,anker,tags,kLink,contParz)
            VALUES
        (
            '"
.mysql_real_escape_string($info[$schleife])."',
            '"
.mysql_real_escape_string($anker[$schleife])."',
            '"
.mysql_real_escape_string($tags[$schleife])."',
            '"
.mysql_real_escape_string($kLink[$schleife])."',                                    
            '"
.mysql_real_escape_string($contParz[$schleife])."')";    
            
mysql_query($sql) OR die(mysql_error());
}                                    
mysql_close($db_handler); 
wie dein Adminer Tool die Umlaute darstellt ist weitgehend egal, hauptsache deine Webseite zeigt die vernünftig an.

Dazu script in UTF-8 ohne BOM erstellen, header bei der HTML-Ausgabe von php auf text/html mit charset UTF-8, Datenbank auf utf-8 , Collationen der Datenwerte auf utf8(bevorzugt utf8_general_ci), Zeichensatz der Datenbank-Verbindung(!) auf UTF8 [ als erste SQL-Query schickst du mysql_query("SET CHARACTER SET 'utf8'"); ] dann sollte der der Rest auch klappen
__________________

Wer LESEN kann, ist klar im Vorteil!

Geändert von eagle275 (29-10-2010 um 11:07 Uhr)
Mit Zitat antworten
  #5 (permalink)  
Alt 29-10-2010, 11:25
Zylobrax
 Registrierter Benutzer
Links : Onlinestatus : Zylobrax ist offline
Registriert seit: Oct 2010
Beiträge: 8
Zylobrax befindet sich auf einem aufstrebenden Ast
Standard

Danke schonmal vorab.

Die Darstellung der Umlaute im Adminer scheint sich durch die neuste ProgrammVersion erledigt zu haben. (siehe Nachtrag, oben...)

Dein praktisches Beispiel am 'lebenden Objekt' sieht vielversprechend aus. Die Nennung der Funktion allein hätte mir nicht weitergeholfen. Ich wünschte ich könnte solche 'Sachen' genauso wie Du aus dem Ärmel schütteln.

Danke
HH.


Mal sehen wie es 'wirkt'. (...kann 'ne Stunde dauern...) HH.
Mit Zitat antworten
  #6 (permalink)  
Alt 29-10-2010, 13:18
wahsaga
  Moderator
Links : Onlinestatus : wahsaga ist offline
Registriert seit: Sep 2001
Beiträge: 25.236
wahsaga befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von Zylobrax Beitrag anzeigen
Dein praktisches Beispiel am 'lebenden Objekt' sieht vielversprechend aus. Die Nennung der Funktion allein hätte mir nicht weitergeholfen.
Sollte sie aber - in der Beschreibung im Manual gibt's neben der Erklärung, wofür sie da ist, auch Beispiele dazu, wie man die Funktion einsetzt.

Und sowas zu lesen und damit auch zu verstehen, solltest du lernen, wenn du programmieren willst - und wenn du darin noch nicht fit bist, dann jetzt damit anfangen.
__________________
I don't believe in rebirth. Actually, I never did in my whole lives.
Mit Zitat antworten
  #7 (permalink)  
Alt 29-10-2010, 15:25
Zylobrax
 Registrierter Benutzer
Links : Onlinestatus : Zylobrax ist offline
Registriert seit: Oct 2010
Beiträge: 8
Zylobrax befindet sich auf einem aufstrebenden Ast
Standard

Danke Wahsaga

Als Neuling in Eurem Forum habe ich eigentlich schon als allererstes mit diesem Hinweis gerechnet.

Wie lange suchen hällst Du denn für angemessen, bevor ich meine Frage hier im Forum stellen darf?

Für alles, was irgendwo geschrieben steht, gibt es Bibliotheken und Archive, aber auch da gibt es Bibliothekare und Archivare. Was war nochmal ein Forum? War das nicht ein Platz, wo man mit Gleichgesinnten und Interessierten Gedanken und Erfahrungen austauscht?

Ist das wirklich die Voraussetzung unter der ich hier um Hilfe bitten darf, dass ich erstmal alle 12.000 Beiträge studiert haben muß? Wohlmöglich empfiehlst Du mir auch noch erstmal Google und die anderen 75 Foren abzuklappern...

Willst Du dieses Forum überflüssig machen indem Du ausschließlich auf das Handbuch verweist oder mir erstmal einen Programmierlehrgang empfiehlst?

Halte Dich bitte mit Deinen Vorschlägen zurück, solange Du nicht sicher sein kannst, wie Du den anderen einschätzen kannst. Es ist ein Merkmal vorgerückten Alters, dass man auf solche Äußerungen wie Deine zunehmend empfindlicher reagiert.

Und immer und immer wieder das Selbe, wenn man neu in einem Forum ist.
Wenn man erstmal ein paar Dutzend Beiträge und Kommentare abgeliefert hat, legt sich das zum Glück wieder...

Warum immer wieder dieser Zauber... ?

HH. (Sauer!)
Mit Zitat antworten
  #8 (permalink)  
Alt 29-10-2010, 15:47
wahsaga
  Moderator
Links : Onlinestatus : wahsaga ist offline
Registriert seit: Sep 2001
Beiträge: 25.236
wahsaga befindet sich auf einem aufstrebenden Ast
Standard

Mein Hinweis war konkret darauf bezogen, dass dir die Nennung der Funktion nicht ausgereicht hätte.

Warum nicht?
Du kannst sie im Manual direkt nachschlagen - dafür musst du nicht lange suchen.
Und dann liest du dir durch, was da steht - viel mehr braucht es doch gar nicht.

Zitat:
Zitat von Zylobrax Beitrag anzeigen
Ist das wirklich die Voraussetzung unter der ich hier um Hilfe bitten darf, dass ich erstmal alle 12.000 Beiträge studiert haben muß? Wohlmöglich empfiehlst Du mir auch noch erstmal Google und die anderen 75 Foren abzuklappern...
Was soll der Scheiß?
Ich habe nicht gesagt, dass du erst mal alle Beiträge hier durchlesen sollst.

Sondern nur, dass du dich zunächst selbstständig zu informieren versuchen sollst, wenn dir ein Stichwort genannt wird - das kann doch wohl keineswegs zu viel verlangt sein?

Zitat:
Willst Du dieses Forum überflüssig machen indem Du ausschließlich auf das Handbuch verweist oder mir erstmal einen Programmierlehrgang empfiehlst?
So ein Forum ist nicht der Ort, um jedem auf's neue die Grundlagen zu erklären - dafür gibt es Tutorials und Bücher.
Und ja, wir erwarten, dass du dich damit erst mal selber beschäftigst.

Zitat:
Halte Dich bitte mit Deinen Vorschlägen zurück, solange Du nicht sicher sein kannst, wie Du den anderen einschätzen kannst. Es ist ein Merkmal vorgerückten Alters, dass man auf solche Äußerungen wie Deine zunehmend empfindlicher reagiert.
Jetzt hältst vor allem du dich bitte mal zurück.
Ich habe dir lediglich gesagt, dass selber Informieren erst mal grundlegende Pflicht eines Fragers ist.
Und wenn das Manual zu einer Funktion Beispiele hat, dann schaust du dir die erst mal an - das ist doch wohl selbstverständlich?

Und dein Alter interessiert hier überhaupt nicht.


Zitat:
HH. (Sauer!)
Ziemlich grundlos.
__________________
I don't believe in rebirth. Actually, I never did in my whole lives.
Mit Zitat antworten
Antwort

Lesezeichen

Stichworte
konfiguration, utf-8, zeichenkodierung


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Türkisch Zeichenkodierung taskin73 HTML, JavaScript, AJAX, jQuery, CSS, Bootstrap, LESS 1 12-11-2009 17:35
Zeichenkodierung:  trotz UTF-8 Lennie HTML, JavaScript, AJAX, jQuery, CSS, Bootstrap, LESS 3 01-11-2007 18:23
Probleme mit Zeichenkodierung oneside PHP Developer Forum 3 12-03-2007 14:41
Neues CMS mithilfe von OOP-PHP/XML/XSLT/mysql JoJo26 XML 1 25-06-2006 13:15
Neues MySQL mit Änderungen am Timestamp? Sayon SQL / Datenbanken 7 27-12-2004 16:52

Themen-Optionen
Thema bewerten
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.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an


PHP News

ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlicht
ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlichtDie bekannte Marktplatzsoftware ebiz-trader ist in der Version 7.5.0 veröffentlicht worden.

28.05.2018 | Berni

Wissensbestand in Unternehmen
Wissensbestand in UnternehmenLebenslanges Lernen und Weiterbilden sichert Wissensbestand in Unternehmen

25.05.2018 | Berni


 

Aktuelle PHP Scripte

ebiz-trader 6.0 - Das professionelle PHP Marktplatz Script ansehen ebiz-trader 6.0 - Das professionelle PHP Marktplatz Script

Mit unserer Lösungen können Sie nahezu jeden B2B / B2C Marktplatz betreiben den Sie sich vorstellen können. Ganz egal ob Sie einen Automarktplatz, Immobilenportal oder einfach einen Anzeigenmarkt betreiben möchten. Mit ebiz-trader können Sie Ihre Anforder

11.10.2018 Berni | Kategorie: PHP/ Anzeigenmarkt
PHP Server Monitor

PHP Server Monitor ist ein Skript, das prüft, ob Ihre Websites und Server betriebsbereit sind.

11.09.2018 Berni | Kategorie: PHP/ Security
PHP WEB STATISTIK ansehen PHP WEB STATISTIK

Die PHP Web Statistik bietet Ihnen ein einfach zu konfigurierendes Script zur Aufzeichnung und grafischen und textuellen Auswertung der Besuchern Ihrer Webseite. Folgende zeitlichen Module sind verfügbar: Jahr, Monat, Tag, Wochentag, Stunde Folgende son

28.08.2018 phpwebstat | Kategorie: PHP/ Counter
 Alle PHP Scripte anzeigen

Alle Zeitangaben in WEZ +2. Es ist jetzt 06:05 Uhr.