Wat bedoel je precies met een nette array? Dit is een multidimensionale array.quote:
strtotime()quote:Op donderdag 5 augustus 2010 11:04 schreef Sitethief het volgende:
PHP heeft een hoop functies om met UNIX timestamps te rekenen en om te gaan. Maar ik moet nu met het MySQL TIME type gaan werken, en ik kan niet zo een twee drie vinden hoe PHP hier mee om gaat. Moet ik bijv. HH:MM:SS uit elkaar slopen voor ik er mee ga rekenen, of kan PHP hier native mee rekenen?
SELECT UNIX_TIMESTAMP(jouw_kolomnaam).quote:Op donderdag 5 augustus 2010 11:04 schreef Sitethief het volgende:
PHP heeft een hoop functies om met UNIX timestamps te rekenen en om te gaan. Maar ik moet nu met het MySQL TIME type gaan werken, en ik kan niet zo een twee drie vinden hoe PHP hier mee om gaat. Moet ik bijv. HH:MM:SS uit elkaar slopen voor ik er mee ga rekenen, of kan PHP hier native mee rekenen?
Dat is juist niet wat ik wil. Denk ik....quote:
quote:Op donderdag 5 augustus 2010 11:37 schreef Sitethief het volgende:
[..]
Dat is juist niet wat ik wil. Denk ik....
Ik heb begin en einde tijden voor werkdagen, ik wil dus bijv. weten dus weten hoeveel uren een bepaald persoon per week werkt Wat heb ik dan aan UNIX time? Deze uren staan als HHMMSS in de database. Zo dus:
actwtID 1
actwtClientID 13
actwtDag maandag
actwtStart 080000
actwtEinde 163000
1 2 3 4 5 6 | list($intStartHour, $intStartMinute, $intStartSecond) = str_split($arrRow['actwtStart'], 2); list($intEndHour, $intEndMinute, $intEndSecond) = str_split($arrRow['actwtEinde'], 2); $intDifference = $intEndHour * 3600 + $intEndMinute * 60 + $intEndSecond - $intStartHour * 3600 - $intStartMinute * 60 - $intEndSecond; $intHours = ceil($intDifference / 3600); ?> |
Hmm ja, dit is idd ongeveer wat ik bedoel. Bedankt!quote:Op donderdag 5 augustus 2010 11:38 schreef Trollface. het volgende:
[..]
[ code verwijderd ]
Als je direct in SQL zelf wilt doen kom je met SUBSTR() al een heel eind.
1 2 3 | $intHours = ceil($intDifference / 60); ?> |
Hmmja, dan wordt het lastig. MySQL kan zelf ook met TIME rekenen, voor zover ik weet En anders was het misschien handiger om begintijd en eindtijd als DATETIME op te slaan. (Ook handig voor als iemand een keer tot na middernacht doorwerkt.)quote:Op donderdag 5 augustus 2010 11:37 schreef Sitethief het volgende:
[..]
Dat is juist niet wat ik wil. Denk ik....
Ik heb begin en einde tijden voor werkdagen, ik wil dus bijv. weten dus weten hoeveel uren een bepaald persoon per week werkt Wat heb ik dan aan UNIX time? Deze uren staan als HHMMSS in de database. Zo dus:
actwtID 1
actwtClientID 13
actwtDag maandag
actwtStart 080000
actwtEinde 163000
Klopt, mijn excuses.quote:Op donderdag 5 augustus 2010 11:51 schreef Sitethief het volgende:
[..]
Hmm ja, dit is idd ongeveer wat ik bedoel. Bedankt!
[ code verwijderd ]
Is trouwens minuten en niet uren .
En als je alleen het verschil tussen twee tijdstippen wilt weten, kun je ook met de MySQL-functie TIMEDIFF() aan de slag.quote:Op donderdag 5 augustus 2010 12:22 schreef GlowMouse het volgende:
Wat een lelijke methoden. Als je alleen de uur en minuten nodig hebt, pak dan SELECT HOUR(col), MINUTE(col)
wat Light zegt dus
Het gaat hier om relatieve tijden. Die dus niet vastliggen op een datum. Anders had ik wel gewoon DATETIME gepakt . Dus puur hoe iemands standaard werkweek er uit ziet.quote:Op donderdag 5 augustus 2010 11:52 schreef Light het volgende:
[..]
Hmmja, dan wordt het lastig. MySQL kan zelf ook met TIME rekenen, voor zover ik weet En anders was het misschien handiger om begintijd en eindtijd als DATETIME op te slaan. (Ook handig voor als iemand een keer tot na middernacht doorwerkt.)
Laat ze een rekensom oplossen, of een simpele vraag beantwoorden.quote:Op donderdag 5 augustus 2010 12:30 schreef boem-dikkie het volgende:
Ik heb een contactformulier en wil deze op de één of andere manier een beetje beveiligen tegen spam. Nou heb ik wat captcha oplossingen et cetera gevonden maar dit vind ik een beetje lelijk en irritant.
Zijn er ook betere manieren in te bouwen dat je spam een beetje tegen kunt gaan?
12:00:00 op een willekeurige dag kun je moeilijk in UNIX timestamp weergeven.quote:Op donderdag 5 augustus 2010 12:55 schreef Tuvai.net het volgende:
Ik heb nooit echt gebruik gemaakt van het DATETIME type in MySQL, UNIX timestamps zijn voor mij altijd voldoende geweest om te doen wat ik wil, en er is heel eenvoudig mee te rekenen.
Oh, op die manier. Nee, dat gaat inderdaad lastig. Ik had alleen maar een paar laatste posts gelezen en dacht dat we het over specifieke tijdstippen hadden.quote:Op donderdag 5 augustus 2010 12:58 schreef Sitethief het volgende:
[..]
12:00:00 op een willekeurige dag kun je moeilijk in UNIX timestamp weergeven.
quote:Op donderdag 5 augustus 2010 12:34 schreef Light het volgende:
[..]
En als je alleen het verschil tussen twee tijdstippen wilt weten, kun je ook met de MySQL-functie TIMEDIFF() aan de slag.
1 2 3 | SELECT TIMEDIFF(`actwtEinde`,`actwtStart`) FROM `act_werktijden` as verschil ?> |
Ja dat bedoel ik, hoe kan ik dan het beste een multidimensionale uitlezen in php?quote:Op donderdag 5 augustus 2010 11:06 schreef Sitethief het volgende:
[..]
Wat bedoel je precies met een nette array? Dit is een multidimensionale array.
Wil je de array plat maken? Dan verlies je wel bepaalde informatie denk ik.
Ja, en als je het oneindig diep uit wilt lezen moet je een recursieve functie maken.quote:Op donderdag 5 augustus 2010 15:13 schreef Likkende_Lassie het volgende:
[..]
Ja dat bedoel ik, hoe kan ik dan het beste een multidimensionale uitlezen in php?
Met een foreach dus.. ?
Thanks!
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | function doeIetsMetMultiDimensionaleArray($array){ if (count($array)>0) { foreach ( $array as $k=>$v ) { if ( is_array($v) ) { doeIetsMetMultiDimensionaleArray($v); } else { echo "Doe hier iets met deze waarde: ".$v."\n"; } } } } doeIetsMetMultiDimensionaleArray($xmlarray); ?> |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 | <soap:Body> <GetFacturenResponse xmlns="http://ncis.nl/CSSWebservices"> <GetFacturenResult> <xs:schema id="NewDataSet" targetNamespace="ncis" attributeFormDefault="qualified" elementFormDefault="qualified" xmlns:mstns="ncis" xmlns="ncis" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata"> <xs:element name="NewDataSet" msdata:IsDataSet="true" msdata:MainDataTable="ncis_x003A_Facturen" msdata:UseCurrentLocale="true"> <xs:complexType> <xs:choice minOccurs="0" maxOccurs="unbounded"> <xs:element name="Facturen"> <xs:complexType> <xs:sequence> <xs:element name="Result" type="xs:string" minOccurs="0"/> <xs:element name="Remark" type="xs:string" minOccurs="0"/> <xs:element name="ContractID" type="xs:int" minOccurs="0"/> <xs:element name="ContractRegelID" type="xs:int" minOccurs="0"/> <xs:element name="ReferentieID" type="xs:int" minOccurs="0"/> <xs:element name="FactuurID" type="xs:int" minOccurs="0"/> <xs:element name="Soort" type="xs:string" minOccurs="0"/> <xs:element name="Type" type="xs:string" minOccurs="0"/> <xs:element name="Verrekenbaar" type="xs:boolean" minOccurs="0"/> <xs:element name="Termijn" type="xs:int" minOccurs="0"/> <xs:element name="Jaar" type="xs:int" minOccurs="0"/> <xs:element name="Betaalwijze" type="xs:string" minOccurs="0"/> <xs:element name="Rekeningnummer" type="xs:string" minOccurs="0"/> <xs:element name="Media" type="xs:string" minOccurs="0"/> <xs:element name="BedragExcl" type="xs:decimal" minOccurs="0"/> <xs:element name="BedragIncl" type="xs:decimal" minOccurs="0"/> <xs:element name="FactuurBedragIncl" type="xs:decimal" minOccurs="0"/> <xs:element name="VervalDatum" type="xs:dateTime" minOccurs="0"/> <xs:element name="FactuurOpenstaandBedragIncl" type="xs:decimal" minOccurs="0"/> </xs:sequence> </xs:complexType> </xs:element> </xs:choice> </xs:complexType> </xs:element> </xs:schema> <diffgr:diffgram xmlns:msdata="urn:schemas-microsoft-com:xml-msdata" xmlns:diffgr="urn:schemas-microsoft-com:xml-diffgram-v1"> <DocumentElement xmlns="ncis"> <Facturen diffgr:id="Facturen1" msdata:rowOrder="0"> <ContractID>xxxxx</ContractID> <FactuurID>631510</FactuurID> <Soort>Factuur</Soort> <Type>Voorschot</Type> <Verrekenbaar>true</Verrekenbaar> <Termijn>8</Termijn> <Jaar>2010</Jaar> <Betaalwijze>IC</Betaalwijze> <Rekeningnummer>XXXXXXX</Rekeningnummer> <Media>Voorschotfactuur_xxxxx_2010_8_20100803.pdf</Media> <BedragExcl>1857200</BedragExcl> <BedragIncl>2210000</BedragIncl> <FactuurBedragIncl>2210000</FactuurBedragIncl> <VervalDatum>2010-08-17T00:00:00+02:00</VervalDatum> </Facturen> <Facturen diffgr:id="Facturen2" msdata:rowOrder="1"> <ContractID>xxxxx</ContractID> <FactuurID>627891</FactuurID> <Soort>Factuur</Soort> <Type>Voorschot</Type> <Verrekenbaar>true</Verrekenbaar> <Termijn>7</Termijn> <Jaar>2010</Jaar> <Betaalwijze>IC</Betaalwijze> <Rekeningnummer>XXXXXXX</Rekeningnummer> <Media>Voorschotfactuur_xxxxx_2010_7_20100703.pdf</Media> <BedragExcl>1857200</BedragExcl> <BedragIncl>2210000</BedragIncl> <FactuurBedragIncl>2210000</FactuurBedragIncl> <VervalDatum>2010-07-19T00:00:00+02:00</VervalDatum> </Facturen> <Facturen diffgr:id="Facturen3" msdata:rowOrder="2"> <ContractID>xxxxx</ContractID> <FactuurID>620726</FactuurID> <Soort>Factuur</Soort> <Type>Voorschot</Type> <Verrekenbaar>true</Verrekenbaar> <Termijn>6</Termijn> <Jaar>2010</Jaar> <Betaalwijze>IC</Betaalwijze> <Rekeningnummer>XXXXXXX</Rekeningnummer> <Media>Voorschotfactuur_xxxxx_2010_6_20100604.pdf</Media> <BedragExcl>1764800</BedragExcl> <BedragIncl>2100000</BedragIncl> <FactuurBedragIncl>2100000</FactuurBedragIncl> <VervalDatum>2010-06-18T00:00:00+02:00</VervalDatum> </Facturen> <Facturen diffgr:id="Facturen4" msdata:rowOrder="3"> <ContractID>xxxxx</ContractID> <FactuurID>617091</FactuurID> <Soort>Factuur</Soort> <Type>Voorschot</Type> <Verrekenbaar>true</Verrekenbaar> <Termijn>5</Termijn> <Jaar>2010</Jaar> <Betaalwijze>IC</Betaalwijze> <Rekeningnummer>XXXXXXX</Rekeningnummer> <Media>Voorschotfactuur_xxxxx_2010_5_20100510.pdf</Media> <BedragExcl>1764800</BedragExcl> <BedragIncl>2100000</BedragIncl> <FactuurBedragIncl>2100000</FactuurBedragIncl> <VervalDatum>2010-05-24T00:00:00+02:00</VervalDatum> </Facturen> <Facturen diffgr:id="Facturen5" msdata:rowOrder="4"> <ContractID>xxxxx</ContractID> <FactuurID>613446</FactuurID> <Soort>Factuur</Soort> <Type>Voorschot</Type> <Verrekenbaar>true</Verrekenbaar> <Termijn>4</Termijn> <Jaar>2010</Jaar> <Betaalwijze>IC</Betaalwijze> <Rekeningnummer>XXXXXXX</Rekeningnummer> <Media>Voorschotfactuur_xxxxx_2010_4_20100414.pdf</Media> <BedragExcl>1764800</BedragExcl> <BedragIncl>2100000</BedragIncl> <FactuurBedragIncl>2100000</FactuurBedragIncl> <VervalDatum>2010-04-28T00:00:00+02:00</VervalDatum> </Facturen> <Facturen diffgr:id="Facturen6" msdata:rowOrder="5"> <ContractID>xxxxx</ContractID> <FactuurID>610657</FactuurID> <Soort>Factuur</Soort> <Type>Voorschot</Type> <Verrekenbaar>true</Verrekenbaar> <Termijn>3</Termijn> <Jaar>2010</Jaar> <Betaalwijze>IC</Betaalwijze> <Rekeningnummer>XXXXXXX</Rekeningnummer> <Media>Voorschotfactuur_xxxxx_2010_3_20100319.pdf</Media> <BedragExcl>1764800</BedragExcl> <BedragIncl>2100000</BedragIncl> <FactuurBedragIncl>2100000</FactuurBedragIncl> <VervalDatum>2010-04-02T00:00:00+02:00</VervalDatum> </Facturen> <Facturen diffgr:id="Facturen7" msdata:rowOrder="6"> <ContractID>xxxxx</ContractID> <FactuurID>608073</FactuurID> <Soort>Factuur</Soort> <Type>Voorschot</Type> <Verrekenbaar>true</Verrekenbaar> <Termijn>2</Termijn> <Jaar>2010</Jaar> <Betaalwijze>IC</Betaalwijze> <Rekeningnummer>XXXXXXX</Rekeningnummer> <Media>Voorschotfactuur_xxxxx_2010_2.pdf</Media> <BedragExcl>1764700</BedragExcl> <BedragIncl>2100000</BedragIncl> <FactuurBedragIncl>2100000</FactuurBedragIncl> <VervalDatum>2010-03-04T00:00:00+01:00</VervalDatum> </Facturen> <Facturen diffgr:id="Facturen8" msdata:rowOrder="7"> <ContractID>xxxxx</ContractID> <FactuurID>603370</FactuurID> <Soort>Factuur</Soort> <Type>Voorschot</Type> <Verrekenbaar>true</Verrekenbaar> <Termijn>1</Termijn> <Jaar>2010</Jaar> <Betaalwijze>IC</Betaalwijze> <Rekeningnummer>XXXXXXX</Rekeningnummer> <Media>Voorschotfactuur_xxxxx_2010_1.pdf</Media> <BedragExcl>1789700</BedragExcl> <BedragIncl>2129700</BedragIncl> <FactuurBedragIncl>2129700</FactuurBedragIncl> <VervalDatum>2010-02-08T00:00:00+01:00</VervalDatum> </Facturen> </DocumentElement> </diffgr:diffgram> </GetFacturenResult> </GetFacturenResponse> </soap:Body> </soap:Envelope> |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 | function xml2array($xml) { $xmlary = array(); $reels = '/<(\w+)\s*([^\/>]*)\s*(?:\/>|>(.*)<\/\s*\\1\s*>)/s'; $reattrs = '/(\w+)=(?:"|\')([^"\']*)(:?"|\')/'; preg_match_all($reels, $xml, $elements); foreach ($elements[1] as $ie => $xx) { $xmlary[$ie]["name"] = $elements[1][$ie]; if ($attributes = trim($elements[2][$ie])) { preg_match_all($reattrs, $attributes, $att); foreach ($att[1] as $ia => $xx) $xmlary[$ie]["attributes"][$att[1][$ia]] = $att[2][$ia]; } $cdend = strpos($elements[3][$ie], "<"); if ($cdend > 0) { $xmlary[$ie]["text"] = substr($elements[3][$ie], 0, $cdend - 1); } if (preg_match($reels, $elements[3][$ie])) $xmlary[$ie]["elements"] = xml2array($elements[3][$ie]); else if ($elements[3][$ie]) { $xmlary[$ie]["text"] = $elements[3][$ie]; } } return $xmlary; } $result = soapCall('GetFacturen', array('sessieID' => $_SESSION['loginSession_ID'], 'Contractnummer' => $_SESSION['contractnummer'])); //lets put it in a readable array! $resultArray = xml2array($result->GetFacturenResult->any); ?> |
1 2 3 4 5 6 7 8 9 | $result = soapCall('GetFacturen', array('sessieID' => $_SESSION['loginSession_ID'], 'Contractnummer' => $_SESSION['contractnummer'])); $objDOM = new DOMDocument(); $objDOM->load($result); //make sure path is correct $Facturen = $objDOM->getElementsByTagName("Facturen"); print_r($Facturen); ?> |
Forum Opties | |
---|---|
Forumhop: | |
Hop naar: |