MySql-Datenbankanbindung über Dateiexport ??

Fragen, Anregungen zur PC-Wetterstations-Software

Moderatoren: Werner, Tex, weneu

rolsch

Beitrag von rolsch »

Hallo @Othi,
... danke, hast meine Frage hiermit gelöst!
stangl99

Beitrag von stangl99 »

weneu hat geschrieben:Hallo stangl,
Dir ist schon klar, dass du mit WSWIN
- ohne einen Finger zu rühren, eine komplette Wetter-Website erstellen kannst
- wenn du dich bereits besser auskennst, mit Hilfe der vielen Variablen in WSWIN eigene Zusammenstellungen "kreieren" kannst.
Dass Problem ist, dass ich die Bilder von den Verläufen nur machen kann, wenn Windows nicht gesperrt ist. D.h. Falls ich Windows sperre sehe ich nur die Bilder von der Windows-Anmeldung. Dies wiederum bedeutet, dass ich es nur mit ner mysql datenbank machen kann da ansonsten ein großes Sicherheitsrisiko entsteht. Und unser Administrator will dieses nicht in Kauf nehmen. Es handelt sich hier nämlich um eine Diplomarbeit in einer höheren Schule.

deshalb bleibt mir keine andere möglichkeit als es mit mysql zu versuchen.

trotzdem danke

mfg stangl99
mondi

Beitrag von mondi »

Hallo!
Zwei Fragen:
Ich kenne mich mit dem PHP Interpreter nicht aus; mit PHPmyadmin arbeite ich seit längerem.
Kann mir jemand das Dump (Schema) der Datenbank sowie die Tabellenstrukturen für diese MYSQL Schnittstelle WSWINDB überspielen.
Das wäre sehr freundlich! Oder kann man nur mit einer lokalen PHP Installation mit diesem Skript arbeiten?
Irgendwo habe ich gelesen, WSWIN exportiert direkt nach MYSQL - habe ich was übersehen?
Danke
Georg
Benutzeravatar
weneu
Site Admin
Beiträge: 11572
Registriert: 22 Feb 2002 01:00
Wohnort: Donauwörth
Danksagung erhalten: 18 mal
Kontaktdaten:

Beitrag von weneu »

Hallo Georg,
nur zum letzten Teil deiner Frage:
Irgendwo habe ich gelesen, WSWIN exportiert direkt nach MYSQL - habe ich was übersehen?
Es wäre zuviel gesagt, wenn man behauptet, dass WSWIN direkt nach mysql exportiert. Aber WSWIN erstellt z.B. eine Datei ws_newdata.csv, die sich recht gut zum Einlesen in eine mysql-Datenbank eignet. Aber das Datenbank-Know-How muss natürlich vorhanden sein, denn WSWIN stellt ja lediglich die Daten bereit.
Oder du verwendest eben die Lösung von Othi
mondi

Beitrag von mondi »

danke für die rasche antwort;
ich würde schon gern diese loesung von Othi ausprobieren, aber dafür wäre es nett, wenn mir mal jemand einen DUMP inkl. Tabellenstruktur schicken könnte.
Danke
Georg
mondi

Beitrag von mondi »

Noch mal kurz zu dieser MYSQL Geschichte.
Ich habe mir die Tabelle jetzt gebastelt und die wswindb.php überträgt die Daten aus der ws_newdata.csv sauber in die MYSQL Datenbank, aus der ich sie dann wiederum auf meiner Homepage auslesen kann. Das ist auch nicht das Problem.

Allerdings verstehe ich im 2 Schritt eine Sache nicht. WEnn ich wswindb.php aus einer lokalen Installation heraus betreibe, muss ich natürlich einen Server bedienen, der über einen offenen mysql port verfügt - was immer ein sicherheitsrisko für den server darstellt. Diese Lösung entfällt also.

Alternative: ich betreibe wswindb.php ebenfalls gleich mit auf dem server, wie komme ich dann an die daten der ws_newdata.csv ??? Muss ich die via ftp auch auf den Server laden oder gibt es da noch einen eleganteren Weg?

Dann wäre es wichtig zu wissen, wie bringe ich wswindb dazu, automatisch die daten auf meiner webseite zu aktualisieren? Im Prinzip kann ich mir nur vorstellen, wswindb über einen include autmatisch mit auszuführen, wenn jemand meine webseite betritt? Oder gibt es andere Lösungen?

Grüße
Georg
othi

Beitrag von othi »

Alternative: ich betreibe wswindb.php ebenfalls gleich mit auf dem server, wie komme ich dann an die daten der ws_newdata.csv ??? Muss ich die via ftp auch auf den Server laden oder gibt es da noch einen eleganteren Weg?

Dann wäre es wichtig zu wissen, wie bringe ich wswindb dazu, automatisch die daten auf meiner webseite zu aktualisieren? Im Prinzip kann ich mir nur vorstellen, wswindb über einen include autmatisch mit auszuführen, wenn jemand meine webseite betritt? Oder gibt es andere Lösungen?
Hallo
Folgenden Vorschlag:

1.) Du kannst die newdata.csv wirklich per ftp hinaufkopieren (wie alle anderen HTML Files)
2.) zum Aufruf kannst du entweder den cron (bei Linux) oder Taskplaner bei Windows verwenden.

Ich persönlich mache es indem ich dach dem Auslesen (WSWIN Einstellung Externes FTP Programm) kein Ftp Programm aufrufe sonern eine bat Datei indem ich einfach vorher den FTP Upload mache und dann quasi aus der Kommandozeile wswindb (php -q wswindb.php) aufrufe.
Sicherheismäßig habe ich auf IP Adressen restriktiert dan gibts weniger Gefahrenpotential.

Gruß Othi
mondi

Beitrag von mondi »

Hallo Othi,
danke für dein Script und danke für den Support - nun ist mir das einigermaßen klar.

Noch eine Sache: Jedesmal wenn dein Script die Daten aktualisiert, bekomme ich irgendwie ein unschönes mysql echo angezeigt, was einen normalen user ja nicht interessiert.

Bild

Hast du eine Idee, wo sich die Anzeige des INSERTS im Script unterdrücken lässt?

ciao
georg
othi

Beitrag von othi »

wie rufst du das ganze auf - ist ja kein echo drinnen ????
mondi

Beitrag von mondi »

der komplette INSERT wird angezeigt, wenn ich wswindb.php ausführe und wswind neue daten für die mysql findet. nach einer aktualisierung von wswindb.php ist das natürlich weg.
othi

Beitrag von othi »

Hallo

schick mir bitte mal die anzahl_test.php - irgend was kann da nicht sein...
es ist deffinitiv kein echo drinnen wenn du nie Debug Funktion (/V) nicht einschaltest....
Verwendest du Version 1.1 ? oder noch 1.0

Gruß Othi
mondi

Beitrag von mondi »

Zuletzt geändert von mondi am 26 Jun 2004 13:15, insgesamt 1-mal geändert.
othi

Beitrag von othi »

Hallo

wie gesagt ich würde den das wswindb nicht mit Aufruf der Homepage machen sondern von WSWIN aufrufen lassen - wenn du mehr Aufrufe deiner Seite hast brauchst du ja nicht jedes mal den ganzen Insert durchzuackern.
außerdem solltest du nicht einen totalen select über alle daten machen wenn du nur den letzten wert brauchst. (Wenn du wie ich 2 Jahr in der DB hast dauert der Aufruf schon einige Zeit)
besser:

Code: Alles auswählen

select * from daten where timestamp = (select max(timestamp) from daten);
geht aber erst ab Myqsl 4.1
vorher muss du den max(timestamp) extra auswerten

Code: Alles auswählen

# SELECT-Statement definieren
   $sql1=mysql_query("SELECT max(timestamp) FROM daten");
   $daten=mysql_fetch_row($sql1);
   $max = $daten[0];

   $sql1=mysql_query("SELECT * FROM daten where timestamp = $max");
   $daten=mysql_fetch_row($sql1);
  
  # Element 3 des Arrays ausgeben
................
 
mache folgende Änderung:

Code: Alles auswählen

   @mysql_query($sql,$vb) or die ("\nWerte konnten nicht geschrieben werden\n".mysql_errno()." ".mysql_error());
  }
 }
}


# echo $sql;  <---- diese Zeile auskommentieren !!! oder löschen  

fclose&#40;$fp&#41;;
mysql_close&#40;&#41;;

# Datenfile löschen
if&#40;strchr&#40;$uebergabe,"f"&#41; == false&#41;&#123;
@unlink&#40;$file&#41; or die &#40;"Datenfile konnte nicht geloescht werden\n"&#41;;
&#125;
if &#40;strchr&#40;$uebergabe,"d"&#41; == true&#41; fclose&#40;$deb&#41;;
die&#40;&#41;;
?>
Gruß Othi
mondi

Beitrag von mondi »

Okay! INSERT Problem ist gelöst; danke für die HIlfe.
Was die Abfrage betrifft; leider arbeite ich noch mit einem 3er MYSQL ...
Was anderes: Kannst du ein FTP-Programm empfehlen, das möglichst unproblematisch solche Routinen ausführt wie diese CSV Datei ins Netz zu befördern?
Danke!
Grüße
Georg
othi

Beitrag von othi »

Sch mal bei Herbert Schneider im Download
http://members.aon.at/schneider.herbert
(HS-Uploader)
Gruß Othmar
Antworten