Wetterstationsforum.info - Archiv

Software => Entwicklerforum => Thema gestartet von: Wetterwarte am 31.08.2008, 13:19:37

Titel: WsWin to mySQL
Beitrag von: Wetterwarte am 31.08.2008, 13:19:37
Hallo,

damit das Thema übersichtlich bleibt und wie gewünscht, mache ich zu WsWin to mySQL einen neuen Beitrag auf.

WsWin to mySQL dient dazu, Daten direkt aus der automatisch generierten Datei ws_newdata.csv auszulesen und in eine mySQL Datenbank einzulesen. Darüber hinaus können zusätzlich Maxima, Minima und Mittelwerte für die Zeitbereiche Stunde, Tag, Monat und Jahr berechnet werden. Das Script läuft mit Hilfe eines Cronjobs völlig automatisch.

Nähere Informationen gibt es auf folgender Seite inkl. Download:

http://www.meteo-dynamics.de

_______________________________________

Die erste Frage dazu war:

Zitat von: "Sprite01"Hallo Thomas,

ich beschäftige mich gerade mit deinem WsWin to MySQL.
Wie meinst du das ?
Zitat– Zeile 3: Angabe des Dateipfades zu der PHP Datei mit den mySQL Verbindungsdaten.
zur Zeit steht:
Zitatinclude 'dbconfig.php';
bei mir in Zeile 3

Am besten einen neuen Thread aufmachen ? Da kommt sicherlich noch mehr.

Zur Frage:

Je nach dem, wie du eine Verbindung zur Datenbank aufbaust, eignet sich die Möglichkeit, die Verbindungsdaten direkt ins Script zu schreiben oder eine separate Datei zu nutzen.

So sieht die extra Datei ca. aus:



// config.php

define('MYSQL_HOST', 'localhost');
define('MYSQL_USER', 'root');
define('MYSQL_PASS', 'passwort');
define('MYSQL_DABA', 'database');

Titel: WsWin to mySQL
Beitrag von: Sprite01 am 31.08.2008, 16:45:37
Wenn ich meine csv mit Excel öffne sieht sie allerdings so aus:
Titel: WsWin to mySQL
Beitrag von: Holli am 31.08.2008, 18:33:50
Ja, Excel ist tatsächlich zu blöd, eine syntaktisch korrekte CSV richtig zu öffnen. So unglaublich es klingt, aber es ist so.

Man kann es nur dazu zwingen, die Spalten richtig einzulesen, wenn man die Datei in *.txt umbenennt und die Trenner und Spaltenformate manuell angibt. Aber selbst dabei kann es passieren, daß es die Inhalte einer Spalte einem falschen Format zuordnet, die Inhalte unbrauchbar verstümmelt und sich mit keinem Trick davon abbringen lassen will.
Titel: WsWin to mySQL
Beitrag von: Wetterwarte am 31.08.2008, 18:44:04
@Dirk

Das ist kein Problem. Die Tabelle im Manual ist nur schon formatiert. Das ist hier aber nicht wichtig.

In einer Schleife wird immer eine Zeile Text, also die Werte eingelesen. Die Kommata werden als Erkennungszeichen genutzt, der komplette String wird daran aufgesplittet und alle gefundenen Textzeilen in ein Array abgelegt. Mit den Keys holst du dann die einzelnen Werte aus dem Array raus. Wichtig ist nur zu wissen, an welcher Stelle der Wert im Array liegt.

Der erste eingelesene Wert ist in deinem Fall das Datum. Ein Array zählt ab 0 aufwärts. Daher vergibst du im aktuelldatenskript in der Zeile für das Datum die Zahl 0.

$datum = $datenarray[0];

Das ist aber schon so voreingestellt. Dann guckst du weiter, welcher Wert nach dem nächsten Komma kommt. Das ist Zeit.

$uhrzeit = $datenarray[1];

Nach dem nächsten Komma kommt Temp I. Die Innentemperatur ist im Skript nicht vorgesehen, kann aber nachgerüstet werden. Dafür in der mySQL Tabelle eine weitere Spalte hinzufügen, die SQL Anweisung unten anpassen und eine neue Variable nach dem selben Muster erstellen. Die dort eingetragenen Sensoren sind nur ein Beispiel. Nach dem Muster ist es so möglich, beliebig viele Sensoren aus der CSV-Datei auszulesen.

Und immer so weiterzählen. Wenn du also die Kommata durchzählst, würde z.b. Wind die Zahl 8 bekommen.

$Windgeschwindigkeit = $datenarray[8];
Titel: WsWin to mySQL
Beitrag von: Wettermichel am 31.08.2008, 20:17:33
Hallo,

Zitat von: "Holli"Ja, Excel ist tatsächlich zu blöd, eine syntaktisch korrekte CSV richtig zu öffnen. So unglaublich es klingt, aber es ist so.

Man kann es nur dazu zwingen, die Spalten richtig einzulesen, wenn man die Datei in *.txt umbenennt und die Trenner und Spaltenformate manuell angibt. Aber selbst dabei kann es passieren, daß es die Inhalte einer Spalte einem falschen Format zuordnet, die Inhalte unbrauchbar verstümmelt und sich mit keinem Trick davon abbringen lassen will.

naja das ist auch eine Art sein eigenes unvermögen ein Programm richtig zu bedienen zum Ausdruck zu bringen.

Mein Excel kann das ohne Probleme, Du mußt nur die Importfunktionen(siehe auch Textdateien  unter Datei öffnen) von Excel richtig einsetzten und schon geht's.

Und das manchmal beim Import Müll rauskommt liegt an den länderspezifischen Einstellungen, aber das weißt Du doch sicherlich alles.;-)

@ Wetterwarte

Danke für deine Scripte funktionieren ohne Probleme.:top:
Nutze Sie derzeit für interne Zwecke.

Gruß

Michael
Titel: WsWin to mySQL
Beitrag von: Sprite01 am 31.08.2008, 20:25:54
Zitat von: "Wettermichel"Danke für deine Scripte funktionieren ohne Probleme.:top:

Wohl dem, der es kann. Aber so lernt man ja (mit Hilfe) am besten ...  :-)

Bei mir kommt zur Zeit das:
ZitatNotice: Use of undefined constant d008080a - assumed 'd008080a' in /www/htdocs/XXXXXX/wswintomysql/wetterdatensteuerskript.php on line 7
Transmission erfolgreich --Aktuelldaten-- Query:

INSERT INTO `data_aktuellwerte` ( `id` , `Datetime` , `Datum` , `Datummetric` , `Stunde` , `Tag` , `Monat` ,
    `Jahr` , `Uhrzeit` , `Temp` , `Temp_Boden` , `Feuchte`, `Luftdruck` , `Regenmenge` ,
    `Windgeschwindigkeit` , `Windrichtung` , `Taupunkt` , `Windchill`)

      VALUES (NULL ,'2008-08-31 15:54' , '2008-08-31', '31.08.2008' , '15' , '31', '08', '2008', '15:54',
               '27.0', '27.0', '27.3' , '33.5' , '34' , '29' , '13' ,
            '1009.0' , '0.000');

Antwort: Unknown column 'Datetime' in 'where clause'

Die Werte muss ich noch ein wenig anpassen, aber was bedeuten die Meldungen ?

Sorry, aber bei php und mysql bin ich Beginner.  :oops:

Edit: Die 1. Meldung habe ich durch einfügen von ' und ' weg.  8-)
Titel: WsWin to mySQL
Beitrag von: Holli am 31.08.2008, 22:34:07
Zitat von: "Wettermichel"naja das ist auch eine Art sein eigenes unvermögen ein Programm richtig zu bedienen zum Ausdruck zu bringen.
Das "Unvermögen" besteht darin, daß sich MS Office bei der Installation ungefragt Dateien mit der Endung .csv krallt, aber dann nicht in der Lage ist, dieses Format korrekt zu behandeln.

Einen Doppelklick auf eine Datei kannst du nicht wirklich als "unvermögen ein Programm richtig zu bedienen" bezeichnen. Ich habe diesem Müllhaufen weder vorgeschrieben noch erlaubt, dieses Dateiformat grundsätzlich zu öffnen. Wenn die Programmierer ihre Software schon für so fähig halten, daß sie das ohne Probleme kann, und deshalb eine Rückfrage beim User für überflüssig halten, sollte das auch tasächlich so sein. Ist es aber nicht.
ZitatMein Excel kann das ohne Probleme, Du mußt nur die Importfunktionen(siehe auch Textdateien  unter Datei öffnen) von Excel richtig einsetzten und schon geht's.
Nö, geht nicht. Derselbe Mist: Alle Felder einer Zeile in einer Zelle, Feldtrenner komplett ignoriert. Der Umweg über Ändern der Extension und komplett manuelle Einstellung der Importparameter (die natürlich bei jedem Import dieselben schwachsinnigen und sicher nie benötigten Voreinstellungen haben) ist der einzige Weg, eine .csv nutzbar in Excel 2003 zu importieren.

Ein , als Feldtrenner in einer Datei zu ignorieren, die als Typ "Comma separated values" hat, findest du keinen Bug?

Das liegt vermutlich an deinem Unvermögen, meine Fähigkeiten auch nur annähernd richtig einschätzen zu können.
Titel: WsWin to mySQL
Beitrag von: Trix am 31.08.2008, 23:49:48
Hi

ZitatNö, geht nicht. Derselbe Mist: Alle Felder einer Zeile in einer Zelle, Feldtrenner komplett ignoriert. Der Umweg über Ändern der Extension und komplett manuelle Einstellung der Importparameter (die natürlich bei jedem Import dieselben schwachsinnigen und sicher nie benötigten Voreinstellungen haben) ist der einzige Weg, eine .csv nutzbar in Excel 2003 zu importieren.

Ich finde das von Excel auch einen blöden Zug. Wenn es meint, daß der Seperator ja eigentlich das Dezimaltrennzeichen ist und nicht wirklich weis was es tun soll dann soll es doch fragen und es sich merken.

Ansonsten einfach Regional- und Spracheinstellungen von Windows auf Englich stellen und alles geht wie von alleine.  :top: (der zweite Weg)

Gruß Trix
Titel: WsWin to mySQL
Beitrag von: Wettermichel am 01.09.2008, 00:09:40
Zitat von: "Holli"Das "Unvermögen" besteht darin, daß sich MS Office bei der Installation ungefragt Dateien mit der Endung .csv krallt, aber dann nicht in der Lage ist, dieses Format korrekt zu behandeln.

Einen Doppelklick auf eine Datei kannst du nicht wirklich als "unvermögen ein Programm richtig zu bedienen" bezeichnen. Ich habe diesem Müllhaufen weder vorgeschrieben noch erlaubt, dieses Dateiformat grundsätzlich zu öffnen. Wenn die Programmierer ihre Software schon für so fähig halten, daß sie das ohne Probleme kann, und deshalb eine Rückfrage beim User für überflüssig halten, sollte das auch tasächlich so sein. Ist es aber nicht.

Stimmt, das könnte man erwarten, der Pendant macht es hier besser.

ZitatEin , als Feldtrenner in einer Datei zu ignorieren, die als Typ "Comma separated values" hat, findest du keinen Bug?

Was aber nur für den Doppelklick gilt.

Unter Datei "öffnen" als Dateityp "Textdatei" ausgewählt öffnet Excel 2000 alle *.csv Dateien so wie es sein soll, alles schön getrennt.

ZitatDer Umweg über Ändern der Extension und komplett manuelle Einstellung der Importparameter (die natürlich bei jedem Import dieselben schwachsinnigen und sicher nie benötigten Voreinstellungen haben) ist der einzige Weg, eine .csv nutzbar in Excel 2003 zu importieren.

Die Extension brauchst Du nicht zu ändern, Du mußt nur  statt Textdatei alle Datein auswählen und kannst dann auch *.csv Dateien mit dem Importassistenten importieren.

Und das die Einstellungen natürlich bei jeder neu zu importierenden Datei neu einzustellen sind hat sicherlich auch seine Berechtigung.
Natürlich könnte das auch verbessert werden wie viele andere Dinge auch.

ZitatDas liegt vermutlich an deinem Unvermögen, meine Fähigkeiten auch nur annähernd richtig einschätzen zu können.

Ich habe das wie oben schon geschrieben nur auf Excel bezogen.

Wenn ich deine Ausführungen Lese wie Du dir scheinbar einen abbrichst was das Einlesen/Importieren einer einfachen *.csv Datei in Excel betrifft........ naja lassen wir das.

Natürlich könnte man von MS Office mehr erwarten, da gebe ich Dir Recht zumal das Programm auch einen schönen Happen kostet.

Aber so dramtisch wie Du hier schreibst ist es bei weitem nicht.
Das der eine oder andere damit Probleme hat ist ja auch klar, aber das ist mit vielen anderen Programmen ebenso.

Gruß

Michael
Titel: WsWin to mySQL
Beitrag von: Holli am 01.09.2008, 00:14:26
Zitat von: "Trix"Wenn es meint, daß der Seperator ja eigentlich das Dezimaltrennzeichen ist
Anzunehmen, daß das Komma in einer CSV-Datei der Dezimaltrenner ist, ist schon ziemlich hirnverbrannt. Das kann er nach der Definition nur dann sein, wenn er innerhalb von " steht. Aber Definitionen von Standards (auch wenn sie älter sind als die Firma MS) haben MS ja noch nie sonderlich interessiert.

ZitatAnsonsten einfach Regional- und Spracheinstellungen von Windows auf Englich stellen und alles geht wie von alleine.  (der zweite Weg)
Um einen Bug in MS Office zu umkurven? Im Leben nicht. Es gibt einen viel einfacheren Weg: Open Office benutzen.
Titel: WsWin to mySQL
Beitrag von: Trix am 01.09.2008, 00:26:58
Hi

ZitatAnzunehmen, daß das Komma in einer CSV-Datei der Dezimaltrenner ist, ist schon ziemlich hirnverbrannt.

Ich weis ja nicht in welchem Land Du so Wohnst, aber bei uns in Deutschland ist das so.

ZitatUm einen Bug in MS Office zu umkurven? Im Leben nicht. Es gibt einen viel einfacheren Weg: Open Office benutzen.

Wenn Du dir das Leben schwer machen willst, mach doch. (CSV wird es wohl noch schaffen) Aber sich immer nur gegen alles zu wehren bringt auf die Dauer auch nichts.

Ich hab das ja auch für die geschrieben die diese Dateien einfach bearbeiten wollen.

Gruß Trix
Titel: WsWin to mySQL
Beitrag von: Holli am 01.09.2008, 00:35:43
Zitat von: "Wettermichel"
ZitatEin , als Feldtrenner in einer Datei zu ignorieren, die als Typ "Comma separated values" hat, findest du keinen Bug?

Was aber nur für den Doppelklick gilt.

Unter Datei als Dateityp Textdatei ausgewählt öffnet Excel 2000 alle *.csv Dateien so wie es sein soll, alles schön getrennt.
Muß ich langsamer oder lauter für dich schreiben? Das tut es nicht!

ZitatUnd das die Einstellungen natürlich bei jeder neu zu importierenden Datei neu einzustellen sind hat sicherlich auch seine Berechtigung.
Welche?
Die Wahrscheinlichkeit, daß ein Benutzer eine beliebige Datei mit diesen voreingestellten Parametern importieren will/muß, tendiert gegen Null. Die weitaus größte Zahl der Benutzer wird diese Einstellung niemals während der gesamten Nutzungszeit von MS Office benötigen. Die Wahrscheinlichkeit, daß ein Benutzer eine Datei mit denselben Parametern wie beim letzten Mal importieren will, dürfte irgendwo bei 0,5-0,7 liegen, also um etliche Faktoren höher.
ZitatNatürlich könnte das auch verbessert werden wie viele andere Dinge auch.
An Stellen, wo sich die Randbedingungen in den letzten 20 Jahren nicht mehr geändert haben, sollte es rein gar nichts mehr zu Verbessern geben. Das Optimum hätte vor süätestens 10 Jahren erreicht sein müssen.

ZitatWenn ich deine Ausführungen Lese wie Du dir scheinbar einen abbrichst was das Einlesen/Importieren einer einfachen *.csv Datei in Excel betrifft........ naja lassen wir das.
Nicht ich breche mir einen ab, sondern Excel. Es gibt vor, mit dem Format umgehen zu können und baut dabei ausschließlich Mist.

ZitatAber so dramtisch wie Du hier schreibst ist es bei weitem nicht.
Doch, genau so dramatisch ist es. Einen komfortablen Weg gibt es nicht.
ZitatDas der eine oder andere damit Probleme hat ist ja auch klar, aber das ist mit vielen anderen Programmen ebenso.
Hallo? CSV-Importe gehören zum Standardrepertoire jeder Datenbankanwendung und jeder Tabellenkalkultion. Selbst Freeware-Adressverwaltungen schaffen das. Nur das teuerste Produkt am Markt schafft es nicht ohne umständliche Nachhilfe.
Titel: WsWin to mySQL
Beitrag von: Holli am 01.09.2008, 00:46:23
Zitat von: "Trix"
ZitatAnzunehmen, daß das Komma in einer CSV-Datei der Dezimaltrenner ist, ist schon ziemlich hirnverbrannt.

Ich weis ja nicht in welchem Land Du so Wohnst, aber bei uns in Deutschland ist das so.
Gib bitte mal einen Link zur CSV-Definition, die in Deutschland anders ist als im Rest der Welt.

Ein Komma, das nicht in gequoteten Feldinhalten steht, kann nichts anderes als der Feldtrenner sein. Feldinhalte mit Kommata müssen gequotet werden.

ZitatIch hab das ja auch für die geschrieben die diese Dateien einfach bearbeiten wollen.
Für Office 2003 hast du viel Falsches geschrieben. Wie du es beschreibst, wird es wohl jeder versuchen, der sich ein kleines bißchen auskennt, und genau so geht es nicht.
Titel: WsWin to mySQL
Beitrag von: Trix am 01.09.2008, 00:55:42
Hi

ZitatEin Komma, das nicht in gequoteten Feldinhalten steht, kann nichts anderes als der Feldtrenner sein. Feldinhalte mit Kommata müssen gequotet werden.

Möglicherweise würde auf diese Art und Weise jede zweite Sekretärin in den Wahnsinn getrieben.

ZitatFür Office 2003 hast du viel Falsches geschrieben. Wie du es beschreibst, wird es wohl jeder versuchen, der sich ein kleines bißchen auskennt, und genau so geht es nicht.

Gerade vorher und nach Deinem Post nochmal mit Excel 2003 getestet - Wenn Du das nichtmal hin bekommst.

- Kann ich Dir ein Tut. mit Bildern machen.

Gruß Trix
Titel: WsWin to mySQL
Beitrag von: Trix am 01.09.2008, 01:38:19
Hi

ZitatGib bitte mal einen Link zur CSV-Definition, die in Deutschland anders ist als im Rest der Welt.

google doch mal

Zwar keine Definition aber eine Beschreibung.

http://de.wikipedia.org/wiki/CSV_(Dateiformat)

Kannst Dir ja auch mal das Beispiel ansehen.

Aber DU wirst da sicherlich einen Gegenlink dazu parat haben.

Sei es wie es sei, leben werden wir damit trotzdem.

Gruß Trix
Titel: WsWin to mySQL
Beitrag von: Wettermichel am 01.09.2008, 01:41:40
Zitat von: "Holli"Muß ich langsamer oder lauter für dich schreiben? Das tut es nicht!
ich hab ja kein Problem damit, sondern Du!
Andere Lesen ja auch noch mit und für die anderen Leser sind die Hinweise eventuell von Nutzen, auch wenn Du anderer Meinung bist.

Wenn es bei Dir nicht geht muß das ja nicht zwangsläufig bei jedem so sein.
Aber da Du ja Open Office verwendest erübrigt sich jede weitere Diskusion darüber.
Lamentieren hilft nicht weiter auch wenn Excel schon vor 10 Jahren sein Optimum erreicht haben müßte.
Und wenn Du schon Open Office einsetzt, was regst Du dich über Excel auf.


An die anderen Excelnutzer: Es geht meistens ohne großen Aufwand, bei manchen Excelinstallationen sogar mit Doppelklick was die ws_newdata.csv betrifft.

Gruß

Michael
Titel: WsWin to mySQL
Beitrag von: Holli am 01.09.2008, 02:27:52
Zitat von: "Wettermichel"Wenn es bei Dir nicht geht muß das ja nicht zwangsläufig bei jedem so sein.
Mindestens bei Sprite01 ist ebenfalls so. Und genau diesen Screenshot habe ich kommentiert.

ZitatAber da Du ja Open Office verwendest erübrigt sich jede weitere Diskusion darüber.
Ich verwende beides. OO in diesen Fällen deshalb, weil es CSV einfach und ohne Tricks öffnet.

ZitatLamentieren hilft nicht weiter auch wenn Excel schon vor 10 Jahren sein Optimum erreicht haben müßte.
Ich lamentiere nicht, ich beschreibe öffentlich Bugs eines sauteuren Office-Pakets. Stört dich was daran? Bekommst du Geld von MS?

Und für deine Leseprobleme: Ich habe nicht gefordert, daß Excel vor 10 Jahren sein Optimum erreicht haben sollte. Beim Handling eines steinzeitlichen Formates, das auf dem besten Weg ist, durch XML abgelöst zu werden, sollte es das aber geschafft haben, bevor das Format ausstirbt.

Deine rhetorischen Sinnverdrehungen kannst du dir wohin stecken, wo nie die Sonne scheint.

ZitatUnd wenn Du schon Open Office einsetzt, was regst Du dich über Excel auf.
Weil ich für die Bugs verdammt viel Geld bezahlt habe. Und weil ich nicht einsehe, diese teuren Bugs mit einer kostenlosen Konkurrenzsoftware zu umgehen.

ZitatAn die anderen Excelnutzer: Es geht meistens ohne großen Aufwand, bei manchen Excelinstallationen sogar mit Doppelklick was die ws_newdata.csv betrifft.
Das ist ja tröstlich, daß es manchmal doch zufällig klappt.
Titel: WsWin to mySQL
Beitrag von: leknilk0815 am 01.09.2008, 05:31:26
Sevus,
es gibt eine Möglichkeit, diesen hirnverbrannten MS- Schmarrn in Excel 2003 einigermassen "mit Anstand", ohne Umbenennungen und Kopfstände zu bewältigen:

Im Menü "Daten" - "externe Daten importieren" anklicken, dann kommt der gewohnte Assistent (sofern dieses PlugIn installiert ist, ansonsten nachinstallieren). Mit Doppelklick geht natürlich nix...
Titel: WsWin to mySQL
Beitrag von: Rabbit69 am 01.09.2008, 06:38:33
Zitat von: "Holli"
Zitat von: "Trix"Ansonsten einfach Regional- und Spracheinstellungen von Windows auf Englich stellen und alles geht wie von alleine.  (der zweite Weg)
Um einen Bug in MS Office zu umkurven? Im Leben nicht. Es gibt einen viel einfacheren Weg: Open Office benutzen.

Leute, leute

Warum denn so ein Aufstand wegen diesem sogenannten Bug? Ihr könnt mich jetzt steinigen oder wie auch immer... Aber mir scheint das Problem liegt nicht im Excel ansich, sondern an der Art wie man Internationale Standards umsetzt.

In Deutschland gilt halt das gramatische Komma als dezimal Trennzeichen, was im Rest der Welt der gramatische Punkt ist. Nun führt es halt immer zu Problemen, wenn jemand ein Extrazüglein fährt, oder etwas härter formuliert, die Ingnoranz einen International verabschiedeten Standard nicht umzusetzen. Siehe auch die USA mit ihren Pfunden und Galonen!

Wie bitte soll Excel wissen, wann es nun das Komma als Dezimaltrenner interpretieren soll und wann den Punkt, wenn Ihr dem Programm mit Euren Einstellungen sagt das Komma ist das Deziamltrennzeich, das interpretiert das Excel in einer Text-Datei, und das ist CSV halt nun einmal, auch so und nicht anderst. Wo kämen wir den da hin, wenn Excel einfach nach Gutdücken (Dies ist bis jetzt glücklicherweise dem Teil hinter der Tastatur vorbehalten.) interpretieren würde?


Anmerkungen für Holli:
[/size]
Titel: WsWin to mySQL
Beitrag von: Holli am 01.09.2008, 07:34:31
Zitat von: "Rabbit69"Wie bitte soll Excel wissen, wann es nun das Komma als Dezimaltrenner interpretieren soll und wann den Punkt,
Es geht nicht um Dezimaltrenner, sondern um den Feldtrenner in einem seit über 20 Jahren unveränderten Standardformat. Wenn in diesem Format Kommata in den Feldinhalten vorkommen, müssen die Inhalte in Quotes gesetzt werden. Welche Bedeutung die Kommata in den Inhalten haben, ist für den Import zunächst völlig unerheblich. Im ersten Schritt müssen die Felder getrennt werden, und schon da versagt Excel. Bis zu dem Problem, in den Feldern Dezimal- und Tausendertrenner unterscheiden zu müssen, kommt es gar nicht.

Zitatwenn Ihr dem Programm mit Euren Einstellungen sagt das Komma ist das Deziamltrennzeich, das interpretiert das Excel in einer Text-Datei, und das ist CSV halt nun einmal, auch so und nicht anderst.
CSV ist eben kein einfaches Textformat, sondern ein Hilfsformat zum Transport oder zur Speicherung von tabellarischen Daten. Darin ist das Komma als Feldtrenner festgelegt und darf nicht anders interpretiert werden, weil sonst das ganze Format sinnlos wird.

ZitatWo kämen wir den da hin, wenn Excel einfach nach Gutdücken (Dies ist bis jetzt glücklicherweise dem Teil hinter der Tastatur vorbehalten.) interpretieren würde?
Genau dahin, daß Excel zwar vorgibt, ein verbreitetes standardisiertes Format importieren zu können, es tatsächlich aber nicht kann, weil es Daten interpretiert, und zwar falsch. Interpretieren darf Excel erst, nachdem die Felder getrennt sind und die Inhalt eingefügt werden. Dann darf es anfangen, zwischen Dezimal-, Tausendertrenner und Datumspunkten zu unterscheiden. Nicht vorher.

Dieses Problem hat also nicht das Geringste damit zu tun, ob national das Komma einen Dezimal- oder Tausendertrenner darstellt oder zwei Satzteile eines Textes trennt. Wenn sich Excel dabei durch eine nationale Einstellung verwirren läßt, ist das ein Bug und sonst nichts.

ZitatNEIN, ich zweifle nicht an deinen Fähigkeiten Excel zu bedienen,
aber für mich gilt halt man sollte einffach fair bleiben.
So ist es. Dann unterstellt man dem Gegenüber nicht grundlos Unfähigkeit, schon gar nicht, wenn man offensichtlich nicht mal genau weiß, worüber man redet.
Titel: WsWin to mySQL
Beitrag von: Cato am 01.09.2008, 08:30:24
Moin moin,

hieß das Thema nicht "WsWin to MySQL"?!

Dies funzt doch wunderbar.

Siehe hier:
http://www.wetterstationen.info/phpBB/viewtopic.php?t=13789&highlight=sql

Ganz nebenbei, bei meinem Office 2007 klappt alles wunderbar. ;-)

VG
Cato :sonnig:  :blitz:
Titel: WsWin to mySQL
Beitrag von: Holli am 01.09.2008, 08:47:17
Zitat von: "Cato"Ganz nebenbei, bei meinem Office 2007 klappt alles wunderbar. ;-)
Daß alles wunderbar klappt, bezweifle ich bei einem MS-Produkt ;)

Daß der Import klappt, glaube ich dir sogar. Wäre auch trauruíg, wenn sie den Bug in 4 Jahren nicht behoben hätten. Aber dafür werde ich ganz sicher kein Geld ausgeben. Ich nutze Office 2003 nicht mal zu 20% aus.
Titel: WsWin to mySQL
Beitrag von: Gunga am 01.09.2008, 09:03:33
Na da hat Holli schon recht.

Excel kann problematisch sein, aber auch sehr einfach. Der Einsatz bestimmt die Probleme.

Gruß

Reiner :-)  :kaffee: Takt 15,6°C Lakt 1013,6hPa Fakt 66% :wolke: Gewitter im Anmarsch
Titel: WsWin to mySQL
Beitrag von: Wetterwarte am 01.09.2008, 10:20:41
Zitathieß das Thema nicht "WsWin to MySQL"?!

Ganz genau! Daher wenn ihr dazu noch mehr Erfahrungen austauschen wollt, macht einen neuen Beitrag auf, oder benutzt OpenOffice. Punkt!  :-D

Also zurück zum eigentlichen Thema.
Titel: WsWin to mySQL
Beitrag von: Wetterwarte am 01.09.2008, 11:02:42
Zitat von: "Sprite01"
Zitat von: "Wettermichel"Danke für deine Scripte funktionieren ohne Probleme.:top:

Wohl dem, der es kann. Aber so lernt man ja (mit Hilfe) am besten ...  :-)

Bei mir kommt zur Zeit das:
ZitatNotice: Use of undefined constant d008080a - assumed 'd008080a' in /www/htdocs/XXXXXX/wswintomysql/wetterdatensteuerskript.php on line 7
Transmission erfolgreich --Aktuelldaten-- Query:

INSERT INTO `data_aktuellwerte` ( `id` , `Datetime` , `Datum` , `Datummetric` , `Stunde` , `Tag` , `Monat` ,
    `Jahr` , `Uhrzeit` , `Temp` , `Temp_Boden` , `Feuchte`, `Luftdruck` , `Regenmenge` ,
    `Windgeschwindigkeit` , `Windrichtung` , `Taupunkt` , `Windchill`)

      VALUES (NULL ,'2008-08-31 15:54' , '2008-08-31', '31.08.2008' , '15' , '31', '08', '2008', '15:54',
               '27.0', '27.0', '27.3' , '33.5' , '34' , '29' , '13' ,
            '1009.0' , '0.000');

Antwort: Unknown column 'Datetime' in 'where clause'

Die Werte muss ich noch ein wenig anpassen, aber was bedeuten die Meldungen ?

Sorry, aber bei php und mysql bin ich Beginner.  :oops:

Edit: Die 1. Meldung habe ich durch einfügen von ' und ' weg.  8-)

Hallo Dirk,

jep, bei der ersten Meldung hatte er wahrscheinlich den Datenbanknamen nicht richtig ausgelesen. Dann zur zweiten Fehlermeldung.

Wie ich sehe, wurde die Variable $datetime in die SQL Anweisung richtig übernommen. Da hier von einer Unbekannten in der where Anweisung geredet wird, liegt es in der SQL Anweisung. Ich frage mich nur, warum hier eine where Anweisung gefunden wurde, da es  die dort gar nicht geben sollte.

Moment, da er die Erfolgsmeldung bereits ausgegeben hat, muss es erst danach zum Abbruch gekommen sein. Das kann sich nur um die Löschbefehle handeln, welche die Datenbank schlank halten sollen.

Probiere mal folgendes:

Da wo in den zwei letzten SQL Anweisungen im aktuelldatenerstellung.php Skript steht:

UNIX_TIMESTAMP(Datetime)

ersetze das durch

UNIX_TIMESTAMP('$datetime')
Titel: WsWin to mySQL
Beitrag von: Sprite01 am 01.09.2008, 12:27:20
Danke werde ich ausprobieren.  :-)

An (fast) alle anderen hier, in diesem Thread auf jeden Fall Thema schon mitten auf Seite 1 verfehlt.
Manchmal verstehe ich es nicht, so viel Getöse ...  :confused:
Titel: WsWin to mySQL
Beitrag von: Royi am 01.09.2008, 14:55:10
Trotzdem zwar passt das nicht aber ich kann auch nicht nachvollziehen wie eine firma es sich leisten kann Bugs nie zu korrigieren. Wäre ja fast schon wie einen Mp3 Player auszuliefern der angeblich mp3 und wma kann aber bei jedem zweitem Mp3 abstürzt

Wer kauft denn dann so ein Produkt oder gibt es nicht gleich wieder zurück?
Titel: WsWin to mySQL
Beitrag von: Sprite01 am 01.09.2008, 17:47:28
So gemacht, folgende Meldung:
ZitatTransmission erfolgreich --Aktuelldaten--
Warning: unlink($csvdatei) [function.unlink]: No such file or directory in /www/htdocs/XXXXXX/wswintomysql/aktuelldatenerstellung.php on line 86
Hauptskript erfolgreich beendet!

Zeile 86: unlink ($csvdatei);

Habe mal: unlink ('$csvdatei'); probiert. Keine Änderung.
Titel: WsWin to mySQL
Beitrag von: Wetterwarte am 01.09.2008, 18:18:37
Sieht schon mal besser aus. Die vorherige Fehlermeldung ist damit schon mal weg.

Bei Funktionen mit Angabe der Variable brauchst du keine Gänsefüßchen machen. Das ist nur bei Textabgrenzungen notwendig.

Unlink ist der letzte Befehl im Aktuelldatenscript. Übernommen wird der Dateipfad zur CSV von oben. Beim unlink hat er sie nicht gefunden, obwohl der Dateipfad richtig sein muss, da das Skript erfolgreich beendet wurde. Daher nehme ich an, dass du den absoluten Dateipfad angeben musst. Bei Apache Webserver ist das häufig /var/www/benutzername/ordner für die HP/gesicherter_bereich/ws_newdata.csv

Was steht bei dir neben $csvdatei in der dritten Zeile?
Titel: WsWin to mySQL
Beitrag von: Sprite01 am 01.09.2008, 18:39:12
:oops:  zur Zeit nur: $csvdatei = 'ws_newdata.csv';
Titel: WsWin to mySQL
Beitrag von: Wetterwarte am 01.09.2008, 18:52:12
Das wird es sein. Dann ändere oben den Pfad so, dass die CSV absolut verlinkt wird.

Die absolute Verlinkung findest du entweder durch PHPInfo heraus oder da die Fehlermeldungen auch den absoluten Pfad angeben, nehmen wir gleich das als Tipp.

Sollte sich deine CSV-Datei im selben Ordner wie die aktuelldatenscript.php Datei befinden, dann änderst du die dritte Zeile so um:

$csvdatei = '/www/htdocs/XXXXXX/wswintomysql/ws_newdata.csv';
Titel: WsWin to mySQL
Beitrag von: Sprite01 am 01.09.2008, 19:02:20
Das habe ich so probiert, es kommt genau die gleiche Meldung.
Ich habe allerdings noch nichts mit .htaccess gemacht.
Dazu bin ich noch zu sehr Laie, hat es damit zu tun ?
Denke aber nicht.

Sieht also so aus das die csv gefunden wird, in die Datenbank eingelesen wird,
aber zum löschen nicht gefunden wird.
Titel: WsWin to mySQL
Beitrag von: Wetterwarte am 01.09.2008, 19:20:31
Mit der htaccess hat das nichts zu tun.

Merkwürdig ist nur, dass zu 90% aller Fälle unlink nicht funktioniert, weil kein absoluter Pfad genommen wurde. Es gibt auch noch die Variante, dass der Webserver im Save Mode läuft und unlink, was normalerweise da kein Problem darstellt, nicht ausgeführt wird. Dann hätte es aber eine entsprechende Meldung gegeben.

Da er aber immer noch die Datei nicht gefunden hat, sollte man PHP vertrauen, und nochmal nach der csv Datei schauen, vielleicht im FTP Programm auf aktualisieren klicken und schauen, ob die Datei noch vorhanden ist, oder schauen, ob es bei der Verlinkung nicht einen Tippfehler gegeben hat.
Titel: WsWin to mySQL
Beitrag von: Sprite01 am 01.09.2008, 22:23:53
Dann streiche ich erst mal die Segel.

- Verlinkung noch mal kontrolliert und auch mal den Link aus der Fehlermeldung rein kopiert (natürlich mit der csv am Ende).
- ws_newdata.csv ist auf dem Server vorhanden (wird ja auch eingelesen)
- auch nach der Meldung ist die Datei noch vorhanden

PHP-Version 4.4.8
safe_mode   Off   
safe_mode_exec_dir   no value   
safe_mode_gid   On   
safe_mode_include_dir   no value

Aber ich komme noch dahinter ...  ;-)
Titel: WsWin to mySQL
Beitrag von: Wetterwarte am 02.09.2008, 13:31:58
Hm, zum testen, ob da irgendwo die Datei im Script noch geöffnet ist, probiere folgendes zum testen.

Schreibe in eine leere Textdatei folgenden Text und speichere die Textdatei als php Dokument ab. Dann auf den Server damit (Pfadangabe dabei wieder beachten) und ausführen.


PHP Beginn
unlink ("/www/htdocs/XXXXXX/wswintomysql/ws_newdata.csv");
PHP Ende


Da es ganz klar am unlink scheitert, wäre es interessant zu wissen, ob der Befehl alleine ordnungsgemäß ausgeführt wird, ohne, dass andere Faktoren im Script den Abbruch verursachen.
Titel: WsWin to mySQL
Beitrag von: Sprite01 am 02.09.2008, 17:42:17
:oops: Der Fehler ist gefunden, ich traue es mich fast gar nicht zu schreiben.  :oops:
Bitte schreibe in deiner Anleitung für "Unbedarfte" wie mich noch das der neue Ordner mit "777" zu versehen ist ...
:dumdidum:  Kann ja sonst nicht funktionieren.

Auf jeden Fall recht herzlichen Dank für deine Geduld mit mir, Thomas.
Ich hab da noch andere Fragen zum Script, dürfte ich dich gelegentlich kontaktieren ?
Titel: WsWin to mySQL
Beitrag von: Wetterwarte am 02.09.2008, 18:08:59
Ach her je, das erklärt alles. Na dann ist ja nochmal alles gut gegangen. Nicht das Script war schuld, sondern die Rechtevergabe. Danke, dass du mich darauf aufmerksam gemacht hast. :top:  Sonst hätte ich noch den ganzen Code umgeschrieben.  ;-)
Titel: WsWin to mySQL
Beitrag von: trexis5 am 05.12.2008, 22:01:45
Hi,

also Skript habe ich auf meine Logdatei angepasst.
Geht perfekt.

So und nun?  :-)
Jetzt bräuchte man noch eine Seite die eine Grafik zeichnet.

Gibt's vielleicht sowas auch schon fertig?
Wäre cool.

Danke.
Titel: WsWin to mySQL
Beitrag von: Wetterwarte am 06.12.2008, 09:34:27
Hi,

es gibt mehrere Möglichkeiten, um Daten graphisch darzustellen.

1. Meine Variante ist WsWin (http://www.pc-wetterstation.de), da ich mit diesem Programm ohnehin die Daten auslese und übertrage.

2. Eine serverseitige Generierung von Daten: Dazu gibt es viele Alternativen im Web. Einfach mal googlen: http://www.google.de/search?hl=de&q=php+diagramme&btnG=Suche&meta=

3. Eine lokale Variante: Ohne Frage, da gibt es nichts besseres als Gnuplot: http://www.gnuplot.info/
Titel: WsWin to mySQL
Beitrag von: Royi am 13.02.2009, 19:34:48
ich hätte eine frage kann ich die alten dateien auch in die mysql datenbank importieren?

wegen das speichers sollte das eig. kein problem sein, habe 3gb
Titel: WsWin to mySQL
Beitrag von: trexis5 am 14.02.2009, 07:55:40
Klar kann man die Importieren.
Wie liegen die Daten vor?


Hier meine Wetterdaten mit Grafiken !

Die Grafiken werden immer aktuell generiert.
http://www.auto-steuerung.de/htm/info/hauptframe.php
Titel: WsWin to mySQL
Beitrag von: Cato am 14.02.2009, 21:31:55
Royi,

wenn Du sie als xyz.csv vorzuliegen hast, schau hier
http://www.wetterstationen.info/phpBB/viewtopic.php?t=13789&highlight=sql

VG
Cato
Titel: WsWin to mySQL
Beitrag von: Royi am 14.02.2009, 21:37:46
danke, aber kann ich trotzdem das script von wetterwarte weiterwenden? fände es toll wenn mir jemand erklären könnte wie ich die EXP_**_**.csv importieren könnte. mit der exp meine ich die datei von wswin