Daten mit richtigem Zeichensatz speichern

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

  • Daten mit richtigem Zeichensatz speichern

    Ich speichere Daten mit einem Formular in einer Datenbank Tabelle ab. Die Tabelle hat das Format utf8 general

    Was muss ich bei der Codierung der Skript php Datei beachten um die Daten auch im richtigen Format der Datenbank abzuspeichern?

    <meta http-equiv="content-type" content="text/html; utf-8">

    wäre diese metacodierung richtig, oder muss ich noch etwas anderes beachten. Ich habe das Problem, dass mit DISTINCT identische Datensätze nicht gefiltert werden. Die Datensätze haben wie gesagt den sichtbar in phpmyadmin den gleichen Inhalt, wenn ich den inhalt des einen feldes in das andere vermeintlich gleiche kopiere funktioniert distinct aber auf einmal. also tippe ich darauf, dass es am zeichensatz liegt.

    Was meint ihr?

  • #2
    der meta-tag ist nicht richtig. selbst ausgedacht?

    zeig mal lieber einen dump der tabellenstruktur und zweier solcher datensätze.

    Kommentar


    • #3
      Erstmal danke für den Tip.

      Hab dadurch jetzt selber schon was entdeckt

      Hie mal ein Beispiel

      (230, 'shop1', 'label1\r'),
      (31, 'shop2', 'label1'),

      jetzt müsste ich nur noch wissen wie dieses \r zustande kommt, ich hab euch mal meinen code unten aufgeführt, könnt ihr mir sagen worans liegt, ist es das \n? Ich möchte ihm eigentlich nur sagen dass er im formularfeld einen zeilenumbruch benutzten soll um den array zu exploden?


      zum änder der daten lese ich sie zuerst in ein feld ein mit diesem code:


      PHP-Code:
      while 
      (
      $data mysql_fetch_array($resultID))  
      {       echo 
      $data['MarkenName'] ."\n";          } 
      zum abspeichern benutz ich dann diesen code

      PHP-Code:
      $Marken_array explode("\n"$Marken);
      $resultloeschen mysql_query("DELETE FROM `shoppmtable` WHERE `ShopID`='$ID' ");
      foreach (
      $Marken_array as $value
      {  
      $resultID mysql_query("INSERT INTO `shoptable` (ShopID,ShopName,MarkenName) VALUES
       ('
      $ID','$derShopName','$value') ");    } 


      Die Tabellestruktur sieht so aus
      CREATE TABLE `shoppmtable` (
      `ShopID` int(10) NOT NULL default '0',
      `ShopName` varchar(255) NOT NULL default '',
      `MarkenName` varchar(255) NOT NULL default ''
      ) ENGINE=MyISAM DEFAULT CHARSET=utf8;
      Zuletzt geändert von dare; 12.04.2007, 10:31.

      Kommentar


      • #4
        Regeln lesen, Code umbrechen.
        I don't believe in rebirth. Actually, I never did in my whole lives.

        Kommentar


        • #5
          Ok, sorry. So besser?

          Ich hab also dass Problem mit \r und den Zeilenumbrüchen an denen ich Daten für einen neuen Datensatz erkennen möchte. Kann mir jemand sagen was ich bisher falsch gemacht habe?

          Kommentar


          • #6
            liegt wohl an dem explode nach \n.
            woher kommt der unfug eigentlich?

            bis dahin kannst du trim() verwenden.

            Kommentar

            Lädt...
            X