Hallo iedereen,

Ik heb een vraag over MYSQL i.c.m. PHP.
Ik ben bezig om zelf een soort urenregistratiesysteem te maken waarin collega's hun uren kunnen bijhouden op de projecten, gekoppeld aan klanten (hierna assignments genoemd) waar ze werken. Dit kunnen ze per week invullen. (zie http://www.familieselles.nl/question/image.jpg)
Hiervoor heb ik 5 tabellen gemaakt, te weten:
- employees
- customers
- projects
- assignments
- timesheet

De week die getoond wordt, wordt opgebouwd d.m.v. onderstaande query.


<?php
// Deze query gaat goed
// D.m.v. een while lus wordt de tabel getoond zoals je in de link kunt zien
$sql	=	"SELECT ".$assignments.".assignment_id,
			".$assignments.".customer_id,
			".$assignments.".employee_id,
			".$assignments.".project_id,
			".$assignments.".time_type,
			".$assignments.".allowed_time,
			".$assignments.".allowed_extra_time,
			".$assignments.".start_date,
			".$assignments.".end_date,
			".$assignments.".assignment_active,
			".$projects.".project_id,
			".$projects.".projectname,
			".$projects.".projectcode,
			".$customers.".customer_id
			FROM ".$assignments.",".$projects.",".$customers."
			WHERE ".$assignments.".employee_id='".$employee_id."' 
			AND ".$assignments.".project_id=".$projects.".project_id 
			AND ".$assignments.".customer_id=".$customers.".customer_id
			AND ".$assignments.".assignment_active=1
			ORDER BY ".$customers.".customername ASC";
?>


In de tabel employees staan de naam en een employee_id van de gebruiker
In de tabel customers staat de naam, een afkorting en een customer_id van de klant
In de tabel project staat de naam, een afkorting en een project_id van het project
In de tabel assignments staat een assignment_id, een emplyee_id,een customer_id en een project_id
In de tabel timesheet staat een timesheet_id, een assignment_id, de dag waarop uren zijn ingevuld (jjjj-mm-dd) en de uren

Wanneer er uren zijn ingevuld voor een bepaalde dag, bv 27-7-2008, dan dienen deze opgevraagd te worden uit de tabel timesheet a.d.h.v. een assignment_id en de dag waarop de uren zijn ingevuld. Het lijkt mij handig om dit te doen met 1 query, zie de 2e query in onderstaande code, maar die gaat niet goed, zie http://www.familieselles.nl/question/image2.jpg voor afbeelding 2.
Kan dit uberhaupt, zo ja, wat doe ik dan fout.


<?php
// Deze query gaat niet goed, er worden nu per assignment die voorkomen
// in de tabel timesheet eenzelfde opdracht getoond
// In de tabel timesheet staan nu maar 4 resultaten gekoppeld aan
// de assignment Belastingdienst
$sql	=	"SELECT ".$assignments.".assignment_id,
			".$assignments.".customer_id,
			".$assignments.".employee_id,
			".$assignments.".project_id,
			".$assignments.".time_type,
			".$assignments.".allowed_time,
			".$assignments.".allowed_extra_time,
			".$assignments.".start_date,
			".$assignments.".end_date,
			".$assignments.".assignment_active,
			".$projects.".project_id,
			".$projects.".projectname,
			".$projects.".projectcode,
			".$customers.".customer_id,
			".$customers.".customername,
			".$customers.".customercode,
			".$timesheet.".timesheet_id,
			".$timesheet.".assignment_id,
			".$timesheet.".day,
			".$timesheet.".hours
			FROM ".$assignments.",".$projects.",".$customers.",".$timesheet."
			WHERE ".$assignments.".employee_id='".$employee_id."' 
			AND ".$assignments.".project_id=".$projects.".project_id 
			AND ".$assignments.".customer_id=".$customers.".customer_id
			AND ".$timesheet.".assignment_id=".$assignments.".assignment_id
			AND ".$assignments.".assignment_active=1
			ORDER BY ".$customers.".customername ASC";
?>


M.v.g. Wim
Ik ben er nog niet achter en heb het nu met meerdere querys gedaan, maar als iemand een oplossing heeft hoor ik het graag

Groeten

Wim

Reageren