TP Underground Lounge 07/08
-


Hinweise


Antwort
 
LinkBack Themen-Optionen Thema durchsuchen Thema bewerten
Alt 23.08.2005, 22:19   #1
TP-Member
 
Benutzerbild von janni
 
Registriert seit: May 2003
Ort: Frankfurt am Main
janni macht alles soweit korrekt
Cool

CSV-Datei in XML-Datei konvertieren


Ihr lieben,

jetzt hoffe ich, ich bin im richtigen Forum und meine Frage paßt überhaupt hier her.

Folgendes: ich möchte mittels Browser-Upload eine *.csv-Datei, die der Benutzer selbst auswählen kann, an meinen Server schicken. Diese *.csv-Datei soll dann in eine *.xml-Datei konvertiert werden und dann sofort für den Benutzer verfügbar sein. Dieser Nutzer hat dafür einen eigenen Log-In.

Ich habe jetzt diverse Probleme mit einem Konzept. Die Datei würde ich einfach per php auf den Server in ein bestimmtes Verzeichnis laden. Das ist ja kein Problem. Aber - wie bekomme ich die Konvertierung in xml hin? Ich lese mich gerade in xml ein, wie man die dazu entsprechende dtds erstellt und die generelle Struktur von xml habe ich verstanden. Es klemmt jetzt an der Konvertierung und der direkten Rückgabe über den Browser.

Wie kann man das hinbekommen? Hat jemand von Euch eine Idee und kann mir ein paar Tips geben? Ich wäre sehr dankbar dafür. Vielleicht ist die Lösung einfacher, als ich gerade denke?

Einen lieben Gruß,

Janni
__________________
::: {mind creates reality} :::
janni ist offline   Mit Zitat antworten


Alt 23.08.2005, 23:54   #2
giv
TP-Senior
 
Benutzerbild von giv
 
Registriert seit: Jan 2003
Ort: Darmstadt
giv macht sich hier sehr viel Mühe
hi, was für eine csv datei? meinst du das comma seperated values format? schau dir mal das hier an. willst du sowas machen?

was heißt direkte rückgabe an den browser? du kannst das xml dokument einfach ausgeben, wie du html dokumente auch ausgibst?! verstehe nicht, was du damit meinst?

was bringt dir denn eine konvertierung in xml? was willst du denn damit machen? man kann nicht einfach irgendwas in xml konvertieren. xml macht nur sinn, wenn es eine machine lesen soll. dann brauchst du ein schema oder eine dtd - also eine definition des documententyps.

wenn du weißt, wie dein xml dokumententyp ist, dann poste die definition und dann kann ich dir weiterhelfen. die generierung von xml mit php ist kein problem.

Zitat:
Zitat von janni
Die Datei würde ich einfach per php auf den Server in ein bestimmtes Verzeichnis laden
naja, du lädst die datei via http methoden (post?) auf den server und verschiebst sie dort mit php in ein bestimmtes verzeichnis.
__________________
forenregeln - 3.d) ... richtige groß- und kleinschreibung benutzen ...

Geändert von giv (24.08.2005 um 00:04 Uhr).
giv ist offline   Mit Zitat antworten
Alt 10.09.2005, 15:59   #3
TP-Member
 
Benutzerbild von janni
 
Registriert seit: May 2003
Ort: Frankfurt am Main
janni macht alles soweit korrekt
Hey giv!

Jetzt habe ich echt 'ne Weile gebraucht, um hier wieder zu schreiben. Ich danke Dir sehr für Deine schnelle Antwort.

Vielleicht habe ich einen großen Denkfehler, deshalb beschreibe ich einfach mal en Detail, was ich machen möchte. Habe mich auch ein wenig blöd ausgedrückt beim ersten Mal.

Ein Inkasso-Unternehmen hat Mandanten, diese Mandanten haben wiederum Personendaten in Tabellenform (*.csv/*.xls). Diese Tabelle mit den Personendaten (Name, Anschrift etc.) soll per Browser-Upload auf den Inkasso-Server geladen werden, per Log-In, das jeder Inkasso-Kunde (also Mandant) hat. Sofort nach dem Hochladen soll diese Tabelle dann für den Mandanten einzusehen sein, also im HTML-Format, mit "Status-Feldern" dabei. Zu diesem Zeitpunkt hat jede zu mahnende Person noch den Status "offen", weil die Tabelle ja grad erst hochgeladen wurde.

Das Inkasso-Unternehmen hat also jetzt auch die Daten, arbeitet dann die Aufträge ab (sprich treibt das Geld ein ) und die zu mahnenden Personen bekommen dann entweder den Status "erledigt" oder "noch offen", was durch das Unternehmen gekennzeichnet wird.

Der Mandant soll auf diese Weise immer Einsicht in den Zustand seines Aufrages haben, sprich er soll sehen, welche Person bereits gezahlt hat und welche nicht.

Ich hatte am Anfang die Idee mit dem xml, weil man ja so die Daten "weiterverarbeiten" kann und die Textfelder für die HTML-Tabelle erzeugen kann automatisch, oder denke ich falsch?

Dieses Skript/Programm, wozu Du mir den Link geben hast giv, das ist ja sowas, das generiert ja auch automatisch aus *.csv-Dateien (genau die meine ich, die durch Semikoli getrennte Infos enthalten) ein xml-Dokument, welches man doch dann per php(?) so verarbeiten kann, daß eine HTML-Tabelle daraus machbar ist, oder nicht?

Meine Hauptfrage ist, geht das überhaupt, was ich da machen will? Oder ist das absoluter Müll? Oder geht das ganz anders, einfacher?

Über Tips und 'nen Denk-Anstoß bin ich mehr als dankbar und hoffe, ich hab's jetzt nicht noch wirrer geschrieben, als am Anfang.

LG

Janni

Ein Zusatz noch: ich könnte ja einfach die hochgeladene Datei nehmen und per Hand als HTML-Datei zugreifbar machen für den Mandanten, aber das soll automatisch geschehen, damit sie sofort verfügbar/einsehbar ist mit den Status-Feldern (CHeckbox ohne Häkchen für Status "offen" in dem Fall).
__________________
::: {mind creates reality} :::

Geändert von janni (10.09.2005 um 16:19 Uhr). Grund: Zusatz
janni ist offline   Mit Zitat antworten
Alt 10.09.2005, 16:29   #4
giv
TP-Senior
 
Benutzerbild von giv
 
Registriert seit: Jan 2003
Ort: Darmstadt
giv macht sich hier sehr viel Mühe
da würde ich aus der csv datei gleich einen html table generieren.
__________________
forenregeln - 3.d) ... richtige groß- und kleinschreibung benutzen ...
giv ist offline   Mit Zitat antworten
Alt 10.09.2005, 18:30   #5
TP-Member
 
Benutzerbild von janni
 
Registriert seit: May 2003
Ort: Frankfurt am Main
janni macht alles soweit korrekt
Zitat:
Zitat von giv
da würde ich aus der csv datei gleich einen html table generieren.
Du meinst z.B. mittels fgetcsv() die Felder splitten und daraus dann die Tabelle erstellen?
__________________
::: {mind creates reality} :::
janni ist offline   Mit Zitat antworten
Alt 10.09.2005, 19:12   #6
giv
TP-Senior
 
Benutzerbild von giv
 
Registriert seit: Jan 2003
Ort: Darmstadt
giv macht sich hier sehr viel Mühe
jup
__________________
forenregeln - 3.d) ... richtige groß- und kleinschreibung benutzen ...
giv ist offline   Mit Zitat antworten
Alt 10.09.2005, 22:56   #7
321
TP-Specialist
 
Benutzerbild von 321
 
Registriert seit: Nov 2004
Ort: Die Insel in Europa die aus Europa erst Europa macht _________________________ Nähe Lenzburg
321 hilft, wo's geht321 hilft, wo's geht321 hilft, wo's geht
Ich würde die Daten in eine DB-Tabelle schreiben, wenn die Daten weiter verarbeitet werden müssen.
Wozu XML? Bei Abfrage DB-Tabelle lesen und die Daten direkt in HTML-Seite einbinden!
Auch Nachbearbeitung und Aenderung sind in der DB sicher einfacher als in einer XML.
__________________
[321 Name="Joe"]
wie immer, lieber gleich mit notepad, dem Editor meines Vertrauens
[/321]


use my HTML-Tester

Motto'06: Mut zur deutschen Sprache!
321 ist offline   Mit Zitat antworten
Alt 14.09.2005, 22:20   #8
TP-Member
 
Benutzerbild von janni
 
Registriert seit: May 2003
Ort: Frankfurt am Main
janni macht alles soweit korrekt
Hi Ihr beiden.

@giv: Danke für den Tip mit fgetcsv(), das hat mir für's erste sehr geholfen!

@321: Ja, Du hast recht. Ich habe am Wochenende 'ne Menge rumprobiert, und ich werde nicht drumrumkommen, mit 'ner Datenbank zu arbeiten. ;-) Ich dachte, das ginge einfacher, aber die Daten müssen vom Kunden auch sortierbar sein nach Kriterien, es soll 'ne kleine Suchfunktion dabei sein, und all das geht ja eigentlich unmöglich ohne Datenbank, sehe ich das richtig?

Hast Du evtl. ein übersichtliches Tutorial über das Zusammenspiel von mysql und php? Ich arbeite mich gerade erst rein, und Dein Tip mit

Zitat:
Ich würde die Daten in eine DB-Tabelle schreiben, wenn die Daten weiter verarbeitet werden müssen.
ist für mich noch nicht einfach so umsetzbar. Ich suche auch mal im Forum.

Ich lese gerade das "php5/mysql4-Buch" von M. Kannengiesser, das hilft schon sehr, aber für neue Tips bin ich ja auch sehr dankbar.

Wünsche Euch einen schönen Abend und bin sehr froh, daß es dieses Forum gibt. *smile*

Edit: Ah, habe ein Tutorial hier gefunden.
__________________
::: {mind creates reality} :::

Geändert von janni (14.09.2005 um 22:27 Uhr). Grund: Zusatz
janni ist offline   Mit Zitat antworten
Alt 15.09.2005, 02:58   #9
giv
TP-Senior
 
Benutzerbild von giv
 
Registriert seit: Jan 2003
Ort: Darmstadt
giv macht sich hier sehr viel Mühe
man merkt, dass du sehr engagiert bist! *lob* wünsch dir noch viel spass bei der arbeit mit php und mysql. (mein tipp, setz dich auch mal genau mit dem typenkonzept einer programmiersprache auseinander. für die meisten php anwendungen ist das weniger wichtig, weil php eine automatische typumwandlung vornimmt und man auch nicht streng alle variablen deklarieren muss. das hat seine vorteile, aber auch seine nachteile, wenn man's nie richtig gelernt hat.)
__________________
forenregeln - 3.d) ... richtige groß- und kleinschreibung benutzen ...
giv ist offline   Mit Zitat antworten
Alt 15.09.2005, 13:37   #10
TP-Member
 
Benutzerbild von janni
 
Registriert seit: May 2003
Ort: Frankfurt am Main
janni macht alles soweit korrekt
Vielen Dank @giv.

Darf ich hier jetzt allgemeine Fragen zur Datenbank-Abfrage stellen? Ich mag ungerne 'nen neuen Thread dafür aufmachen, weil das Problem, das ich habe, wahrscheinlich schon ziemlich "ausgelutscht" ist.

Ich tu's einfach mal. Es sind Verständnis-Fragen, die mir Probleme machen.

Das Auslesen und Ausgeben der Tabelle klappt ohne Probleme. Beim Einfügen per php einer neuen Reihen hatte ich zunächst den Fehler "Duplicate entry...etc", was sich dadurch gelöst hat, daß ich den Primary Key (ID-Feld) entfernt habe. Meine jetzt Frage dazu: wie umgehe ich das, denn so'n Primary Key ist doch eigentlich wichtig und nützlich, oder?

Ich poste mal den php-Code:

Code:
<?php

          /* Daten in Tabelle schreiben */
         if ($query = "INSERT INTO wurst(id, name, vorname, strasse, ort)
VALUES ('5', 'bla', 'blubb', '1Astrasse', 'giessen')") echo "OK<br>";
         else echo "Fehler: " . mysql_error();

         if ($result = mysql_query($query)) echo "OK";
         else echo "Fehler: " . mysql_error();
         
 ?>
Wie bekomme ich das Einfügen so hin, daß ich weiterhin den PK in der Tabelle nutzen kann? Oder liegt der Fehler ganz woanders?

LG

Janni
__________________
::: {mind creates reality} :::
janni ist offline   Mit Zitat antworten
Alt 15.09.2005, 13:47   #11
TP-Special Mod
 
Benutzerbild von steffenk
 
Registriert seit: Feb 2005
Ort: Haan / NRW
steffenk lebt für das TP und seine Usersteffenk lebt für das TP und seine Usersteffenk lebt für das TP und seine Usersteffenk lebt für das TP und seine Usersteffenk lebt für das TP und seine Usersteffenk lebt für das TP und seine Usersteffenk lebt für das TP und seine Usersteffenk lebt für das TP und seine User
Du lässt den Wert für den Key einfach leer, das übernimmt MySQL

$query = "INSERT INTO wurst(id, name, vorname, strasse, ort)
VALUES ('', 'bla', 'blubb', '1Astrasse', 'giessen')"

und wenn Du wissen willst, welchen Wert id nun bekommen hat, kannst Du es erfragen mit
$id=mysql_insert_id();
__________________

Typo3 · MySQLDumper · dislabs
·
manche Mühlen mahlen schneller ...
"Ich habe Rücken"
Horst Schlämmer

Geändert von steffenk (15.09.2005 um 13:50 Uhr).
steffenk ist offline   Mit Zitat antworten
Alt 15.09.2005, 13:51   #12
TP-Veteran
 
Benutzerbild von Master_T2
 
Registriert seit: Oct 2002
Ort: Übach-Palenberg
Master_T2 macht sich hier sehr viel Mühe
Zeig doch mal die Struktur deiner MySQL-Tabelle her, dann können wir dir leichter helfen... das feld id muss auto_increment haben und darf nicht im Query auftauchen...
__________________
Grüße aus Übach-Palenberg
Tim

WEB.ASSISTANTS IT-SOLUTIONS
www.web-assistants.de

Hängt das doch mal an eine beliebige PHP-Datei: ?=PHPE9568F36-D428-11d2-A769-00AA001ACF42
Master_T2 ist offline   Mit Zitat antworten
Alt 15.09.2005, 14:29   #13
TP-Member
 
Benutzerbild von janni
 
Registriert seit: May 2003
Ort: Frankfurt am Main
janni macht alles soweit korrekt
@St@eff.en & Master_T2: Aaah, vielen Dank! Genau, der PK muß auto_increment haben und ein Wert darf beim Einfügen nicht übergeben werden. Ist ja auch eigentlich logisch, wenn man mal ein bißchen drüber sinniert.

Vielen Dank!! *freu*
__________________
::: {mind creates reality} :::
janni ist offline   Mit Zitat antworten
Alt 16.09.2005, 16:19   #14
TP-Member
 
Benutzerbild von janni
 
Registriert seit: May 2003
Ort: Frankfurt am Main
janni macht alles soweit korrekt
Ich bin's schon wieder. Ich poste jetzt einfach hier weiter.

Ich habe jetzt ein Formular mit 5 Radio-Buttons. Einer ist nur jeweils auswählbar und das Sortier-Kriterium, nach dem die Einträge in der jeweiligen Tabelle sortiert werden sollen.

Meine Frage ist nun: die Forumlardaten können ja ganz simpel abgefragt werden, also bei

Code:
<input type="Radio" name="sort" value="id">
wird ja der Wert "id" in der Variable $sort gespeichert, wenn "id" ausgewählt ist.

Somit lautet der SQL-Befehl in php dann

Code:
if ($query = "SELECT * FROM tabelle ORDER BY id ASC") echo "OK<br>";
So, wenn ich jetzt aber 5 oder mehr Sortier-Kriterien habe, dann müßte ich ja für jedes 'ne If-Abfrage machen z.B., und dann den entsprechenden SQL-Befehl ausführen lassen, richtig? Viel einfacher wäre es doch, wenn ich direkt in den oberen SQL-Befehl das Sortier-Kriterium einbauen könnte, also über die Variable $sort in diesem Fall. Praktisch so:

Code:
if ($query = "SELECT * FROM tabelle ORDER BY $sort ASC") echo "OK<br>";
Denn in der Variablen ist ja der Wert gespeichert, und mein Formular hat genau die Namen der Spalten der Tabelle als Werte. Natürlich geht das so nicht, kriege ja dann 'nen SQL-Fehler, aber ich würde gerne wissen, ob das irgendwie anders geht? Ohne die If-Abfragen, mit direkter Übernahmen des Werts in die SQL-Abfrage?

Hat jetzt überhaupt jemand mein Problem verstanden? Ich bin bestimmt anstrengend, tut mir leid.

Edit: Woah, das geht ja doch. Ich entschuldige mich für's Spammen und denke nächstes Mal vor dem Posten.
__________________
::: {mind creates reality} :::

Geändert von janni (16.09.2005 um 17:03 Uhr).
janni ist offline   Mit Zitat antworten
Alt 16.09.2005, 19:26   #15
giv
TP-Senior
 
Benutzerbild von giv
 
Registriert seit: Jan 2003
Ort: Darmstadt
giv macht sich hier sehr viel Mühe
deine idee, $sort in den query einzubauen, ist prinzipiell richtig. es gibt allerdings sicherheitsgründe, weswegen man das nicht einfach ohne vorheriger prüfung auf den wert machen sollte. es könnte ja jemand sql code schicken und dann würdest du den einfach in deinen query einbauen. also vorsicht hier.

die überprüfung kann man dann mit einer if-abfrage (oder mehreren) machen. verwende dann nicht ==, sondern ===. === vergleicht genauer, salopp gesagt.

von der syntax her ist $query = "SELECT * FROM tabelle ORDER BY $sort ASC"; korrekt, allerdings solltest du formulardaten aus den dafür vorgesehen globalen arrays $_POST und $_GET lesen (wieder aus sicherheit). also statt $sort schreibe $_POST['sort'].

p.s.: was soll denn deine if abfrage in deinem beispiel machen? die wird so immer bewirken, dass ok ausgegeben wird.
__________________
forenregeln - 3.d) ... richtige groß- und kleinschreibung benutzen ...
giv ist offline   Mit Zitat antworten
Antwort

  Aktuelles Thema
  TP Hilfe Forum > Web-Editoren & Coding > Traum-Dynamik
CSV-Datei in XML-Datei konvertieren CSV-Datei in XML-Datei konvertieren
« handgeschneiderte Shop-Empfehlung | OO: Vererbung / Nichtvererbung von Klassennamen »

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu


Alle Zeitangaben in WEZ +2. Es ist jetzt 02:32 Uhr.

Powered by: vBulletin Version 3.7 (Deutsch)
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd. / Search Engine Friendly URLs by vBSEO 3.2.0 ©2008, Crawlability, Inc.
Traum-Projekt.com | Suchen | Archiv | Impressum | Kontakt | | | Nach oben |



1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67

1 2 3 4 5 6 7 8 9 10 11