Mysql order by sortieren nach definierten Informationen
habe mich intensiv mit dem order by von MySql beschäftigt, aber keine Lösung für mein Ziel gefunden.
Hallo Forum,
vielleicht hat jemand von Euch eine Idee.
Ich weiss, daß ich mit order by Spalteninhalte sortieren kann. Ich habe aber Informationen in einer Datenbank, die sich so nicht sortieren lassen, zumindest nicht so wie ich es brauche.
So sieht ein Datensatz in der Spalte "Werte" aus:
2009-02-17_06:13:56 table=BB bTYP=10105 bLOG=1495 bDAT=2009-02-17_06:13:52 bIMP=2497 bFLAG=0 bGPS=A,4846.5878,N,01138.3975,E, bTER=6595 bPER=6009
Die Informationen liegen mit TAB getrennt vor, also bTYP=10105 TAB bLOG=1495 TAB usw,
Die Ausgabe soll jetzt alle Inhalte sortiert nach der Information "bLog=XXXX" ausgeben, also zuerst alle Werte "bLog=00001" dann "alle Werte "blog=0002",...
Kann das mit einer order by Funktion durchgeführt werden oder muß das aufwändiger in php gemacht werden?
Viele Dank für jede Idee.
Schöne Grüße
Christof
Hallo Forum,
vielleicht hat jemand von Euch eine Idee.
Ich weiss, daß ich mit order by Spalteninhalte sortieren kann. Ich habe aber Informationen in einer Datenbank, die sich so nicht sortieren lassen, zumindest nicht so wie ich es brauche.
So sieht ein Datensatz in der Spalte "Werte" aus:
2009-02-17_06:13:56 table=BB bTYP=10105 bLOG=1495 bDAT=2009-02-17_06:13:52 bIMP=2497 bFLAG=0 bGPS=A,4846.5878,N,01138.3975,E, bTER=6595 bPER=6009
Die Informationen liegen mit TAB getrennt vor, also bTYP=10105 TAB bLOG=1495 TAB usw,
Die Ausgabe soll jetzt alle Inhalte sortiert nach der Information "bLog=XXXX" ausgeben, also zuerst alle Werte "bLog=00001" dann "alle Werte "blog=0002",...
Kann das mit einer order by Funktion durchgeführt werden oder muß das aufwändiger in php gemacht werden?
Viele Dank für jede Idee.
Schöne Grüße
Christof
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 109222
Url: https://administrator.de/contentid/109222
Ausgedruckt am: 22.11.2024 um 04:11 Uhr
10 Kommentare
Neuester Kommentar
Grundlegendes Datenbankdesign fürn arsch?
Trenn die Feider auf ( btyp, blog, .... ) dann kannst nach ihnen sortieren mit ihnen arbeiten......
Eine Mysql Tabelle kann auch mehr als 3 columns.
Alles andere ( es gibt durchaus ansätze wie man sowas lösen kann ) ist nicht effizeient genug. Umbau der Datenbank bringt dir da mehr.
Trenn die Feider auf ( btyp, blog, .... ) dann kannst nach ihnen sortieren mit ihnen arbeiten......
Eine Mysql Tabelle kann auch mehr als 3 columns.
Alles andere ( es gibt durchaus ansätze wie man sowas lösen kann ) ist nicht effizeient genug. Umbau der Datenbank bringt dir da mehr.
kannst mir ein paar demodatensätze in csv zukommen lassen?
Sodala mir war grad faad:
Hier hast du dann ein Mehrdimensionales Array ansprechbar über den Blog Wert also z.B.: $arr["1945"]
mit ksort das ganze noch sortiert und dann viel spaß damit.....
Sodala mir war grad faad:
$var = "2009-02-17_06:13:56 table=BB bTYP=10105 bLOG=1495 bDAT=2009-02-17_06:13:52 bIMP=2497 bFLAG=0 bGPS=A,4846.5878,N,01138.3975,E, bTER=6595 bPER=6009";
$var = "2009-02-17_06:13:56 table=BB bTYP=10105 bLOG=1235 bDAT=2009-02-17_06:13:52 bIMP=2497 bFLAG=0 bGPS=A,4846.5878,N,01138.3975,E, bTER=6595 bPER=6009";
$var = "2009-02-17_06:13:56 table=BB bTYP=10105 bLOG=1235 bDAT=2009-02-17_06:13:52 bIMP=2497 bFLAG=0 bGPS=A,4846.5878,N,01138.3975,E, bTER=6595 bPER=6009";
$var = "2009-02-17_06:13:56 table=BB bTYP=10105 bLOG=1285 bDAT=2009-02-17_06:13:52 bIMP=2497 bFLAG=0 bGPS=A,4846.5878,N,01138.3975,E, bTER=6595 bPER=6009";
$var = "2009-02-17_06:13:56 table=BB bTYP=10105 bLOG=12 bDAT=2009-02-17_06:13:52 bIMP=2497 bFLAG=0 bGPS=A,4846.5878,N,01138.3975,E, bTER=6595 bPER=6009";
$var = "2009-02-17_06:13:56 table=BB bTYP=10105 bLOG=0001 bDAT=2009-02-17_06:13:52 bIMP=2497 bFLAG=0 bGPS=A,4846.5878,N,01138.3975,E, bTER=6595 bPER=6009";
$arr = array();
foreach( $var as $val )
{
$tes = explode(" ",$val);
$blogValue = substr($tes[3],5,4);
$arr[$blogValue] = $val;
}
ksort($arr);
var_dump( $arr );
mit ksort das ganze noch sortiert und dann viel spaß damit.....
Ich bin jetzt nur zu faul das nachzubauen also mal auf gut glück raten
$allInformation=array();
//..... die ganze datenbankverbindungsundsonstigesache......
while($array = mysql_fetch_array($abfrage)) {
$werte = explode("\t ", $abfrage[1] ); //bin mir hier nicht so ganz sicher je nachdem was für eine spalte es ist..
$blogValue = $werte[3],5,4);
$allInformation[$blogValue] = $werte;
}
//ein abschliesendes Sortieren
ksort($allInformation);
//und mal schaun was rauskommt
echo '<pre>'
var_dump($allInformation);
echo '</pre>';
// pre tags damits strukturierter aussieht
Also gut dann ncohmal ans Reisbrett
$allInformation=array();
//..... die ganze datenbankverbindungsundsonstigesache......
while($array = mysql_fetch_array($abfrage)) {
$werte = explode("\t ", $array[1] ); //<-- hier war ein fehler bin mir hier nicht so ganz sicher je nachdem was für eine spalte es ist..
$blogValue = substr($werte[3],5,4);
$allInformation[$blogValue] = $array; //<-- da war auch ein fehler
}
//ein abschliesendes Sortieren
ksort($allInformation);
echo '<pre>'
var_dump($allInformation);
echo '</pre>';