Hallo,

Ik had de volgende probleem. In mijn database gebruik ik een koppeltabel om meerdere gegevens aan een gebruiker toe tevoegen. Nu ziet mijn database er als volgt uit:

Tabel 1 auto
autoid
autonaam
enz

Tabel 2 autocon
autoid
gebruikersid

Tabel 3 gebruiker
gebruikerid
naam
enz

Als ik deze invoer gaat alles goed. Alleen als ik ze wil bewerken. Hoe kan ik dan zeggen dat die geen die al aan de gebruiker zijn gekoppeld geselecteerd zijn en die geen die nog niet aan de gebruiker zijn gekoppeld die ook laat zien, maar dan niet geselecteerd. Zodat je die ook kan toevoegen?

Groet,

Kees
De gebruiker moet gekoppeld worden aan autocon of aan auto? Dan kun je toch kijken of er in auto of autocon (weet niet wat de relaties zijn) een gebruikersid is met het gebruikersid van de gebruiker die je op dat moment uit de database selecteert?
Ik gebruik nu de volgende query om ze te selecteren:

"SELECT user.*, autocon.*, auto.* FROM user INNER JOIN autocon ON (user.userid = autocon.userid) INNER JOIN auto ON (autocon.autoid = auto.autoid) WHERE `user`.userid = $_GET[id]";
Is het zo dat er meerdere gebruikers aan 1 auto gekoppeld kunnen zijn, want anders is die koppeltabel overbodig.
Als ik je goed begrijp wil je een overzicht van alle auto's met of zonder gekoppelde gebruiker, je krijgt dan zoiets:

SELECT
 	a.autoid a_id,
	a.autonaam a_naam,
	g.gebruikerid g_id,
	g.naam g_naam
FROM auto a
LEFT JOIN
	(autocon k 
	INNER JOIN 
		gebruiker g ON k.gebruikerid = g.id
	)
	ON a.autoid = k.autoid   
Ja dit gedeelte werkt dan ook alleen hoe moet ik het vervolgen. Heb nu het volgende code om het uittelezen:

<?php
<tr valign="baseline">
<td nowrap="nowrap" align="right">Koppel aan:</td>
<td>

<?php
do {
?>
<input type="checkbox" name="autoid[<?php echo $row_uss['autoid']?>]" id="autoid" value="1"><?php echo $row_uss['autonaam']?></option>
<?php
} while ($row_uss = mysql_fetch_assoc($uss));
$rows = mysql_num_rows($uss);
if($rows > 0) {
mysql_data_seek($uss, 0);
$row_uss = mysql_fetch_assoc($uss);
}
?>
</td>
</tr>
?>

Hiermee laat die dan ook precies zien welke auto's erbij de gebruiker horen. Alleen niet de geen die er wel zijn maar nog niet zijn toegewezen aan de gebruiker.
Zie mijn vorige post. Jij gebruikt een INNER JOIN en dan krijg je geen rijen terug waarvan de JOIN voorwaarden niet overeenkomen.
Ik heb het stukje zoals jij het had geschreven overnomen en toegevoegd, maar krijg precies het zelfde resultaat terug als voorheen.
Is het zo dat er meerdere gebruikers aan 1 auto gekoppeld kunnen zijn?
Ja dit is de bedoeling
Kees - op 31/01/2012 14:43:38

Ik heb het stukje zoals jij het had geschreven overnomen en toegevoegd, maar krijg precies het zelfde resultaat terug als voorheen.

Lijkt me sterk, stond een fout in de sql.

Reageren