phpbar.de logo

Mailinglisten-Archive

[php] Query -> Array? -> Sort

[php] Query -> Array? -> Sort

Michael Broeker php_(at)_phpcenter.de
Tue, 16 Oct 2001 03:53:39 +0200


hallo Leser der Liste,

ich stehe vor folgenden Problem:

aufgrund einer unklugen ;-) db-struktur muss ich bei 
einem query noch ein wenig "nacharbeit" leisten.

es handelt sich um datensätze verschiedener trainingskurse.
zu den kursen gehören verschiedene anfangs- und endzeiten.(5 an der zahl)
hier ist auch das problem. diese zeiten stehen nun leider alle in der gleichen table.

<auschnitt der table>
...
trainCourseID int(5) unsigned DEFAULT '0' NOT NULL auto_increment,
trainCourseDesignation varchar(20) DEFAULT '' NOT NULL,
trainStart1 date,
trainStart2 date,
trainStart3 date,
trainStart4 date,
trainStart5 date,
trainEnd1 date,
trainEnd2 date,
trainEnd3 date,
trainEnd4 date,
trainEnd5 date,
... usw. 
</auschnitt der table>

ich will die datensätze anzeigen die in einem 90 tage range liegen.
das geht noch ganz gut via sql ...
--
select * from train_table
WHERE TO_DAYS(trainStart1) - TO_DAYS(NOW()) > 0 AND TO_DAYS(trainStart1) - TO_DAYS(NOW()) <= 90 OR
TO_DAYS(trainStart2) - TO_DAYS(NOW()) > 0 AND TO_DAYS(trainStart2) - TO_DAYS(NOW()) <= 90 OR
TO_DAYS(trainStart3) - TO_DAYS(NOW()) > 0 AND TO_DAYS(trainStart3) - TO_DAYS(NOW()) <= 90 OR
TO_DAYS(trainStart4) - TO_DAYS(NOW()) > 0 AND TO_DAYS(trainStart4) - TO_DAYS(NOW()) <= 90 OR
TO_DAYS(trainStart5) - TO_DAYS(NOW()) > 0 AND TO_DAYS(trainStart5) - TO_DAYS(NOW()) <= 90
ORDER BY trainCourseID
--
(ist wohl nicht optimal, oder ?) 

soweit so gut ... 
ich brauche aber alles sortiert. nur nach was? 

jetzt findet er jeden tupel der in dieser range liegt. 
nur reicht es schon aus wenn nur eins von diesen 5 verschiedenen
daten in dem range liegt. ich brauch aber genau nur dieses eine datum nicht 
die anderen(ausserhalb der 90 tage).
muss also mit php nacharbeiten. ok.

meine frage:

ich brauche die richtigen ds sortiert. 

a) kann ich etwas via sql machen in sachen sortierung. ??
b) wenn nein wie dann weiter ... ???

Idee:
ich denke man kann diese daten alle sammeln in einem array und dann
sortieren. habt iht ansaetze ?


Könnt Ihr mir helfen ?

Grüsse 
Micha


php::bar PHP Wiki   -   Listenarchive