Maar hoe weet je dan dat de eerste het juiste resultaat is? Als het onderscheid gemaakt wordt op category,subcategory dan zou je sowieso de 2e query moeten gebruiken even terug te komen op je eerste vraag.quote:
Ik bedoel, id is altijd uniek, geen duplicates, maar ik heb het niet als unique gedefineerd omdat ik nog niet weet wat unique, primary key, index etc allemaal doen.quote:Op donderdag 28 november 2013 20:56 schreef TwenteFC het volgende:
[..]
Maar hoe weet je dan dat de eerste het juiste resultaat is? Als het onderscheid gemaakt wordt op category,subcategory dan zou je sowieso de 2e query moeten gebruiken even terug te komen op je eerste vraag.
Behalve dat je ze dan weg kan laten in de select, omdat je die waardes al hebt.
Wordt jouw id automatisch opgehoogd wanneer je een nieuwe toevoegt? zoja; dan is het al je PK, en uniek.quote:Op donderdag 28 november 2013 21:00 schreef xaban06 het volgende:
[..]
Ik bedoel, id is altijd uniek, geen duplicates, maar ik heb het niet als unique gedefineerd omdat ik nog niet weet wat unique, primary key, index etc allemaal doen.
Is een auto_increment veld. Wat is PK?quote:Op donderdag 28 november 2013 21:01 schreef TwenteFC het volgende:
[..]
Wordt jouw id automatisch opgehoogd wanneer je een nieuwe toevoegt? zoja; dan is het al je PK, en uniek.
Primary key, en een auto_increment veld is per definitie uniek en onderdeel v/d PK.quote:Op donderdag 28 november 2013 21:02 schreef xaban06 het volgende:
[..]
Is een auto_increment veld. Wat is PK?
Waarom niet gewoon de Price en shipmentCost ( Let even op met dit soort CamelCasing overigens !! ) uit DB trekken en PHP het op laten tellen? dan kun je er ook nog variabele kortingen en dergelijke in mee rekenen als je dit nodig hebt?quote:Op donderdag 28 november 2013 21:25 schreef xaban06 het volgende:
Nog een vraag, ik sla prijzen op als:
199,99
In MySQL doe ik in een SELECT, price+shipmentCost as totalPrice. Dit werkt niet. Het werkt wel wanneer ik de prijzen opsla als:
199.99
Dus een punt in plaats van een komma. Is hier omheen te werken op een nette manier?
Dit inderdaad, dat vind je backend ook stuk toffer! :-)quote:Op donderdag 28 november 2013 21:50 schreef KomtTijd... het volgende:
Al zou het kunnen, dat is toch iets wat je absoluut nooit aan wilt beginnen?
Sowieso, sla gewoon de prijs in centen op als int.
Ja, je waarde altijd opslaan als float of decimal en pas converteren naar #,## wanner je het output naar je template.quote:Op donderdag 28 november 2013 21:25 schreef xaban06 het volgende:
Nog een vraag, ik sla prijzen op als:
199,99
In MySQL doe ik in een SELECT, price+shipmentCost as totalPrice. Dit werkt niet. Het werkt wel wanneer ik de prijzen opsla als:
199.99
Dus een punt in plaats van een komma. Is hier omheen te werken op een nette manier?
quote:Op donderdag 28 november 2013 21:25 schreef xaban06 het volgende:
Nog een vraag, ik sla prijzen op als:
199,99
In MySQL doe ik in een SELECT, price+shipmentCost as totalPrice. Dit werkt niet. Het werkt wel wanneer ik de prijzen opsla als:
199.99
Dus een punt in plaats van een komma. Is hier omheen te werken op een nette manier?
1 2 3 4 5 | $price = 1999.99; $price = number_format($price, 2, ',', '.'); print $price . "\n"; # geeft 1.999,99 |
1 2 3 4 5 6 7 8 | setlocale(LC_ALL, array( 'nl_NL.utf8', 'nl_NL@euro', 'nl_NL.iso885915@euro', 'nl_NL.iso88591', 'nl_NL', 'POSIX', )); |
1 2 3 4 5 6 7 8 9 10 | <?php SELECT * FROM productoffers AS po WHERE po.id IN ( SELECT id FROM productoffers WHERE sellerId =1 ) AND po.sellerId = 2 ?> |
where po.sellerid = 1 and po.sellerid =2?quote:Op donderdag 28 november 2013 22:19 schreef TwenteFC het volgende:
[ code verwijderd ]
Ik wil de productprijzen op halen van producten die zowel bij shop A als bij shop B zijn, waar ga ik de fout in met deze query? Had het ook al met EXISTS geprobeerd maar ik loop even flink te kutten nu
Dan krijg ik alle producten seller 1 en 2, ongeacht of seller 1 en 2 het beide product hebben.quote:Op donderdag 28 november 2013 22:22 schreef slacker_nl het volgende:
[..]
where po.sellerid = 1 and po.sellerid =2?
Thanks, zal daar eens naar kijken. Het is allemaal read, ik doe verder zo goed als geen input/insertquote:Op donderdag 28 november 2013 21:56 schreef slacker_nl het volgende:
[..]
[ code verwijderd ]
Zo kan je het in je weergave aanpassen, ik zou het gewoon goed als float/double opslaan in je DB. En als centen opslaan in je DB.. mja, ik snap die redenatie niet. Alsof floats/doubles zo moeilijk zijn voor een database...
Je kan overigens ook..
[ code verwijderd ]
proberen te gebruiken. Maar dat kan eventueel misgaan bij de input naar de database. Dan moet je binnen je transactie wellicht even de locale terugzetten naar iets Engelsachtig (LC_MONETARY en/of LC_NUMERIC aanpassen helpt al).
hoezo, tis geen or toch? where (po.sellerid = 1 and po.sellerid = 2) and .. zou m.i. moeten werken.quote:Op donderdag 28 november 2013 22:24 schreef TwenteFC het volgende:
[..]
Dan krijg ik alle producten seller 1 en 2, ongeacht of seller 1 en 2 het beide product hebben.
hoe kan één sellerId 1 en 2 zijn dan?quote:Op donderdag 28 november 2013 22:29 schreef slacker_nl het volgende:
[..]
hoezo, tis geen or toch? where (po.sellerid = 1 and po.sellerid = 2) and .. zou m.i. moeten werken.
Owja, das waar, maar je kan ook joinen met jezelf volgens mij.quote:Op donderdag 28 november 2013 22:32 schreef TwenteFC het volgende:
[..]
hoe kan één sellerId 1 en 2 zijn dan?
Maar heb het al opgelost, er was simpelweg geen product dat zowel bij 1 als 2 beschikbaar was Het wordt hoogtijd dat ik ga slapen.
1 2 3 4 5 6 7 8 | SELECT * FROM productoffer AS po JOIN productoffer AS po2 on po2.id = po.id AND po.reseller_id = 1 WHERE po2.reseller_id = 2; |
Heb het nu werkend maar je kan inderdaad gewoon een query in de ON gooien.quote:Op donderdag 28 november 2013 22:37 schreef slacker_nl het volgende:
[..]
Owja, das waar, maar je kan ook joinen met jezelf volgens mij.
dan krijg je iets als
[ code verwijderd ]
Al kan die AND in de JOIN ook een WHERE zijn, over die syntax twijfel ik even..
setlocale lijkt geen verandering er in te brengen.quote:Op donderdag 28 november 2013 21:56 schreef slacker_nl het volgende:
[..]
[ code verwijderd ]
Zo kan je het in je weergave aanpassen, ik zou het gewoon goed als float/double opslaan in je DB. En als centen opslaan in je DB.. mja, ik snap die redenatie niet. Alsof floats/doubles zo moeilijk zijn voor een database...
Je kan overigens ook..
[ code verwijderd ]
proberen te gebruiken. Maar dat kan eventueel misgaan bij de input naar de database. Dan moet je binnen je transactie wellicht even de locale terugzetten naar iets Engelsachtig (LC_MONETARY en/of LC_NUMERIC aanpassen helpt al).
NOT MATCH(...)quote:Op vrijdag 29 november 2013 21:15 schreef TwenteFC het volgende:
Ik wil in SQL met MATCH de overeenkomsten van een zoekopdracht vergelijk met een kolom en daar een percentage uit berekenen, dit werkt nu al goed.
Maar hoe kan ik woorden uitsluiten van deze match?
Een database kan prima floats en doubles opslaan, maar de exacte waarde die je opslaat is niet de waarde die je terugkrijgt. Floats en doubles kunnen namelijk niet ieder getal exact weergeven. 1,99 wordt dan misschien 1,9899999999. En dat gaat vroeg of laat afrondingsproblemen geven die ook nog eens best lastig te vinden zijn. Bij financiele informatie is dat niet wenselijk, dus kun je beter met centen rekenen en pas bij weergave afronden.quote:Op donderdag 28 november 2013 21:56 schreef slacker_nl het volgende:
Zo kan je het in je weergave aanpassen, ik zou het gewoon goed als float/double opslaan in je DB. En als centen opslaan in je DB.. mja, ik snap die redenatie niet. Alsof floats/doubles zo moeilijk zijn voor een database...
Forum Opties | |
---|---|
Forumhop: | |
Hop naar: |