ik ben een functie aan het maken die
meerdere records uit een tabel haalt op basis van ordernummer met allemaal hetzelfde user_id
nu wil ik uit het queryresultaat het user_id als 1 enkele waarde halen
dat doe ik op de volgende manier
<?php
function get_userid_verkoopdata ($order_id){
$get = mysql_query('SELECT user_id FROM verkoopdata WHERE factuurnummer='.$order_id);
while ($get_row = mysql_fetch_assoc($get)){
$userid = $get_row['user_id'];
break;
}
return $userid;
}
?>
het werkt maar ik ben benieuwd of ik dit nu niet met een omweg aan het doen ben
mvg bas
Zet er dan ook nog een LIMIT 1 achter. Als je toch maar 1 record ophaalt, hoef je de rest ook niet te selecteren.
Overigens riekt dit naar een niet volledig genormaliseerde database. Als de combinatie van factuurnummer en userid altijd gelijk is, dan kan je dat efficienter doen.
hij zoekt een klantnummer bij een order....is dat erg? zou ik ook doen....factuurtabel met basisfactuurgegevens..en dan factuurregels in een extra tabel...maar goed :)
Waarbij dus 1 klant meerdere orders kan hebben en 1 order meerdere facturen.
Een factuur zit echter altijd maar vast aan 1 order en een order zit altijd maar vast aan 1 klant.
Met andere woorden, als je je database echt goed genormaliseerd hebt dan weet je uit factuurnummer, via het ordernummer het klantnummer. Er is dus geen noodzaak om klantnummer bij factuurnummer op te slaan, dat is dubbele data en daarmee een mogelijk probleem bij updates.
Anyway, er is nog een mogelijkheid dat 'verkoopdata' in dit geval een view is waardoor het klantnummer er al bij komt. In dat geval is er dus niets aan de hand. Anders, zoals ik zeg, riekt het ernaar dat de normalisatie beter kan.