Hallo allemaal,

ik ben aan het proberen mijn verschillende MySQL query's
te combineren.

Nu de query zelf is geen probleem, maar hoe steek ik de resultaten
in een $variable in PHP?

De query
<?php
$sql= "SELECT SUM( tijd ) AS tijd, SUM( night ) AS night, SUM( sat ) AS sat, SUM( sun ) AS sun, SUM( lunch ) AS lunch FROM roster2013 WHERE naam = '$foo' AND maand ='$maand'";
$sql2 = mysql_query($sql) or die(mysql_error());
?>

voorheen maakte ik voor elke SUM een aparte query waar ik dan de waarde in een variable stak
<?php
$query = "SELECT SUM(tijd)FROM roster2013 WHERE naam = '$foo' AND maand ='$maand'";
$tijd = mysql_query($query) or die(mysql_error());
$tijd2 = mysql_fetch_assoc($tijd);
$tijd3 = $tijd2['SUM(tijd)'];
?>

en dit dan x aantal keer.

Nu moet dit echter toch veel makkelijker kunnen dacht ik, maar de oplossing ontbreekt
me...

thanks alvast,

Yannick
ik kan me bij sommige beroepen wel voorstellen dat het aantal uur mogelijk per maand wat varieert.
ook als iemand standaard 20 uur per week werkt.

afhankelijk van op welke weekdag een maand begint, varieert het aantal werkdagen.
en afhankelijk van het soort contract (altijd vrij op vrijdag / woensdag middag etc)


[size=xsmall]Toevoeging op 27/12/2013 12:32:48:[/size]

@Yannick: jouw query mist een kolom in de GROUP BY : tw.uren

oftewel: op die manier kun je niet het aantal te werken uren opvragen. Alleen in een SUM() zou dat gaan. Want

Als je daar geen foutmelding op krijgt:

http://www.pfz.nl/wiki/group-by/
en vooral: http://wiki.pfz.nl/werken-met-mysql/#configuratie-sql-modes
>> oftewel: op die manier kun je niet het aantal te werken uren opvragen. Alleen in een SUM() zou dat gaan.

Kan gewoon zonder de SUM want de te werken uren zijn voor per werknemer per maand hetzelfde, maar hoort idd wel in de GROUP BY clause te staan.



[size=xsmall]Toevoeging op 27/12/2013 13:20:17:[/size]

Frank Nietbelangrijk op 27/12/2013 12:15:07

Hee Ger,

Ik noem dat persoonlijke voorkeur. En als je met mysql werkt dan werk je met arrays in PHP. Maar je hebt gelijk je kunt het rekenwerk ook in de query laten uitvoeren.


Ik zou het eerder inefficientie noemen.

Reageren