ik heb een produktpagina. (tabel machine)
Ik wil een lijstje maken met een aantal opties (tabel opties)
vervolgens wil ik een lijst met alle opties maken met ee checkbox en per optie kijken of deze optie bestaat voor dit produkt (in de koppeltabel) om vervolgens bij elke checkbox t ekijken of hij aan of uit is.
maar ik ben al wat op weg...
ik wil een lijst genereren, van opties, elk met een id,
en vervolgens bij elke optie checken of er in een koppeltabel een record bestaat met hetzelfde id, vervolgens zet ik een checkbox aan of uit.
ik dacht t zo op te lossen
//// OPTIES
$sql = "select * from opties";
$result = mysql_query($sql);
$sql2 = "select * from machine_opties";
$result2 = mysql_query($sql2);
while ($data = mysql_fetch_array($result)) {
// de variabelen
$data2 = mysql_fetch_array($result2);
$search_array = $data2;
$key = $data['id'];
if (array_key_exists($key, $search_array)) {
$check = 'id bestaat';
}
else {
$check = 'id bestaat niet';
}
echo $check;
}
Je gaat in ieder geval hier de fout in:
<?php
$data2 = mysql_fetch_array($result2);
$search_array = $data2;
(...)
if (array_key_exists($key, $search_array))
?>
Allereerst, waarom hernoem je $data2 naar $search_array. Beetje overbodig in dit geval. Daarnaast bevat $search_array alleen de laatste rij van je resultset. En ik neem aan dat je alle rijen in die array wilt hebben.
Wat ik ook niet snap is dat je bij beide queries die je uitvoert alle resultaten uit een tabel ophaalt. Er is nu totaal geen relatie tussen deze twee result set en je gaat ze wel met elkaar gebruiken.
Ik zou zoiets doen:
SELECT
opties.id,
machine_opties.id
FROM
opties
LEFT JOIN
machine_opties
ON
opties.id = machine_opties.optieID
machine_opties.optieID moet je even de juiste naam geven. Dit is de foreign key in de tabel machine_opties die naar de tabel opties verwijst.
Vervolgens krijg je een resultaat-set terug met alle id's uit de optie tabel. Als er een overeenkomstig id in de koppeltabel gevonden is, wordt dat ook teruggegeven. Zo niet, dat wordt er op die plaats 'null' terug gegeven.
$sql = "
SELECT
opties.id,
machine_opties.id <---- in koppeltabel gebruik ik machine_id en optie_id
FROM
opties
LEFT JOIN
machine_opties
ON
opties.id = machine_opties.optie_id";