Ankündigung

Einklappen
Keine Ankündigung bisher.

Umstellung xml Daten

Einklappen

Neue Werbung 2019

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

  • #16
    verstehe ich nicht ganz - oder ist hier der fehler

    PHP-Code:
     $sql "INSERT INTO PackageItems (`PackageItem`, `Category`) VALUES ";
                
    $sql .= "('" $value['PackageItem'] . "','" $value['Category'] . "')";
                         if (!
    mysqli_query(Core::$link$sql)) {
                    return 
    'Error: ' mysqli_error(Core::$link).'<br />'.$sql;; 

    Kommentar


    • #17
      verstehe ich nicht ganz
      Du versuchst den Text eines Elements zu bekommen, das keinen Text hat. sh. Post #7 & #10

      Kommentar


      • #18
        ich verstehe es nicht - wenn ich die daten ausgebe, dann erhalte ich die Richtigen -

        PHP-Code:
                $OtherPackageItems = array();
                
        //echo "<br /><br />";
                
        if(isset($v$v->Package$v->Package->OtherPackageItems$v->Package->OtherPackageItems->PackageItem)) {
                    foreach (
        $v->Package->OtherPackageItems->PackageItem as $opt_k => $opt_v) {
                        
        $opt_t $opt_v->attributes();

                        
        $PackageItem = array();

                        
        $PackageItem['PackageItem'] = $opt_v->Description;

                       echo 
        $opt_v;
                        
        $PackageItem['Category'] = htmlspecialchars($opt_t['Category'], ENT_QUOTES);
                        
        $OtherPackageItems[] = $PackageItem;
                    }
                } 
        PHP-Code:
        Konvertiere XML-Daten in die Datenbank.
        Flüge in der Economy-Class gemäß RoutenbeschreibungAbflug ab anderen Städten auf Anfrage möglich (meist gegen Aufpreis)Alle TransfersHotelübernachtung(engemäß RoutenbeschreibungAlle TreibstoffzuschlägeAlle Hafengebühren und SteuernDie Kreuzfahrt ab New York (New YorkUSA) / bis Southampton (England)Teilnahme an Bordveranstaltungen und Nutzung der SchiffseinrichtungenGetränkestationen zur 24-Stunden-Selbstbedienung mit KaffeeTeeWasser und SäftenSekt zur Begrüßung auf der KabineAfternoon TeaAlle Mahlzeiten (bei manchen Spezialitätenrestaurants sind Aufschläge möglich)Cocktailparty des KapitänsGala-Dinner des Kapitäns24-Stunden Kabinenservice Deutschsprachige BordbetreuungGepäcktransport bei Ein und AusschiffungAlle Datensätze wurden übertragen

        Kommentar


        • #19
          habs hinbekommen - danke für die hinweise

          mist doch nicht - problem nach wie vor

          Kommentar


          • #20
            Dann zeig mal nachvollziehbaren Code, den jeder bei sich ausführen kann.

            Kommentar


            • #21
              Du solltest dich unbedingt mit XML auseinandersetzen und deren Funktionsweise erlernen.
              Kann ja nicht sein, das du wegen jedem Kleckerkram hier anfragst, denn letzten Endes schaut es doch so aus, das wir den Grossteil deiner Arbeit leisten, du aber beim nächsten Problem(API-Änderung) wieder ankommst, weil du es nicht beherrscht.
              Besser du weisst wie es geht und kannst es nächstes mal alleine.

              Weiteres zum Code:
              PHP-Code:
              $sql "INSERT INTO PackageItems (`PackageItem`, `Category`) VALUES ";
                          
              $sql .= "('" $value['PackageItem'] . "','" $value['Category'] . "')"
              Hier würde ich unbedingt auf prepared statements setzen.
              Erstens wird es mit zunehmenden Variablen immer undurchschaubarer und Fehler schleichen sich schnell ein und zweitens denke ich, hast du bis jetzt die Daten auch nicht maskiert(mysqli_real_escape_string).

              Deine foreach Schleife weiter oben deutet zudem an, dass du jedes mal pro Schleife ein Insert machst, das kannst du mit prepared statemenst einfacher haben.

              Kommentar


              • #22
                Zitat von protestix Beitrag anzeigen
                Kann ja nicht sein, das du wegen jedem Kleckerkram hier anfragst, denn letzten Endes schaut es doch so aus, das wir den Grossteil deiner Arbeit leisten, du aber beim nächsten Problem(API-Änderung) wieder ankommst, weil du es nicht beherrscht.
                Mich wundert es ja, das es immer wieder wem gibt der ihm hilft. Hab schon paar mal überlegt solche Threads zu schliessen weil es mittlerweile schon fast ärgerlich ist, aber ich denke mir irgenwann wird ihm eh keiner mehr helfen, dann erledigt sich das von selbst. Bin gespannt wie lange es noch dauert.
                The string "()()" is not palindrom but the String "())(" is.

                Debugging: Finde DEINE Fehler selbst! | Gegen Probleme beim E-Mail-Versand | Sicheres Passwort-Hashing | Includes niemals ohne __DIR__
                PHP.de Wissenssammlung | Kein Support per PN

                Kommentar


                • #23
                  ungetestet, hatte ich mal in einem Projekt, sollte aber funzen


                  PHP-Code:
                  //Prüfen der XML Datei
                  function object2array($obj) {
                      
                  $_arr is_object($obj) ? get_object_vars($obj) : $obj;
                      
                  $arr = array();
                      if(
                  is_array($_arr)){
                        foreach (
                  $_arr as $key => $val) {
                            
                  $val = (is_array($val) || is_object($val)) ? object2array($val) : $val;
                            if(
                  is_array($val) && count($val) < 1){$val "";}
                            
                  $arr[$key] = $val;
                          }
                      return 
                  $arr;
                      }
                    return 
                  false;
                    }

                  function 
                  readXML($xml){
                    
                  $xmlErrors "";
                    
                  libxml_use_internal_errors(true);                                 //XML Error Handling öffnen
                    
                  $temp simplexml_load_string($load);                             //simplexml_load_string gibt ein Object zurück
                    
                  if($temp === false){
                      
                  $xmlErrors print_r(libxml_get_errors(), true);                //Fehlerarray speichern
                      
                  libxml_clear_errors();
                      return  
                  $xmlErrors;
                      }else{
                           return 
                  $temp;
                           }
                    }

                  //simplexml_load_string kann nicht mit Kurzschreibweise (<label/>) umgehen, deshalb ersetzen
                  $arrayFrom = array("<company/>","<sex/>","<title/>","<name_first/>","<name_last/>","<email/>","<phone/>","<vatid/>","<tax/>","<upsap_id/>","<street/>","<street_add/>","<pcode/>","<city/>","<country/>","<template/>",
                                     
                  "<label/>","<basic_article/>","<back_coating/>","<edge/>","<fringe/>","<fringe_color/>","<extension/>","<templateName/>","<cost_delivery/>");
                  $arrayTo = array("<company></company>","<sex></sex>","<title></title>","<name_first></name_first>","<name_last></name_last>","<email></email>","<phone></phone>","<vatid></vatid>","<tax></tax>",
                                   
                  "<upsap_id></upsap_id>","<street></street>","<street_add></street_add>","<pcode></pcode>","<city></city>","<country></country>","<template></template>","<label></label>",
                                   
                  "<basic_article></basic_article>","<back_coating></back_coating>","<edge></edge>","<fringe></fringe>","<fringe_color></fringe_color>","<extension></extension>","<templateName></templateName>",
                                   
                  "<cost_delivery></cost_delivery>");

                  $xml str_replace($arrayFrom$arrayTo$XMLDatei_als_String);    //je nach Seitencodierung eventuell noch in utf-8 codieren, oder decodieren

                  $obj readXML($xml);
                  if(
                  is_object($obj)){
                    
                  $XML_Array object2array($obj);
                    
                  //gibt die XML als Array aus (zur Anschauung) und kann nun auch so benutzt werden
                    
                  echo "<pre>".print_r($XML_Arraytrue)."</pre>";
                    }else{
                         echo 
                  "Error: ".$obj;
                         } 

                  Kommentar


                  • #24
                    lieben dank - damit fange ich erstmal an es zu verstehen

                    Kommentar

                    Lädt...
                    X