hallo ... ich komm mal wieder nciht weiter und brauche eure hilfe ...
bitte nicht weiter über den sinn des folgenden beispiels nachdenken ... da gibts keinen :P
das beispiel sollte aber mein problem recht deutlich darstellen.
also ich fang am besten mal vorne an:
wetterstationen ... diese wetterstationen sollen so heißen wie die stadt in der sie stehen ... nun soll jede wetterstation die temperatur messen und speichern (es soll also um auch jahreshöchsttemperatur, durchschnittstemperatur etc. ermitteln zu können eine art history erstellt werden) ... dies kann nun einmal intuitiv und einmal clever gemacht werden:
intuitiv: messe in zeitintervall x und schreibe die aktuelle temperatur in eine tabelle
clever: schreibe bei jeder temperaturänderung den neuen wert in eine tabelle
... beide mal steht die aktuelle temperatur in der tabelle ganz unten ...
nun möchte ich in einer weiteren tabelle den wetterstationen ID's zuordnen ...
das konzept schaut nun so aus:
tabelle <wetterstationen>
tabelle <station_1> also station_id mit eben der id aus der tabelle wetterstationen (t soll ein timestamp sein um also eine temperatur einem datum zu zu ordnen)
tabelle <station_2>
tabelle <station_3>
nun der ansatz wie ich es bisher gemacht habe: ich habe einfach immer MYSQL kommandos über php gesendet ... zuerst habe ich die id zum namen in der <wetterstation> tabelle gesucht und dann die temperatur in der tabelle <wetterstation> geändert und an die tabelle <station_id> angefügt ... ($bezeichner sind variablen die aus php stammen ... also nicht wundern ... soll der sting sein, wenn ich in mysql_query eintrage)
also id bestimmen
in <wetterstation> eintragen
und in <station_id> eintragen
soweit sogut ... nun das eigentliche problem:
ich habe versucht mir eine eigene MYSQL Funktion zu bauen, die das ganze für mich in einen schritt erledigt ... das ist also mein bisheriger ansatz, der leider nicht funktioniert ...
also über hilfe würde ich mir sehr freuen ... zumal ich schon ewigkeiten vor diesem problem sitze und mich immer im kreis drehe ...
ach und: wer sich jetzt fragt, warum ich so viel text schreibe um so ein kleines problem zu beschreiben ... nunja ... zum einen, weil ich so hoffe, besser verstanden zu werden und zum anderen, weil es ja sein könnte, dass ich die tabellen total sinnfrei organisiert habe und mein gesamtkonzept garnicht stimmig ist ...
schonmal vielen dank
LG
bitte nicht weiter über den sinn des folgenden beispiels nachdenken ... da gibts keinen :P
das beispiel sollte aber mein problem recht deutlich darstellen.
also ich fang am besten mal vorne an:
wetterstationen ... diese wetterstationen sollen so heißen wie die stadt in der sie stehen ... nun soll jede wetterstation die temperatur messen und speichern (es soll also um auch jahreshöchsttemperatur, durchschnittstemperatur etc. ermitteln zu können eine art history erstellt werden) ... dies kann nun einmal intuitiv und einmal clever gemacht werden:
intuitiv: messe in zeitintervall x und schreibe die aktuelle temperatur in eine tabelle
clever: schreibe bei jeder temperaturänderung den neuen wert in eine tabelle
... beide mal steht die aktuelle temperatur in der tabelle ganz unten ...
nun möchte ich in einer weiteren tabelle den wetterstationen ID's zuordnen ...
das konzept schaut nun so aus:
tabelle <wetterstationen>
Code:
ID | name | temp ============= 1 | berlin | 12.5 2 | köln | 16.6 3 | bon | 18.0
Code:
t | temp ======= 1 | 10.5 5 | 11.6 9 | 12.5
Code:
t | temp ======= 5 | 14.5 7 | 15.6 9 | 16.6
Code:
t | temp ======= 3 | 16.5 6 | 17.6 7 | 18.0
also id bestimmen
Code:
SELECT id FROM wetterstationen WHERE name=$stations_name LIMIT 1;
Code:
UPDATE wetterstation SET temp=$temp WHERE id=$id;
Code:
INSERT INTO station_$id (t, temp) VALUES($t, $temp);
soweit sogut ... nun das eigentliche problem:
ich habe versucht mir eine eigene MYSQL Funktion zu bauen, die das ganze für mich in einen schritt erledigt ... das ist also mein bisheriger ansatz, der leider nicht funktioniert ...
Code:
DELIMITER $$ CREATE PROCEDURE Add(station_name char[50], time_now int, temp_now float) BEGIN SET @id = (SELECT id FROM wetterstationen WHERE name=station_name LIMIT 1); UPDATE wetterstation SET temp=temp_now WHERE id=@id; SET @station_id = CONCAT_WS('_', 'station', @id); INSERT INTO @station_id (t, temp) VALUES(time_now, temp_now); END $$ DELIMITER ;
ach und: wer sich jetzt fragt, warum ich so viel text schreibe um so ein kleines problem zu beschreiben ... nunja ... zum einen, weil ich so hoffe, besser verstanden zu werden und zum anderen, weil es ja sein könnte, dass ich die tabellen total sinnfrei organisiert habe und mein gesamtkonzept garnicht stimmig ist ...
schonmal vielen dank
LG
Kommentar