Ergebnis 1 bis 6 von 6

Thema: Kollation swedish & german = Addon "Premium-Mails streikt....

  1. #1
    Erfahrener Benutzer Avatar von maniwelt
    Registriert seit
    10.09.2006
    Beiträge
    981

    Kollation swedish & german = Addon "Premium-Mails streikt....

    Hallo,

    mit der DB kenn ich mich nicht so gut aus, aber ich frage mich, warum es ein MIX ist aus GERMAN und SWEDISH ?

    Sollte es nicht einheitlich sein ?

    Dies ist mir auch bei ganzen Addons aufgefallen, und so funktioniert eins nicht bei mir:

    Premiummails
    Im Premium Paidmailbereich werden nur 5 Paidmails gleichzeitig angezeigt. Um eine Mail zu bestätigen bitte den Betreff anklicken.

    Illegal mix of collations (latin1_german2_ci,IMPLICIT) and (latin1_swedish_ci,IMPLICIT) for operation '='
    Nun, die DB komplett neu zu machen, ist nicht, und alles per Hand ändern, auch viel Arbeit, wie mach ich es schneller und einfacher ?

    Der Addon ist von "Parl 2009"
    Diese Signatur war zu groß ~cdp~

    Meine Antwort: Ach jaaaa ?

  2. #2
    Erfahrener Benutzer Avatar von bulli
    Registriert seit
    06.01.2007
    Beiträge
    234
    Ich habe da mal ein Script im WWW gefunden:
    PHP-Code:
    <?
    #########################################################################
    #########################################################################
    ##                                                                     ##
    ## Script coded by Eric Reiche                                         ##
    ##                                                                     ##
    ## Version: 0.2 / 2006-08-16 17:35 GMT + 100                           ##
    ## Version 0.2 contains bugfixes                                       ##
    ##                                                                     ##
    ## Inspired by serversupportforum.de user monotek                      ##
    ## ( http://www.serversupportforum.de/forum/sql/        \              ##
    ## 9279-kollation-von-tabellen-aendern.html#post67293 )                ##
    ## [Check link  for bashscript]                                        ##
    ##                                                                     ##
    ## Web: http://www.ericreiche.net  ||  Mail: mail [AT] ericreiche [DOT] net  ##
    ##                                                                     ##
    ## You can spread this script, as long as you don't touch this copymark     ##
    ##                                                                     ##
    #########################################################################
    #########################################################################


    //Config:
      $mysqlserver = 'localhost';    //Host
      $mysqluser = 'wxxx';           //User [It's recommended to use root]
      $mysqlpw = 'xx';                 //Password
      $mysqldb = 'xx';       //Database
      $stepping = 100;               //Queries per Page
      $tabletoskip = 'really_big_table'; //If you have a really big table, you can enter it here,
                                     //it will be skipped, to prevent a script abort
                                   
      $collation = 'latin1_german2_ci';
      $character_set = 'latin1';
    //End Config

    #######################################################################
    # Do not change anything from here, until you know what you're doing  #
    #######################################################################
      
    if(isset($_GET['start']) && is_numeric($_GET['start'])){
      $start = $_GET['start'];
      if($start > 0){
        $start = $start * $stepping;
      }
    }else{
      $start = 0;
    }
    //mysql connect
    @mysql_connect($mysqlserver, $mysqluser, $mysqlpw) OR die("No Conncection to Server. Report: :".mysql_error());
    mysql_select_db($mysqldb) OR die("couldn't select database, Report: ".mysql_error());
    unset($mysqlserver);
    unset($mysqluser);
    unset($mysqlpw);

    $i = 0;
    print('<pre>');
    if($start == 0){
      $sql = 'ALTER DATABASE '.$mysqldb.' DEFAULT CHARACTER SET '.$character_set.' COLLATE '.$collation.";\r\n";
      mysql_query($sql);
      print($sql);
    }

    $sql = 'Show tables;';
    $result1 = mysql_query($sql);
    while($tables = mysql_fetch_assoc($result1)){
        if($start == 0){
        $sql = 'ALTER TABLE '.$tables['Tables_in_'.$mysqldb].' DEFAULT CHARACTER SET '.$character_set.' COLLATE '.$collation.";\r\n";
        mysql_query($sql);
        print('&nbsp;&nbsp;'.$sql);
      }
      
      $sql = 'Show columns FROM '.$tables['Tables_in_'.$mysqldb];
      $result2 = mysql_query($sql);
      
      while($columns = mysql_fetch_assoc($result2)){
        
        if(substr_count($columns['Type'], 'varchar') || substr_count($columns['Type'], 'text')){
          $i++;
          if($i >= $start && $i < ($start + $stepping)){
            $sql = 'ALTER TABLE '.$tables['Tables_in_'.$mysqldb].' CHANGE '.$columns['Field'].' '.$columns['Field'].' '.$columns['Type'].' CHARACTER SET '.$character_set.' COLLATE '.$collation.';';
            if($tabletoskip != $tables['Tables_in_'.$mysqldb]){
              mysql_query($sql);
              print('&nbsp;&nbsp;&nbsp;&nbsp;'.$i.'. '.$sql."\r\n");
            }else{
              print('&nbsp;&nbsp;&nbsp;&nbsp;'.$i.'. <b>SKIPPED</b>: '.$sql."\r\n");
            }
          }
        }
      }

    }
    print('</pre>');


      print('<a href="'.$_SERVER['PHP_SELF'].'?start='.($_GET['start'] + 1).'">Weiter...</a>');

    ?>

  3. #3
    Erfahrener Benutzer Avatar von maniwelt
    Registriert seit
    10.09.2006
    Beiträge
    981
    Hat geklappt, danke, das Addon geht nun auch wieder

    Gibt es dann welche Nachteile danach oder doch keine ?
    Diese Signatur war zu groß ~cdp~

    Meine Antwort: Ach jaaaa ?

  4. #4
    Erfahrener Benutzer Avatar von jpwfour
    Registriert seit
    06.02.2008
    Beiträge
    3.717
    Das Script stellt ja nur die Zeichensätze sowie Sortierfolgen um, und das an allen Stellen, also Datenbank,Tabellen,jedes einzelne Feld wenn ich das richtig sehe.

    Vorteil du hast das Ganze nachher einheitlich

    Nachteil wäre, wenn durch die Umstellung Informationen verloren gingen oder verfälscht wären, was aber von latin1_swedish_ci auf latin1_german2_ci afaik nicht der Fall ist.

    (Edit: das wichtige ist, dass das latin1 bei beiden als char set ja gegeben ist, isnofern ändert sich eben nur sortierfolge, sollte also weiter keine auswirkungen haben, ausser das script verlässt sich auf das verhalten nach latin1_swedish_ci, was aber bei solchen addons kaum eine rolle spielen dürfte)
    Kill one man, and you are a murderer.
    Kill millions of men, and you are a conqueror.
    Kill them all, and you are a god.
    - Jean Rostand, Thoughts of a Biologist (1939)

  5. #5
    Erfahrener Benutzer Avatar von didith1207
    Registriert seit
    17.09.2006
    Beiträge
    1.580
    @ mani soweit ich weis hattest du damals wegen dem STG automailer texte auf latin1_german2_ci umgestellt....

    leider gibt es addons die wiederum mit diesem zeichensatz nix anfangen können sollten da irgendwie über lösungen grübeln..

  6. #6
    Erfahrener Benutzer Avatar von maniwelt
    Registriert seit
    10.09.2006
    Beiträge
    981
    Ja, das hab ich auch gemerkt, das einige Addons mit swedish waren, und andere wiederum mit german...

    Die Progger sollten ja einheitlich proggen, damit es zu solche Fehler NICHT kommt.....

    Den Paidmailer hab ich noch NICHT eingebaut, aber kommt noch
    Diese Signatur war zu groß ~cdp~

    Meine Antwort: Ach jaaaa ?

Ähnliche Themen

  1. Paidbannerstatistik im "Kopf" / Schnipsel oder Addon?
    Von buxpruefer im Forum Support zu Addons & Erweiterungen
    Antworten: 10
    Letzter Beitrag: 07.07.2012, 12:56
  2. Antworten: 2
    Letzter Beitrag: 17.12.2011, 09:15
  3. Suche Premium Paidmail addon!!!
    Von Schlumpfine im Forum Scripte
    Antworten: 3
    Letzter Beitrag: 01.06.2010, 14:38
  4. if "AktivRally=on" dann "Top5 Klicker eingeblenden" else "ausblenden"
    Von TS7 im Forum Support zu Addons & Erweiterungen
    Antworten: 6
    Letzter Beitrag: 07.11.2007, 22:09

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •