Het lukt weer niet om gegevens uit twee tabellen samen te voegen.

Tabel categorie en tabel uitgaven.

Eerst laat ik de categorie naam zien en daarachter komen alle uitgaven te staan die bij die categorie horen.

Hij geeft netjes alle categorieën onder elkaar weer met daarachter alle uitgaven.
Alleen zijn die uitgaven van de eerste categorie en dus niet van de categorie waar ze bijhoren.

Dit is de code die ik heb.


<table width="500" class="tabelgroot" align="center" border="0" cellspacing="0" cellpadding="4">
	<tr>
		<td colspan="2"><h1>Uitgaven</h1></td>
	</tr>
	<?php
		//Geef hier de categorienaam weer van de uitgaven
		$query4 = "SELECT cat_naam FROM categorie  WHERE budget_id = 2";
		$result4 = mysql_query($query4) or die ("Sorry maar ik kan naam van de inkomsten niet weergeven");
		while ($row4 = mysql_fetch_object($result4)){
		?>
		<tr>
		<td width="100" class="tdcatuit" valign="top">
		<?php
		echo '<font class="inkomsten">'.$row4->cat_naam.'</font>';	
		?></td>
		<td width="400" class="tabeluitgaven" valign="top">			<table width="400"  border="0" cellspacing="0" cellpadding="0">
           <?php
		
		//Geef hier de onderwerpen weer van de categorie uitgaven
		$query5 = "SELECT
		c.cat_id,
		c.cat_naam,
		c.budget_id,
		u.uitgave_naam,
		u.uitgave_bedrag,
		u.cat_id
		FROM categorie AS c
		JOIN
		uitgaven AS u
		ON c.cat_id = u.cat_id
		GROUP BY u.budget_id
		";
		$result5 = mysql_query($query5) or die ("Sorry maar ik kan naam van de uitgaven niet weergeven");
		while ($row5 = mysql_fetch_object($result5)){
		
		echo '<tr><td class="tdinkomsten">'.$row5->uitgave_naam.'</td><td class="tdinkomsten">&#8364; '.$row5->uitgave_bedrag.'</td></tr>';	
		}
		?>	
		<tr><td width="200" class="totaaluit"><b>Totaal:</b></td><td width="200" class="totaaluit">
		<?php
		$query6 = "SELECT budget_id, SUM(uitgave_bedrag) AS totaal FROM uitgaven WHERE budget_id = 2 GROUP BY budget_id";
		$result6 = mysql_query($query6) or die ("Sorry maar ik kan het totaalbedrag van de inkomsten niet weergeven");
		$row6 = mysql_fetch_object($result6);
		echo '&#8364; '.$row6->totaal.'';
		?></td></tr></table>
		</td>
		</tr>
		<?php
		}
		?>
</table>
Wie weet hoe ik de uitgaven bij de juiste categorie krijg?
Na veel gepruts en het bijna te hebben opgegeven is het me toch gelukt!!

Zo heb ik het gedaan:


<table width="500" class="tabelgroot" align="center" border="0" cellspacing="0" cellpadding="4">
	<tr>
		<td colspan="2"><h1>Uitgaven</h1></td>
	</tr>
	<?php
		//Geef hier de categorienaam weer van de uitgaven
		$query4 = "SELECT cat_id,cat_naam from categorie";
		$result4 = mysql_query($query4) or die ("Sorry maar ik kan naam van de uitgaven niet weergeven");
		while ($row4 = mysql_fetch_object($result4)){
		?>
		<tr>
		<td width="100" class="tdcatuit" valign="top">
		<?php
		echo '<font class="inkomsten">'.$row4->cat_naam.'</font>';	
		?></td>
		<td width="400" class="tabeluitgaven" valign="top">			<table width="400"  border="0" cellspacing="0" cellpadding="0">
           <?php
		
		//Geef hier de onderwerpen weer van de categorie uitgaven
		$query5 = "SELECT
		c.cat_id,
		c.cat_naam,
		c.budget_id,
		u.uitgave_naam,
		u.uitgave_bedrag,
		u.cat_id,
		u.budget_id
		FROM categorie AS c
		JOIN
		uitgaven AS u
		ON c.cat_id = u.cat_id WHERE u.cat_id = $row4->cat_id";
		$result5 = mysql_query($query5) or die ("Sorry maar ik kan naam van de uitgaven niet weergeven");
		while ($row5 = mysql_fetch_object($result5)){
		
		echo '<tr><td class="tdinkomsten">'.$row5->uitgave_naam.'</td><td class="tdinkomsten">&#8364; '.$row5->uitgave_bedrag.'</td></tr>';	
		}
		?>	
		<tr><td width="200" class="totaaluit"><b>Totaal:</b></td><td width="200" class="totaaluit">
		<?php
		$query6 = "SELECT budget_id, SUM(uitgave_bedrag) AS totaal FROM uitgaven WHERE budget_id = 2 GROUP BY budget_id";
		$result6 = mysql_query($query6) or die ("Sorry maar ik kan het totaalbedrag van de inkomsten niet weergeven");
		$row6 = mysql_fetch_object($result6);
		echo '&#8364; '.$row6->totaal.'';
		?></td></tr></table>
		</td>
		</tr>
		<?php
		}
		?>
</table>
Super! Ik had net het antwoord willen posten ;)

Veel succes met de rest van je script

Reageren