array_push($data[$id][$kleur], $data_from_table) ?quote:Op dinsdag 23 juni 2009 09:19 schreef Swetsenegger het volgende:
[..]
Ja ik begrijp hoe een lusje werkt. Het ging me om de array manipulatie
Ik zeg niet dat het perse slecht is, maar niet als het ten koste gaat van de leesbaarheid van je code. Da's m'n punt. Math.PI bijvoorbeeld is een constante die iedereen gebruikt, en ook prima leesbaar is. Die __CLASS__ ofzo constante is IMHO een nono.quote:Op dinsdag 23 juni 2009 10:54 schreef Intrepidity het volgende:
Klopt, en omdat PHP geen perfecte taal is heeft het wel degelijk zin om constanten in plaats van functieaanroepen te gebruiken, dat was m'n punt..
Gelukkig is het je humble opinion.quote:Op dinsdag 23 juni 2009 11:09 schreef Catbert het volgende:
[..]
Ik zeg niet dat het perse slecht is, maar niet als het ten koste gaat van de leesbaarheid van je code. Da's m'n punt. Math.PI bijvoorbeeld is een constante die iedereen gebruikt, en ook prima leesbaar is. Die __CLASS__ ofzo constante is IMHO een nono.
Euh, ja?quote:
Dat fijn. Uiteindelijk is m'n ultieme doel hier mensen blij te makenquote:
Hmm... als ik die code uitvoer kom ik toch tot iets andere getallen:quote:Op dinsdag 23 juni 2009 10:47 schreef Catbert het volgende:
Je bewijst hier vooral mee hoe brak PHP is. Een fatsoenlijke VM zou die loop uberhaupt niet 10000 keer uitvoeren. Check dit:
[ code verwijderd ]
Test 1 took 673ms.
Test 2 took 943ms.
Test 1 took 645ms.
Test 2 took 931ms.
Test 1 took 616ms.
Test 2 took 610ms.
Test 1 took 619ms.
Test 2 took 633ms.
Je ziet na de 2e test2 run dat de VM 'ziet' wat test 2 doet en het voor je gaat optimaliseren. Ik hoop van harte dat PHP dergelijke zaken ook doet, anders is het te brak voor woorden.
BTW: als je testjes maakt, gebruik dan alsjeblieft meer iteraties dan 10000, dat zegt echt niks.
Je hebt zeker de server VM switch gebruikt? Dan gaat 'ie harder optimaliseren en komt tot de conclusie dat wat 'ie doet compleet zinloos isquote:Op dinsdag 23 juni 2009 15:11 schreef Light het volgende:
Hmm... als ik die code uitvoer kom ik toch tot iets andere getallen:
Test 1 took 4ms.
Test 2 took 3ms.
Test 1 took 3ms.
Test 2 took 0ms.
Test 1 took 0ms.
Test 2 took 0ms.
Test 1 took 0ms.
Test 2 took 0ms.
En dan maakt het niet uit of de loopjes in test1() en test2() tot 1.000.000.000 of tot 2.000.000.000 gaan.
Nee, ik deed java zonder switches. Nu zie ik wel in de help staan dat de default de server VM is, omdat het een server-class machine is. Misschien moet ik het ook niet op een server draaienquote:Op dinsdag 23 juni 2009 15:47 schreef Catbert het volgende:
[..]
Je hebt zeker de server VM switch gebruikt? Dan gaat 'ie harder optimaliseren en komt tot de conclusie dat wat 'ie doet compleet zinloos is
1 2 3 4 5 6 7 8 9 10 | Impact</td><td>Impact:<select name="impact"> <option value=""> - </option> <option value="1">Hoog</option> <option value="2">Middel</option> <option value="3">Laag</option> <option value="4">Geen</option> </select> ?> |
Volgens mij moet je selected hebben, niet checked.quote:Op woensdag 24 juni 2009 00:15 schreef cablegunmaster het volgende:
ik heb een drop down menu , en nu wil ik dat hij blijft staan op de waarde die hij uit de database haalt bvb
[ code verwijderd ]
en nu wil ik dat hij checked invoert bij het getalhoe kan ik dit doen?
Maak een array met als keys de waardes (1, 2, 3, etc) en als values de bijbehorende teksten (laag, middel, hoog, etc). Dan haal je uit de database welke optie is geselecteerd (een id). Je gaat gewoon de array met opties af, en bij het weergeven check je iedere keer even of het id misschien toevallig gelijk is aan de key bij de optie die je gaat weergeven.quote:de impact haalt hij uit de database.maar ik wil de andere opties ook kunnen weergeven dus ik dacht een switch maar dan echo je de options 4 * 4 erin.
moet makkelijker te doen zijn
ook een goeie optie.. beter dan brunod die gebruikte ik eerst. maar dat is ook niet zo productief.quote:Op woensdag 24 juni 2009 00:27 schreef Light het volgende:
[..]
Volgens mij moet je selected hebben, niet checked.
[..]
Maak een array met als keys de waardes (1, 2, 3, etc) en als values de bijbehorende teksten (laag, middel, hoog, etc). Dan haal je uit de database welke optie is geselecteerd (een id). Je gaat gewoon de array met opties af, en bij het weergeven check je iedere keer even of het id misschien toevallig gelijk is aan de key bij de optie die je gaat weergeven.
1 2 3 4 | SELECT TIMESTAMPDIFF(MINUTE,LogOutTime,LogInTime) AS TimeLoggedIn FROM LogTable ?> |
1 2 3 4 5 6 7 8 | $output = strtotime($row['datum_tijd_open']); $output2 = strtotime($row['datum_tijd_gesloten']); $temp = $output - $output2; echo " ".date('d',$temp).' Dagen '; echo date('m',$temp).' Maand '; echo date('Y',$temp).' Jaar verschil'; ?> |
Dat komt omdat je een verschil in tijd om gaat zetten naar een daadwerkelijke datum middels de date() functie. Dat kan niet.quote:Op donderdag 25 juni 2009 09:30 schreef cablegunmaster het volgende:
Ik kom er niet uit : ikl probeerde een functie om de tijd te berekenen tussen 2 datums alleen nu krijg ik de hele tijd het probleem dat de tijden tijdens 0:00 negatief worden. want 23:00 is natuurlijk groter.
Hoe kan ik simpel 2 velden met datetime van elkaar aftrekken?![]()
[ code verwijderd ]
is een functie die me niet hielp. hij gaf me negatieve waardes bij bepaalde tijden.
[ code verwijderd ]
Hieruit krijg ik een heel andere waarde 1976 jaar 17 dagen etc... maar de minuten en seconde kloppen wel.
1 2 3 4 5 6 7 8 9 10 | $output = strtotime($row['datum_tijd_open']); $output2 = strtotime($row['datum_tijd_gesloten']); $diff = $output - $output2; $dagen = $diff / 86400; $uren = ($diff % 86400) / 3600; $minuten = (($diff % 86400) % 3600) / 60; $seconden = ((($diff % 86400) % 3600) % 60) / 1; // die /1 kan natuurlijk weg, gaat om het idee ?> |
hoe pak je daar alleen de getallen voor de komma?quote:Op donderdag 25 juni 2009 09:54 schreef HuHu het volgende:
[..]
Dat komt omdat je een verschil in tijd om gaat zetten naar een daadwerkelijke datum middels de date() functie. Dat kan niet.
Een timestamp van 0 staat gelijk aan 1 januari 1970 @ 00:00 en dus niet gelijk aan 1 januari 0 @ 00:00. Dat laatste is wat je zou willen als je wilt weten hoeveel jaren/maanden/weken/dagen/uren/minuten/seconden er tussen 2 datums zitten.
Je kunt het met de hand uitrekenen:
[ code verwijderd ]
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | SELECT leverancier.naam AS naam, incident.incidentid AS id, incident.systeem_naam AS Systeemnaam, datum_tijd_open AS 'Datumtijdmelding', incident.omschrijving AS 'omschrijving', incident.workaround AS 'Workaround', component.leverancier AS Leverancier, component.merk AS merk, component.soort AS 'apparaattype',component.aanschaf_jaar AS 'aanschaf' FROM incident INNER JOIN component ON incident.systeem_naam = component.systeem_naam INNER JOIN leverancier ON component.leverancier = leverancier.leverancier_id WHERE incident.omschrijving IN ( SELECT incident.omschrijving FROM incident GROUP BY omschrijving HAVING ( SELECT COUNT(incident.omschrijving) FROM incident WHERE incident.probleemid = '0') >=2 ) ORDER BY incident.omschrijving"; ?> |
Aangepast en werkendquote:Op donderdag 25 juni 2009 09:54 schreef HuHu het volgende:
[..]
Dat komt omdat je een verschil in tijd om gaat zetten naar een daadwerkelijke datum middels de date() functie. Dat kan niet.
Een timestamp van 0 staat gelijk aan 1 januari 1970 @ 00:00 en dus niet gelijk aan 1 januari 0 @ 00:00. Dat laatste is wat je zou willen als je wilt weten hoeveel jaren/maanden/weken/dagen/uren/minuten/seconden er tussen 2 datums zitten.
Je kunt het met de hand uitrekenen:
[ code verwijderd ]
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | if(isset($row['datum_tijd_gesloten']) && $row['status'] == 'Gesloten') { $output = strtotime($row['datum_tijd_open']); $output2 = strtotime($row['datum_tijd_gesloten']); }elseif($row['status'] != 'Gesloten'){ $output = strtotime($row['datum_tijd_open']); $date = date('Y-m-d H:i:s'); $output2 = strtotime($date); } $diff = $output2 - $output; $dagen = floor($diff / 86400); $uren = floor(($diff % 86400) / 3600); $minuten = floor((($diff % 86400) % 3600) / 60); $seconden = floor(((($diff % 86400) % 3600) % 60)); // die /1 kan natuurlijk weg, gaat om het idee if($row['status'] == 'Gesloten') { echo "Het probleem duurde ".$dagen." dagen ".$uren." uur ".$minuten." minuten ".$seconden." seconden"; }else{ echo "Het probleem duurt al ".$dagen." dagen ".$uren." uur ".$minuten." minuten ".$seconden." seconden"; } ?> |
Forum Opties | |
---|---|
Forumhop: | |
Hop naar: |