Problem mit UPDATE-Befehl in php-Script

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Problem mit UPDATE-Befehl in php-Script

    Hallo zusammen,

    bin neu hier und hoffe, Ihr könnt mir helfen.

    Also, ich verwalte einen Bereich eines Forums (WBB) und wir binden dort einmal täglich externe News per RSS ein. Die Codierung des Forums ist windows-1252, der Feed hat jedoch seit kurzem UTF-8, was zu falsch dargestellten Umlauten und Sonderzeichen führt. Da der Admin die Codierung nicht ändern will, habe ich mir überlegt, einmal täglich einen Cronjob zu starten, bei dem ein PHP-Script die DB updaten und alle Sonderzeichen bereinigen soll.

    Folgende Abfrage funzt soweit auch im PHPMyAdmin, die Sonderzeichen werden bereinigt:
    Code:
    UPDATE bb1_posts SET message = REPLACE (
    
    message,
    'ä',
    'ä'
    )                     ;
    
    UPDATE bb1_posts SET message = REPLACE (
    
    message,
    'Ã&',
    'ü'
    )         ;
    
    UPDATE bb1_posts SET message = REPLACE (
    
    message,
    'üfrac14;',
    'ü'
    )                          ;
    
    UPDATE bb1_posts SET message = REPLACE (
    
    message,
    'üpara;',
    'ö'
    )                         ;
    
    UPDATE bb1_posts SET message = REPLACE (
    
    message,
    'Ä',
    'Ä'
    )          ;
    
    UPDATE bb1_posts SET message = REPLACE (
    
    message,
    'ß',
    'ß'
    )                ;
    
    UPDATE bb1_posts SET message = REPLACE (
    
    message,
    'ücopy;',
    'é'
    )            ;
    
    UPDATE bb1_posts SET message = REPLACE (
    
    message,
    'Ö',
    'Ö'
    )        ;
    
    UPDATE bb1_posts SET message = REPLACE (
    
    message,
    '&',
    '&'
    )      ;
    
    UPDATE bb1_posts SET message = REPLACE (
    
    message,
    'üordm;',
    'ú'
    )
    Das PHP-Script macht jedoch Probleme.

    PHP-Code:
    <?php
    $con 
    mysql_connect("localhost","webXXX","Mein DB-PW");
    if (!
    $con)
      {
      die(
    'Could not connect: ' mysql_error());
      }

    mysql_select_db("usr_webXXX_1"$con);

    mysql_query("UPDATE bb1_posts SET message = REPLACE (message,'üpara;','ö')");

    echo 
    "Update ok!";   

    mysql_close($con);
    ?>
    Beim Aufruf klappt die Datenbankverbindung und ich erhalte die echo-Ausgabe, die Zeichen sind danach aber unverändert.

    Hat jemand eine Ahnung, was ich falsch mache?

    Bedanke mich für Eure Hilfe!

  • #2
    Zitat von boleros Beitrag anzeigen
    Also, ich verwalte einen Bereich eines Forums (WBB) und wir binden dort einmal täglich externe News per RSS ein. Die Codierung des Forums ist windows-1252,
    Dann wär's vielleicht langsam mal Zeit, das umzustellen ...

    der Feed hat jedoch seit kurzem UTF-8, was zu falsch dargestellten Umlauten und Sonderzeichen führt. Da der Admin die Codierung nicht ändern will, habe ich mir überlegt, einmal täglich einen Cronjob zu starten, bei dem ein PHP-Script die DB updaten und alle Sonderzeichen bereinigen soll.
    Klingt eher unsinnig.

    Warum werden die Daten nicht bereits beim Import des Feeds entsprechend umkodiert?
    I don't believe in rebirth. Actually, I never did in my whole lives.

    Kommentar


    • #3
      Wie gesagt, ich bin nicht der Admin und verwalte nur bestimmte Bereiche.
      Der Rest läuft, also muss ich mich, zumindest vorerst, mit einer Notlösung zufrieden geben.

      In der Tat wäre es besser, wenn der Feed bereits beim Import entsprechend angepasst würde. Der nachfolgende Code-Schnipsel ist m. E. für den Import des Feeds zuständig, meine Kenntnisse reichen aber leider nicht aus, ihn entsprechend zu ändern.

      Bin für jegliche Tipps dankbar.

      PHP-Code:
      for($i 0;$i count($news);$i++){

          
      $newstopic[$i] = "Feed vom ".date("d.m.Y")."";

          for(
      $a 0;$a count($news[$i]);$a++){

              if(!empty(
      $news[$i][$a]['date'])) $newstext[$i] .= "[b]&raquo; [URL=".utf8_decode(htmlentities($news[$i][$a]['link']))."]".utf8_decode(htmlentities($news[$i][$a]['title']))."[/URL][/b]<br />";

              else if(!empty(
      $news[$i][$a]['title'])) $newstext[$i] .= "[b]&raquo; [URL=".utf8_decode(htmlentities($news[$i][$a]['link']))."]".utf8_decode(htmlentities($news[$i][$a]['title']))."[/URL][/b]<br />";

              if(!empty(
      $news[$i][$a]['desc'])) $newstext[$i] .= "[i]".utf8_decode(htmlentities($news[$i][$a]['desc']))."[/i]<br /><br />"

      Kommentar

      Lädt...
      X