advies 1 record selecteren uit meerdere records met zelfde user_id
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
Code (php)
1
2
3
4
5
6
7
8
9
10
2
3
4
5
6
7
8
9
10
<?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;
}
?>
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
http://php.net/manual/en/function.mysql-fetch-row.php
Je kunt wel zien dat je zelf even hebt gekeken
Edit, je kan gewoon dit doen
zonder de while loop, dan krijg je de eerstvolgende rij
Je kunt wel zien dat je zelf even hebt gekeken
Edit, je kan gewoon dit doen
zonder de while loop, dan krijg je de eerstvolgende rij
Gewijzigd op 14/01/2013 13:24:10 door Moose -
ik wist ergens wel dat ik het netter kon doen maar nog niet precies wat.
bednkt voor de tip
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 :)
klant -> order -> factuur
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.
[geplaatste orders zonder betaalbevestiging met informatie over winkelwageninhoud]
deze tabel wordt geupdate via de website
tabel transactiedata gegevens:
[betaalbevestigingen van bankserver geplaatse orders zonder gegevens over de winkelwageninhoud]
deze tabel wordt geupdate met $_POST['data'] van de bank
de tabel transactiedata bevat de orders die verwerkt mogen worden.
en de tabel verkoopdata bevat de bijbehorende informatie mbt de winkelwageninhoud
er hoeft dus niet genormaliseerd te worden
mvg bas
Toevoeging op 14/01/2013 18:59:41:
factuurnummer ---->ordergegevens----->ordergegevens zijn klantnummer en bestelde producten
elke productrecord bevat een user_id en product_id
op basis van deze 2 id nummers worden de klant en productgegevens uit de bijbehorende tabellen gehaald.
waarbij ik voor elke record uiteraard het product id moet hebben maar van de klant heb ik er maar 1 nodig uiteraard
ik denk niet dat er een probleem is met de referentiele integriteit