Ankündigung

Einklappen
Keine Ankündigung bisher.

XML Datei entpacken, einlesen, in Datenbank speichern & GUI Suchfenster

Einklappen

Neue Werbung 2019

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

  • XML Datei entpacken, einlesen, in Datenbank speichern & GUI Suchfenster

    Hallo zusammen,

    ich wollte mir mal als "Anfänger" etwas Hilfe/Rat für folgendes "kleines" Projekt suchen.
    Mein Ziel ist es, eine gezippte XML Datei von einem FTP zu holen, diese zu entpacken und einzulesen in ein Array, dieses soll in eine Datenbank gespeichert werden und dann noch eine Suchfunktions-GUI alels abrunden. Was ich bisher geschafft habe:


    connect.inc.php
    PHP-Code:
    <?php
        
    //MySQL Datenbank Verbindung
        
    $host "localhost";
        
    $user "root";
        
    $pass "xxx";
        
    $database "marc_db";
        
    $dz mysql_connect($host$user$pass);
        
    mysql_select_db($database$dz);
        
    mysql_query("SET NAMES 'UTF8'"); 
    ?>


    Beispiel-db-zugriff.php

    PHP-Code:
    <?
        require_once("config/connect.inc.php");
    ?>
    <html>
    <head>
    </head>
    <body>
    <?
        $sqlname="SELECT name FROM testtabelle";
        $result=mysql_query($sqlname); //führt abfrage aus & speichert sie
        
        while($dsresult=mysql_fetch_object($result))
        {
            echo $dsresult->name;
            echo "<br>";
        
        }
    ?>

    </body>
    </html>


    ZIP.php (mein bisher grösster Erfolg)

    PHP-Code:
    <?
    $zip = new ZipArchive;
            if (file_exists("rest-bewert.zip"))
            {
                $zip->open("rest-bewert.zip");
                //Erstellt Zielordner, falls vorhanden nicht schlimm
                $path = getcwd()."/entpackt_mit_PHP/";
                //Windows FILE System-Problem (backslash)
                $path = str_replace("\\","/",$path);
                        //Pfad ausgeben
                        //echo $path;
                //Entpacken
                echo $zip->extractTo($path);
                $zip->close();
                echo "<br><br>";
                //Hinweis auf Erfolg & Pfad ausgabe
                echo "<b>Erfolghreich</b> entpackt in folgendes Verzeichnis: <br><br>".$path;
            } 
            else 
            {
                echo "Error, keine XML Datei gefunden.";
            }
            // Funktion überschreibt alle Zieldateien/Verzeichnisse mit gleichem Namen
    ?>


    xml.php
    XML in Array speichern

    PHP-Code:
    <?
    if (file_exists('Rest-bewert.xml')) 
        {
            $array = simplexml_load_file('Rest-bewert.xml');
        
            echo "<pre>";
            print_r($array);
            echo "</pre>";
        } 
        else 
        {
            exit('Konnte beispiel.xml nicht öffnen.');
        }
    ?>


    Ich weiss der beispiel Datenbank Zugriff, wird wohl nicht mehr gebraucht, wollte aber wissen wie ich auf Daten darauf zugreifen kann usw. Naja jetzt die Frage/mein Problem, ich lese ein Beispielhafte "Fast-Food-Restaurant Bewertungsdatei" ein und will diese in der Datenbank speichern, u.a. ist dort sowas drin, wie Restaurant (MCD / BK / KFC) oder Essen (Burger / Wrap) und sogar Land. Muss ich die dafür gedachten Datenbanken in mysql vorher anlagen mit allen Inhalten, nur dann ist die Frage langen mir wenige (Restaurant/Bewertung)? ja wie ihr merkt tue ich mir sehr schwer mit der Datenbank Schema Sache. Danach wird wohl das schwierigste die Suchfunktion, aber ein Schritt nach dem anderen. Über sinnvolle Beiträge wäre ich sehr dankbar.

    Falls ich etwas genauer Erläutern soll, lasst es mich einfach wissen.

    Danke schonmal
    LG
    Marc

  • W1nFr1ed
    antwortet
    Hallo,

    also hab die php Tags für die Codes eingefügt.

    Also habe jetzt erstmal ne Datenbank restaurantbewertung angelegt. Habe dafür fürn anfang eine tabelle erstellt restaurant jetzt will ich ich mein eingelesenes array in die datenbank schreiben. Ich weiss nun, dass ich das array irgendwie mit einer schleife untereinander darstellen muss und dann einlesen, aber das umstellen krieg ich nicht hin, hab jetzt erstmal folgendes:

    PHP-Code:
    <?
        require_once("config/connect.inc.php");
    ?>
    <html>
    <head>
    </head>
    <body>
    Hallo <b>hier</b> kommt mysql test
    <br><br>
    <?

    if (file_exists('restbewertungen.xml')) 
        {
            $array = simplexml_load_file('restbewertungen.xml');
            
                foreach ($array as $value) 
                {
                echo "Der aktuelle Wert ist: " . $value . "<br>";
                }
            
        
            //<pre> is nur für querys, variablen direkt per echo
            /*
            echo "<pre>";
            print_r($array);
            echo "</pre>";
            */
        } 
        else 
        {
            exit('Konnte beispiel.xml nicht öffnen.');
        }

    //Auswahl der Zeilen aus der Tabelle
    $query = "SELECT * FROM restaurant";

    mysql_query("INSERT INTO restaurant (`name`, `sterne`, `ort`, `gebiet`, `land`) 
    VALUES ('777', '', '', '', ''');");


    //Anfrage an MySQL senden
    $result = mysql_query($query) or die("Anfrage nicht erfolgreich");

    //Anzahl der Datensätze ausgeben
    $anzahl = mysql_num_rows($result);
    echo "Anzahl der Datensätze: $anzahl";
    echo "<br>";

    ?>

    </body>
    </html>
    finde über google nicht direkt das was ich suche, ich weiss ich brauche das foreach, aber erst nachdem ich mein array unetreinander darstelle.

    Einen Kommentar schreiben:


  • StefanRHRO
    antwortet
    [...]Muss ich die dafür gedachten Datenbanken in mysql vorher anlagen[...]
    Das macht schon Sinn. Wobei du wahrscheinlich mit einer Datenbank auskommen solltest und nur mehrere Tabellen brauchst...

    [...]Danach wird wohl das schwierigste die Suchfunktion[...]
    Warum sollte das schwierig sein?

    PS: Versuch mal den Code in die besser lesbaren PHP - Tags [ PHP ] zu packen!

    Einen Kommentar schreiben:

Lädt...
X