Database gegevens sorteren met een formule

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Nico V.

Nico V.

19/12/2007 12:32:00
Quote Anchor link
Goedendag, ik heb hier een script waarmee gegevens uit een database worden gehaald en in variabelen worden gezet. Dit werkt allemaal prima, maar nu wil ik de DB gegevens sorteren op een nieuwe variabele die nog berekend moet worden, ik heb de variabelen

$id, $datumtijd, $helpdeskuser, $user, $apparaat, $status, $prioriteit, binnenkomst, $titel, $omschrijving, $oplossing, $deleted

deze variabelen komen uit een DB, verder heb ik nu een variabele $prio met de prioriteit en dus de volgorde waarom de rijen gesorteerd moeten worden

hoe kan ik het nu voor elkaar krijgen om de variabelen te sorteren op prio en in mijn standaard layout te zetten, ik dacht zelf aan een array maar ik weet niet precies hoe je de gegevens IN een array zet en hoe je ze er weer uit haalt
 
PHP hulp

PHP hulp

22/12/2024 07:37:41
 
Joren de Wit

Joren de Wit

19/12/2007 12:38:00
Quote Anchor link
Waarom sorteer je niet gewoon in de query? Dat is ook geen probleem als de variabele berekend wordt met gegevens uit de database...
 
Nico V.

Nico V.

19/12/2007 12:42:00
Quote Anchor link
De variabele $prio word berekend na de query, en daar worden nog best wel veel berekeningen uitgevoerd
 
Joren de Wit

Joren de Wit

19/12/2007 12:55:00
Quote Anchor link
Hmm, ik zie niet echt in hoe je zou willen sorteren op een willekeurige variabele. Sorteren is alleen logisch als dat gebeurt op een kolom uit de database of een combinatie van kolommen (dmv een berekening). En in dat geval zou je het gewoon in de query kunnen doen...

Kun je misschien een voorbeeldje geven van wat je wilt?
 
Nico V.

Nico V.

19/12/2007 13:02:00
Quote Anchor link
Ik heb dus verschillende variabelen,

$id $omschrijving $helpdeskuser $datum

op zo'n manier komt het ook in het overzicht, dit komt uit een DB, Hier komt nog een variabele $prio bij die met andere variabelen berekend word, Vervolgens wil ik alles in een array zetten en sorteren op prio.

Prio word berekend door:

$datumtijd = (tijd van openen, staat in DB) *3600 (seconden)
$max (maximaal uren open per call*3600)
$aantal_open ( verschil $datumtijd en nu)
$prio = ( = $max - $aantal_open)

Als dit in een query kan zou het fijn zijn maar lijkt me lastig
 
Joren de Wit

Joren de Wit

19/12/2007 13:07:00
Quote Anchor link
$aantal_open is in de database al te berekenen met:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
TIME_TO_SEC(TIMEDIFF(NOW(), datumtijdveld))

Er natuurlijk wel vanuit gaande dat de tijd van openen netjes in een DATETIME veld opgeslagen staat...

Hoe je $max bepaald is me nog niet helemaal duidelijk, maar dat kan wellicht ook met de database...
 
Frank -

Frank -

19/12/2007 13:07:00
Quote Anchor link
Kun je ook even een overzichtje gegeven van je database (betrokken tabellen en de datatypes) ?

Ik zie niet in wat de bedoeling is van de volgende berekening:
2007-12-17 14:23:34 * 3600

Dus $datumtijd = (tijd van openen, staat in DB) *3600 (seconden)

Dit kan eigenlijk alleen wanneer jij de datumtijd niet als datumtijd (DATETIME) hebt opgeslagen. In dat geval heb je een probleem...

Al jouw vragen mbt. sorteren en het rekenen met datums en tijden zijn eenvoudig op te lossen met de vele datum- en tijdfuncties die jouw database tot zijn beschikking heeft. Maar moet je wel DATETIME als datatype gebruiken.

(Aangenomen dat je de dataramp MySQL als database wilt gebruiken)
 
Nico V.

Nico V.

19/12/2007 13:31:00
Quote Anchor link
De variabele $datumtijd is een timestamp die in de database staat. die haal ik daar uit en daar bereken ik de gegevens mee
 
Joren de Wit

Joren de Wit

19/12/2007 13:34:00
Quote Anchor link
Nico V. schreef op 19.12.2007 13:31:
De variabele $datumtijd is een timestamp die in de database staat. die haal ik daar uit en daar bereken ik de gegevens mee
Gebruik zoals Frank al zegt liever geen timestamp maar gewoon een DATETIME als datumtijd-stempel. Daar kun je veel meer mee...
 
Frank -

Frank -

19/12/2007 13:36:00
Quote Anchor link
Nico V. schreef op 19.12.2007 13:31:
De variabele $datumtijd is een timestamp die in de database staat. die haal ik daar uit en daar bereken ik de gegevens mee
Ok, en welke database gebruik je? Wanneer dat MySQL is, dan is een TIMESTAMP hartstikke fout, kan voor de grootste problemen zorgen. In MySQL gebruik je een DATETIME om datums met tijden op te slaan, andere formaten leveren vroeg of laat altijd problemen op.

En ga verder aan de slag met de datum- en tijdfuncties die jouw database tot zijn beschikking heeft, dan stellen jouw berekeningen echt 10x niks voor. Zie de handleiding van jouw database.
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.