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, 4953 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
Humor (lol)

Linkliste für Adventskalender

(3)

Information von nikoatit zum Thema Humor (lol) ...

Ähnliche Inhalte
Netzwerkmanagement
SMT by palle Server Management Monitoring Tool (6)

Link von palle1977 zum Thema Netzwerkmanagement ...

PHP
PHP MySQL Login (7)

Frage von Yanmai zum Thema PHP ...

CPU, RAM, Mainboards
UP Squared - The First Maker Board with Intel Apollo Lake by UP (1)

Link von Lochkartenstanzer zum Thema CPU, RAM, Mainboards ...

Heiß diskutierte Inhalte
Windows Server
DHCP Server switchen (25)

Frage von M.Marz zum Thema Windows Server ...

SAN, NAS, DAS
gelöst HP-Proliant Microserver Betriebssystem (14)

Frage von Yannosch zum Thema SAN, NAS, DAS ...

Grafikkarten & Monitore
Win 10 Grafikkarte Crash von Software? (13)

Frage von Marabunta zum Thema Grafikkarten & Monitore ...

Windows 7
Verteillösung für IT-Raum benötigt (12)

Frage von TheM-Man zum Thema Windows 7 ...