Ik heb een tabel prijslijst bestaande uit product, omschrijving, verpakking en prijs. Dezelfde omschrijving kan meerdere keren voorkomen alleen dan is de verpakking en de prijs anders. Mijn vraag:
Ik wil dezelfde omschrijving maar 1 maal tonen en dmv een combobox mensen laten kiezen uit de verpakkingen zodat hieruit de juiste prijs getoond wordt. Ik weet dat je met distinct de unieke waarde uit mysql kunt ophalen, maar hoe koppel ik deze weer aan de verpakking?
Ik zal nog even wat meer uitleg geven. De input van de tabel prijslijst is een csv file. Op de csv file staan bv omschrijving verpakking prijs
andijvie kg 2 euro
andijvie doos 8 euro
Het woord andijvie wil ik maar 1 maal tonen op mijn site en dmv een combobox waarin de keuze kg en doos staat wil ik laten bepalen welke prijs erbij hoort.
Ik denk niet dat dit je gaat lukken in 1 query. Je krijgt namelijk ofwel alle combinaties te zien maar dan komt 'andijvie' dus ook meerdere malen voor of, als je DISTINCT gebruikt, krijg je maar 1 combinatie te zien van elke omschrijving.
Ik denk dat het hier het makkelijkst is om met 2 queries te werken: 1 waarin je alle unieke omschrijvingen ophaalt en een 2e waarmee de combinaties behorende bij een omschrijving ophaalt.
bedankt voor je reactie Blanche,
Maar hoe zorg ik er dan voor dat de juiste waardes bij de juiste omschrijving komen?
Ik had zelf zoiets bedacht(nog zonder combobox)
$query = "SELECT DISTINCT `omschrijving` FROM `prijslijst` WHERE product='Groenten' ORDER BY 'omschrijving'";
$result = mysql_query($query,$dbh);
while ($record = mysql_fetch_assoc($result)) {
$query1 = "SELECT `verpakking`,`prijs` FROM `prijslijst` WHERE `omschrijving`='".mysql_real_escape_string($record['omschrijving'])."'";
$resultaat = mysql_query($query1,$dbh);
Ik krijg het idee dat het datamodel niet goed is. Wanneer jij in de prijslijst namelijk meerdere keren de omschrijving hebt staan, dan is er duidelijk niet genormaliseerd. Je hebt het namelijk over 1 product, dat in verschillende verpakkingen wordt geleverd. 'producten' en 'verpakkingen' zijn dan al 2 tabellen.
Pas z.s.m. het datamodel aan, de huidige opzet gaat gegarandeerd fout. Zie de tutorials hoe je kunt normaliseren.