php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2006

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 06.02.2006, 11:18  
Gast
 
Beiträge: n/a
Standard PHP sortierungs Problem

Hi also ich hab ein kleines Problem

und zwar habe ich eine kleine DB geschrieben und will die einträge sortieren nach 1. DATUM , 2. (wenn vorhanden) Einfahrt und 3. caEintreff

funktioniert auch soweit
aber ich möchte jetzt noch gerne die Einträge von "EINFAHRT" ganz oben stehn und nicht unten so wie jetzt.
kann mit bitte jmd helfen?

Sortierungs Code:
PHP-Code:
ORDER BY DatumIFNULL(Einfahrt,9999), caEintreff;") 
mfg Pati
 
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 06.02.2006, 11:29  
Erfahrener Benutzer
 
Benutzerbild von Andreas
 
Registriert seit: 22.04.2005
Beiträge: 391
Andreas ist zur Zeit noch ein unbeschriebenes Blatt
Standard

ORDER BY Datum, Einfahrt DESC, caEintreff;")
So??
Andreas ist offline  
Alt 06.02.2006, 11:52  
Gast
 
Beiträge: n/a
Standard

ja genau das hab ich gesucht vielen dank
 
Alt 06.02.2006, 11:56  
Gast
 
Beiträge: n/a
Standard

jetzt hab ich gleich noch eine Frage und zwar

Ich möchte eine Abfrage machen das es mir z.b nur die Einträge vom 01.01.2006 - 01.02.2006 anzeigt.
Mein problem ist das ich das datumsfeld die eingeschaft TEXT hat und nicht DATE weil wenn ich bei phpmyAdmin date eingebe dann ist die formatierung yyyy-mm-dd und ich bräuchte es so dd.mm.yyyy also auch mit . statt - ist das irgendwie machbar? bin in MySQL noch nicht so geübt

aber zurzück zu meim problem da ich es als TEXT feld formatiert habe und meine Abfrage Order date <= ('$date') AND date >=('$date1') lautet bekomm ich z.b wenn ich eine abfrage mache mit 01.01.2006 - 01.02.2006 nur die einträge von diesen beiden tagen. Was auch logisch ist weil

30.01.2006 auch größer ist wie 01.02.2006 wenn man es als zahl sieht
30012006 > 01022006 desshalb bekomm ich die dann auch nicht angezeigt.......

hmmm... ich hoffe bei meiner """GUTEN""" erklärung versteht auch jemand was ich meine *g*
was könnt ich da machen?
 
Alt 06.02.2006, 11:58  
Erfahrener Benutzer
 
Registriert seit: 21.05.2008
Beiträge: 9.937
Zergling-new wird schon bald berühmt werden
Standard

Vielleicht eher so?
Code:
ORDER BY Datum ASC, IFNULL(Einfahrt, Eintreffzeit) ASC, Einfahrt ASC
Allerdings verstehe ich nicht worum es geht (Eintreffzeit und Einfahrt?).

Als Hinweis noch: Du solltest als Spaltentyp DATE und TIME (Eintreffzeit und Einfahrt) benutzen. Ich weiß jetzt nicht ob das ein phpMyAdmin- oder dein Content-Screenshot ist. Aber benutzen scheinst du TIME offenbar nicht (9999).
Zergling-new ist offline  
Alt 06.02.2006, 11:59  
Erfahrener Benutzer
 
Registriert seit: 21.05.2008
Beiträge: 9.937
Zergling-new wird schon bald berühmt werden
Standard

Zitat:
Mein problem ist das ich das datumsfeld die eingeschaft TEXT hat und nicht DATE weil wenn ich bei phpmyAdmin date eingebe dann ist die formatierung yyyy-mm-dd und ich bräuchte es so dd.mm.yyyy also auch mit . statt - ist das irgendwie machbar? bin in MySQL noch nicht so geübt
Diesen Unsinn lassen oder du musst die daraus resultierenden Schwierigkeiten selbst lösen

date('d.m.Y', strtotime('2006-02-06') = 06.02.2006
Zergling-new ist offline  
Alt 06.02.2006, 15:42  
Gast
 
Beiträge: n/a
Standard

@Zergling
zur erklärung
also der LEITSTNAND trägt LKWs ein mit dem Kennzeichen, caeintreffzeit und und und..... der Portier hingegen trägt dan die wirkliche einfahrt ein desshalb caeintreff und einfahrt...


aber nun das mit der datumsache ist nicht so wichtig
ich hab ein größeres problem

also wie gesagt das mit DESC klappt super (jetzt ist di einfahrt oben wen sie vorhanden ist und nicht mehr unten wie vorher nur das problem ist sie sind falsch geordnet.... also zuerst kommt 17:25 dann 17:10 und das würde umgekehrt gehören.... also bräuchte ich ASC aber bei ASC ist das problem dass eben die einträge ganz unten stehn aber dafür richtig geordnet.(wie oben auf dem bild)


Kann in phpmyadmin irgendwie einstellen das wenn das feld leer ist er automatisch 9999 draus macht oder ein ? weil das wäre dan größer also z.a 17:10 und er könnte es dan richtig ordnen oder hat jmd von euch eine bessere idee?
 
Alt 06.02.2006, 15:51  
Erfahrener Benutzer
 
Registriert seit: 21.05.2008
Beiträge: 9.937
Zergling-new wird schon bald berühmt werden
Standard

Mal so als Hinweis: Was ist wenn die Einfahrt an einem anderen Tag stattfindet, um kurz nach 12 z.B.? Du solltest immer den Worstcase im Auge behalten und danach deine Struktur anlegen. Ich empfehle dir DATETIME für Eintreffzeit und Einfahrt zu verwenden und Datum wegzulassen (ergibt sich ja aus einem von beidem).

Deine DB-Struktur ist sonst zu statisch und für Erweiterungen oder Statistik-Auswertung nicht optimal ausgerichtet.

Zum Problem:
Nach was soll den jetzt sortiert sein? Absteigend nach dem tatsächlichen Eintreffen (Einfahrt)?
Zergling-new ist offline  
Alt 06.02.2006, 16:03  
Gast
 
Beiträge: n/a
Standard

Ja das werd ich warscheinlich eh so machen weil das mit dem TEXT ist sowieso nur zurzeit eine not lösung.



zur sortierung:
1. Sortieren nach Datum
2. Wenn vorhanden Einfahrt und das nach ASC also
17:10
17:11
17:12 ....
3. ca.Eintreff

und die Einfahrt soll aber ganz oben stehn
da wenn die Einfahrt nicht vorhanden ist das Feld leer ist und leer<als z.b 17:00 ist werden die leeren zuerst angezeigt.so wie am bild


ausschauen sollte es so:
 
Alt 06.02.2006, 16:18  
Erfahrener Benutzer
 
Registriert seit: 21.05.2008
Beiträge: 9.937
Zergling-new wird schon bald berühmt werden
Standard

SELECT * FROM tabelle ORDER BY datum ASC, IFNULL(Einfahrt, '9999') ASC, CaEintreff ASC

Besonders logisch ist das aber nicht. Wen interessierts ob die Einfahrt jetzt tatsächlich dann war, wie eingetragen? Letztlich relevant ist doch die tatsächliche Einfahrt, und danach ist ja nicht sortiert!
Zergling-new ist offline  
 


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
[Erledigt] Galerie Problem... coraplanet PHP Tipps 2008 4 06.06.2008 13:42
Sessions Problem StephenKing PHP Tipps 2008 3 16.10.2007 08:30
datensätze defekt oder problem mit dem einlesen? Ministry Datenbanken 4 06.07.2006 18:42
problem!!! PHP Tipps 2006 6 08.02.2006 11:06
[Erledigt] wieder ein Problem bei phpmailer und smtp PHP Tipps 2006 24 07.02.2006 01:07
Array Problem [Ansatz ?] PHP Tipps 2005 0 27.01.2005 18:24
[Erledigt] Problem bei Massenmails versenden mit der Funktion mail PHP-Fortgeschrittene 3 19.01.2005 13:36
[Erledigt] Problem mit Übergabe einer Klasse in PHP4 PHP-Fortgeschrittene 10 08.01.2005 21:00
Problem mit Weiterleitung PHP Tipps 2004-2 16 22.12.2004 17:49
Smarty und PHP-Skript Problem PHP Tipps 2004-2 2 03.12.2004 22:27
[Erledigt] PHP Upload (Master Value/Local Value Problem) PHP-Fortgeschrittene 5 23.11.2004 07:21
Problem mit alter JavaScript-Funktion woods PHP Tipps 2004 1 13.08.2004 13:34
[Erledigt] Problem mit Timestamp! PHP Tipps 2004 24 08.06.2004 19:51
Login Problem PHP Tipps 2004 4 04.06.2004 18:46
foreach problem mAy^daY PHP Tipps 2004 3 02.06.2004 20:29


Alle Zeitangaben in WEZ +2. Es ist jetzt 14:44 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum

Creative Commons License
Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.