Beste mensen,

Ik ben een stagiair bij een bedrijf en maak een systeem om projecten in te voeren waar je een planning in kunt voeren en er wordt ingelogd met accounts.

nu heb ik een formulier met een overzicht van de projecten.
dit is mijn SQl query voor de projecten.
$sql = "
SELECT
id_project, kop_project, begin_datum, eind_datum, content_project
FROM
projecten
ORDER BY
id_project";

Mijn tabel voor gebruikers:

members:

member_id
firstname
lastname
login <- dit is de username
passwd


Naast dat heb ik een koppeltabel, hierin staan de IDs van de projecten en van members.

koppel_users:
member_id
id_project


Het project overzicht wordt in een while neergezet.
Maar nu moet de gebruiker gekoppeld zijn aan een project, dit is mij wel gelukt om in de koppeltabel te zetten.

Maar om nu in mijn projectoverzicht de projecten eruit te filteren die niet in de koppeltabel staan lukt me niet. Omdat sommige gebruikers niet ALLE projecten mag zien maar een bepaald aantal die in de koppeltabel zijn aangegeven.

De koppeltabel ziet er als volgt uit als deze is ingevuld.

member_id || id_project
11 || 2
11 || 3
Dus member 11 mag alleen project 2 en 3 zien verschijnen

Ik weet eigenlijk totaal niet waar ik moet beginnen en hoop dat iemand mij kan helpen.

Als ik meer info moet geven doe ik dat graag.

Alvast bedankt!
Robbin
SELECT m.naam, p.naam
FROM members_projecten AS mp
LEFT JOIN members AS m ON m.id = mp.member_id
LEFT JOIN projecten AS p ON p.id = mp.project_id


Je moet wel even de tabelnamen en de veldnamen aanpassen, maar zoiets moet het worden.
Ok, dus ik heb nu 2 queries

$sql = "
SELECT
id_project, kop_project, begin_datum, eind_datum, content_project
FROM
projecten
ORDER BY
id_project
";

en

$sql2 = "SELECT m.member_id, p.id_project
FROM koppel_users AS mp
LEFT JOIN members AS m ON m.id = mp.member_id
LEFT JOIN projecten AS p ON p.id = mp.id_project
";

Nu post ik de 1e query in een while op deze manier:
if(!$res = mysql_query($sql))
{
trigger_error(mysql_error().'<br />In query: '.$sql);
}
elseif(mysql_num_rows($res) == 0)
{
echo'<tr><td style="color:red;">Geen resultaten gevonden</td></tr>';
}
else
{
while($row = mysql_fetch_assoc($res))
{
echo $row['kop_project'];
}
}

is dit dan genoeg, ik neem aan dat je die 2e query ook in de while moet zetten?
Je kunt mijn voorbeeld uitbreiden met alle velden die je nodig hebt in de SELECT regel van de query. Dan heb je maar 1 query nodig. Wel de goede tabel-aliassen voor de veldnamen zetten uiteraard.
Aha, je hebt dus in principe met die regel LEFT JOIN een andere tabel include, dus je kunt zo ook de data uit de andere tabellen pakken.

Nou ik ga even kijken, heel erg bedankt voor de hulp!

EDIT: Het werkt nu, echt heel erg bedankt!

Reageren