Hallo, ich habe ein kleines Problem mit einer Abfrage aus einer mysql tabelle.
Hier mal kurz beispielhaft die Struktur
Wie man erkennen kann, sind manche Koordinaten doppelt vorhanden. Diese will ich zusammenfassen und zählen lassen.
Bisher mache ich das in etwa so
Bis hier hin auch alles gut, wobei das auch sicher anders/einfacher geht als ich es gemacht habe. Könnte mir jemand evtl sagen wie ich das zu einer query vereine?
Mein Nächstes Problem betrifft das Sortieren.
Nun will ich mir gern noch eine Option basteln wo ich per mausklick sage, ordne mir das nach der häufigkeit der aufkommenden Datensätze. Sprich, wenn die Koordinate mehrfach drin vorkommt, diese addiert($number) wird und der reihe nach ausgegeben wird (63, dann 59, 40, 20, .................).
Dann bräuchte ich noch eine Funktion, oder wie auch immer, wo ich trotz des group befehls immer das aktuelleste Datum oben in der liste zu stehen habe. So wie ich es verstanden habe, nimmt der bei group irgendwie immer den ersten datensatz den er findet und die anderen werden nicht weiter beachtet, oder?
Kann man das zusammenfassen zu einer oder 2 Querys? Wenn ja wie? Wichtig ist mir vor allem das mit der $number, das nach der häufigkeit geordnet wird und auch das letzte datum beachtet wird
Hier mal kurz beispielhaft die Struktur
PHP:
Datum | Koordinate | Feld 1 | Feld 2 | Feld 3 | Feld 4
=====================================================
2004-04-04 12:10:03 | 11111111 | 10 | 20 | 30 | 40
2004-04-04 12:05:03 | 22222222 | 10 | 20 | 30 | 40
2004-04-04 12:00:03 | 11111111 | 19 | 13 | 18 | 49
Bisher mache ich das in etwa so
PHP:
$info = mysql_fertch_array(mysql_query('select * from table order by datum group by koordinate')); // Holt jede koordinate raus und fast doppelte zusammen
$number=mysql_num_rows(mysql_query('select * from table where koordinate="'.$info['koordinate'].'"')); // würde für die Anzahl der vorhanden datensätze stehen.
//Zudem will ich dann noch, das die Werte von Feld 1-4 addiert werden zu der jeweiligen group
$summe=mysql_fetch_array(mysql_query('SELECT SUM(feld1),SUM(feld2),SUM(feld3),SUM(feld4) FROM table where koordinate="'.$info['koordinate'].'"'));
Mein Nächstes Problem betrifft das Sortieren.
Nun will ich mir gern noch eine Option basteln wo ich per mausklick sage, ordne mir das nach der häufigkeit der aufkommenden Datensätze. Sprich, wenn die Koordinate mehrfach drin vorkommt, diese addiert($number) wird und der reihe nach ausgegeben wird (63, dann 59, 40, 20, .................).
Dann bräuchte ich noch eine Funktion, oder wie auch immer, wo ich trotz des group befehls immer das aktuelleste Datum oben in der liste zu stehen habe. So wie ich es verstanden habe, nimmt der bei group irgendwie immer den ersten datensatz den er findet und die anderen werden nicht weiter beachtet, oder?
Kann man das zusammenfassen zu einer oder 2 Querys? Wenn ja wie? Wichtig ist mir vor allem das mit der $number, das nach der häufigkeit geordnet wird und auch das letzte datum beachtet wird
Zuletzt bearbeitet: