Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

Mysql order by sortieren nach definierten Informationen

Frage Entwicklung Datenbanken

Mitglied: gechger

gechger (Level 1) - Jetzt verbinden

17.02.2009, aktualisiert 11:03 Uhr, 4958 Aufrufe, 10 Kommentare

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
Mitglied: godlie
17.02.2009 um 11:47 Uhr
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.
Bitte warten ..
Mitglied: gechger
17.02.2009 um 11:59 Uhr
Hi Godlie,

Umbau geht leider nicht. Die Datensätze werden so von Blackbox-Geräten in Fahrzeugen produziert, und von verschiedenen Programmen weiterverarbeitet, die alle auf dieser Struktur beruhen. Zur besseren Datenanalyse möchte ich aber die Sortierung nach blog haben. Wenn ein Kunde 40 Fahrzeuge im Einsatz hat und die Daten zeitgleich gesendet werden, stehen sie in der Datenbank so wie sie reinlaufen. Sehr unübersichtlich.

Die Datenbank besteht aus vier Spalten: id (automatisch generiert), den Werten wie oben beschrieben, dem Datum und einem Flag (abgeholt oder noch icht abgeholt).

Dann muß ich das wohl in php lösen.

Aber vielen Dank für Deine Antwort.
Schöne Grüße
Christof
Bitte warten ..
Mitglied: godlie
17.02.2009 um 13:55 Uhr
kannst mir ein paar demodatensätze in csv zukommen lassen?

Sodala mir war grad faad:

01.
$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"; 
02.
$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"; 
03.
$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"; 
04.
$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"; 
05.
$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"; 
06.
$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"; 
07.
 
08.
$arr = array(); 
09.
foreach( $var as $val ) 
10.
11.
  $tes = explode(" ",$val); 
12.
  $blogValue = substr($tes[3],5,4); 
13.
  $arr[$blogValue][] = $val; 
14.
15.
ksort($arr); 
16.
var_dump( $arr );
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.....
Bitte warten ..
Mitglied: gechger
17.02.2009 um 15:55 Uhr
Hallo Godie,

habe mich mal mit Deinem Vorschlag befasst. Die Funktion $var, muß die mit dem Array verbunden werden, in dem die Werte bereits stehen?

01.
while($array = mysql_fetch_array($abfrage)){ 
02.
        $var=$array; 
03.
        $arr = array(); 
04.
        foreach( $var as $val ) 
05.
06.
        $tes = explode("\t ",$val); 
07.
        $blogValue = substr($tes[3],5,4); 
08.
        $arr[$blogValue][] = $val; 
09.
10.
        ksort($arr); 
11.
        var_dump( $arr );
Schöne Grüße
Christof

PS: hier 1 findest Du ein paar Beispiel Datensätze
Bitte warten ..
Mitglied: godlie
17.02.2009 um 16:02 Uhr
Ich bin jetzt nur zu faul das nachzubauen also mal auf gut glück raten

01.
$allInformation=array(); 
02.
 
03.
//..... die ganze datenbankverbindungsundsonstigesache...... 
04.
 
05.
while($array = mysql_fetch_array($abfrage)) { 
06.
  $werte = explode("\t ", $abfrage[1] );  //bin mir hier nicht so ganz sicher je nachdem was für eine spalte es ist.. 
07.
  $blogValue = $werte[3],5,4); 
08.
  $allInformation[$blogValue][] = $werte; 
09.
10.
 
11.
//ein abschliesendes Sortieren 
12.
ksort($allInformation); 
13.
 
14.
//und mal schaun was rauskommt 
15.
echo '<pre>' 
16.
var_dump($allInformation); 
17.
echo '</pre>'; 
18.
 
19.
// pre tags damits strukturierter aussieht
Bitte warten ..
Mitglied: gechger
17.02.2009 um 16:14 Uhr
Hallo Godie,

habs jetzt mal angepasst

01.
 while($array = mysql_fetch_array($abfrage)){ 
02.
        $werte=explode("\t", $abfrage[1]); 
03.
        $blogValue = ($werte[4]); 
04.
        $allInformation[$blogValue][] = $werte; 
05.
06.
        ksort($allInformation); 
07.
        echo "<pre>"; 
08.
        var_dump( $arr ); 
09.
        echo "</pre>";
und es kommt war raus:

NULL

Christof

PS: man sollte allerdings auch var_dump( $allinformation) nehmen anstatt var_dump( $arr );
Bitte warten ..
Mitglied: godlie
17.02.2009 um 16:22 Uhr
Also gut dann ncohmal ans Reisbrett

01.
$allInformation=array();  
02.
//..... die ganze datenbankverbindungsundsonstigesache......  
03.
 
04.
while($array = mysql_fetch_array($abfrage)) {  
05.
  $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..  
06.
  $blogValue = substr($werte[3],5,4);  
07.
  $allInformation[$blogValue][] = $array;  //<-- da war auch ein fehler 
08.
}  
09.
 
10.
//ein abschliesendes Sortieren 
11.
ksort($allInformation);  
12.
echo '<pre>'  
13.
var_dump($allInformation);  
14.
echo '</pre>'; 
Bitte warten ..
Mitglied: gechger
17.02.2009 um 16:24 Uhr
bis jetzt kriege ich nur so was raus:

Array
(
[] => Array
(
[0] => Array
(
[0] =>
)

[1] => Array
(
[0] =>
)

[2] => Array
(
[0] =>
)
Bitte warten ..
Mitglied: godlie
17.02.2009 um 16:26 Uhr
Hab oben noch was ausgebessert, damit sollte es jetzt funkionieren ansonsten lass mir Demodaten zukommen, dann bau ich das in eine DB und teste selbst mal durch.
Bitte warten ..
Mitglied: gechger
17.02.2009 um 16:39 Uhr
wie es aussieht scheint es damit zu klappen:

01.
while($array = mysql_fetch_array($abfrage)){ 
02.
        $werte=explode("\t", $array[1]); 
03.
        $blogValue = ($werte[3]); 
04.
        $allInformation[$blogValue][] = $werte; 
05.
         echo "<pre>"; 
06.
        //print_r( $blogValue); 
07.
        //print_r($werte[3]); 
08.
        echo "</pre>"; 
09.
10.
        ksort($allInformation); 
11.
        echo "<pre>"; 
12.
        print_r( $allInformation); 
13.
        echo "</pre>";
Ichmach mir die Ausgabe jetzt nur noch schön.

Viiieeelen Dank
Christof
Bitte warten ..
Neuester Wissensbeitrag
Ähnliche Inhalte
Apache Server
gelöst Fehler beim Import einer DB vom anderen MySQL-Server (2)

Frage von zeroblue2005 zum Thema Apache Server ...

Datenbanken
Tool oder Dienst für E-Mail (POP3) zu MySQL Datenbank (3)

Frage von bounee zum Thema Datenbanken ...

Microsoft Office
gelöst Excel Makro zum Sortieren von Spalten an größeres Dokument Anpassen (2)

Frage von Rolfor zum Thema Microsoft Office ...

Datenbanken
Unvollständiger mysql dump (7)

Frage von AS-N00 zum Thema Datenbanken ...

Heiß diskutierte Inhalte
Switche und Hubs
LAG zwischen Cisco SG300 und Dlink DGS1100 herstellen - wie? (18)

Frage von White-Rabbit2 zum Thema Switche und Hubs ...

CPU, RAM, Mainboards
Hardware Fragen (12)

Frage von xaver-2 zum Thema CPU, RAM, Mainboards ...

Grafikkarten & Monitore
Neue Graifkkarte - kein Bild (10)

Frage von bestelitt zum Thema Grafikkarten & Monitore ...

Exchange Server
gelöst Exchange 2013 - Kontakte aus CSV importieren (9)

Frage von hesper zum Thema Exchange Server ...