Dat moet je gewoon weigeren, dat voldoet niet aan de IPv4 syntax.quote:Op woensdag 20 november 2013 13:45 schreef wobbel het volgende:
Oke, long2ip ( ip2long ( "185.002.241.100") ) werkt niet, maar ik zit nog wel met een probleem.
Ik heb "185.002.241.100" aangeleverd gekregen (wel 1503025325 keer) en ik moet alle voorloopnullen verwijderen, in dit geval moet het dus 185.2.241.100 worden. Is daar een manier voor zonder eerst alles te exploden enzo?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 | { # Stolen from Regexp::IPv6 (to prevent adding a dependency for BSD machines) my $sub = '([0-9]|[1-9][0-9]|1[0-9][0-9]|2([0-4][0-9]|5[0-5]))'; my $IPv4 = "$sub\\.$sub\\.$sub\\.$sub"; my $G = "[0-9a-fA-F]{1,4}"; my @tail = ( ":", "(:($G)?|$IPv4)", ":($IPv4|$G(:$G)?|)", "(:$IPv4|:$G(:$IPv4|(:$G){0,2})|:)", "((:$G){0,2}(:$IPv4|(:$G){1,2})|:)", "((:$G){0,3}(:$IPv4|(:$G){1,2})|:)", "((:$G){0,4}(:$IPv4|(:$G){1,2})|:)" ); my $IPv6 = $G; $IPv6 = "$G:($IPv6|$_)" for @tail; $IPv6 = qq/:(:$G){0,5}((:$G){1,2}|:$IPv4)|$IPv6/; $IPv6 =~ s/\(/(?:/g; $IPv6 = qr/\A(?:$IPv6|::)\Z/; $IPv4 = qr/\A$IPv4\Z/; use constant CHECK_IP => sub { my $ip = shift; # End with / we are not a valid IP return 0 if ($ip =~ /\/\s*$/); my $mask; ($ip, $mask) = split(/\//, $ip); # If you supply a /32 you supply a single ip, we allow this if (defined $mask && ( $mask !~ /^\d+$/ || $mask != 32)) { return 0 ; } return ($ip =~ m/$IPv4/) ? 1 : 0; }; use constant CHECK_IPV6 => sub { my $range = shift; ($range) = split(/\//, $range); return ($range =~ m/$IPv6/) ? 1 : 0; }; } |
Voetbalquote:Op woensdag 20 november 2013 12:01 schreef Michaelvanb het volgende:
Iemand interesse om een voetbal transfer nieuws website (engelstalig) op te starten?
Ik heb een heel mooi plan liggen, alleen ik heb onderschat hoe moeilijk het is om een team/speler database te maken als je nog nooit met php/mysql hebt gewerkt en alleen wordpress kennis hebt.![]()
50/50 split waarbij ik zorg voor content, seo, 't plan etc en de evt. partner helpt mee met technische gedeelte. theme of psd zijn al redelijk klaar. EMD domeinnaam met 200k exact search
DM voor meer info
Ondanks je edit moet ik toch een beetje huilen van binnen.quote:Op maandag 18 november 2013 15:26 schreef raptorix het volgende:
[..]
Waarom zou het moeilijk zijn? Zo moeilijk is het niet om een simpele join te maken in MongoDb
Edit: ik bedoel dit zul je wel buiten MonngoDB moeten doen met een extra actie.
Overigens niet echt nodig, in no Sql hoef je je niet aan relationele principes te houden, sterker nog het is zelfs erg niet de bedoeling
Omdat?quote:Op donderdag 21 november 2013 02:37 schreef TwenteFC het volgende:
[..]
Ondanks je edit moet ik toch een beetje huilen van binnen.
Als je Wordpress kennis hebt kun je dat daar toch realiseren.quote:Op woensdag 20 november 2013 12:01 schreef Michaelvanb het volgende:
Iemand interesse om een voetbal transfer nieuws website (engelstalig) op te starten?
Ik heb een heel mooi plan liggen, alleen ik heb onderschat hoe moeilijk het is om een team/speler database te maken als je nog nooit met php/mysql hebt gewerkt en alleen wordpress kennis hebt.![]()
50/50 split waarbij ik zorg voor content, seo, 't plan etc en de evt. partner helpt mee met technische gedeelte. theme of psd zijn al redelijk klaar. EMD domeinnaam met 200k exact search
DM voor meer info
Ach, het is slechts 1 keerquote:Op woensdag 20 november 2013 18:26 schreef slacker_nl het volgende:
[..]
Dat moet je gewoon weigeren, dat voldoet niet aan de IPv4 syntax.
'127.000.000.001' is not a valid ipv4 address.# Tests were run but no plan was declared and done_testing() was not seen.
Dit is de Perl-code om IPv4/IPv6 syntax te valideren:
[ code verwijderd ]
Dit, en je kan altijd even "EXPLAIN" uitvoeren om te kijken wat er allemaal gebeurt.quote:Op donderdag 28 november 2013 20:06 schreef KomtTijd... het volgende:
Aangezien WHERE id = 25 al 100% selectief is zal de rest alleen maar ballast zijn en waarschijnlijk genegeerd worden of anders de query vertragen.
run beide queries 10000 keer ofzo en je weet het.
Database is nog niet gevuld (lees: leeg), script is nog niet af. Maar wat je zegt kan wel inderdaad met demo data. Anyways, thanks!quote:Op donderdag 28 november 2013 20:06 schreef KomtTijd... het volgende:
Aangezien WHERE id = 25 al 100% selectief is zal de rest alleen maar ballast zijn en waarschijnlijk genegeerd worden of anders de query vertragen.
run beide queries 10000 keer ofzo en je weet het.
Heb je in de database gekeken of je model überhaupt wordt opgeslagen?quote:Op donderdag 28 november 2013 18:25 schreef TwenteFC het volgende:
Iemand hier die gebruik maakt van Laravel?
Ik wil een child toevoegen aan de parent model en deze opslaan, alleen pakt hij de parentId niet omdat die waarde na het opslaan van de parent verspringt naar 1.
Code:
http://paste.laravel.com/1aMv
Het lijkt je handig met als reden dat het niets toevoegtquote:Op donderdag 28 november 2013 20:31 schreef xaban06 het volgende:
[..]
Database is nog niet gevuld (lees: leeg), script is nog niet af. Maar wat je zegt kan wel inderdaad met demo data. Anyways, thanks!
LIMIT 1 lijkt mij ook handig, niet? id is namelijk uniek.
->push is voor bestaande objecten, heb het ondertussen al opgelost door heel lelijk een AI veld toe te voegen en daar op te koppelen.quote:Op donderdag 28 november 2013 20:31 schreef Crutch het volgende:
[..]
Heb je in de database gekeken of je model überhaupt wordt opgeslagen?
En relationships sla je op met ->push()
Je kan ook even een grote batch insert doen om er mee te testen natuurlijk.quote:Op donderdag 28 november 2013 20:31 schreef xaban06 het volgende:
[..]
Database is nog niet gevuld (lees: leeg), script is nog niet af. Maar wat je zegt kan wel inderdaad met demo data. Anyways, thanks!
LIMIT 1 lijkt mij ook handig, niet? id is namelijk uniek.
"het beste", mijn inziens is het vrij persoonlijk wat voor jou het beste is.quote:Op donderdag 28 november 2013 20:41 schreef RetRy32 het volgende:
Uhm, hey guys wat vinden jullie het beste framework voor PHP?
Ik heb nou al tering veel artikelen gelezen, maar ben nog niet echt wijzer...
Ik dacht dat het wel meerwaarde had, dat het namelijk stopt met verder zoeken wanneer er een match gevonden is. Zonder LIMIT doorzoekt hij alle records dacht ik.quote:Op donderdag 28 november 2013 20:38 schreef KomtTijd... het volgende:
[..]
Het lijkt je handig met als reden dat het niets toevoegt
Niet als je id Unique is, waar ik wel even vanuit ging natuurlijk.quote:Op donderdag 28 november 2013 20:50 schreef xaban06 het volgende:
[..]
Ik dacht dat het wel meerwaarde had, dat het namelijk stopt met verder zoeken wanneer er een match gevonden is. Zonder LIMIT doorzoekt hij alle records dacht ik.
Is het nietquote:Op donderdag 28 november 2013 20:53 schreef KomtTijd... het volgende:
[..]
Niet als je id Unique is, waar ik wel even vanuit ging natuurlijk.
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.
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...
Jij wilt zeggen dat een postgres of mysql or oracle 1,99 als 1,98999 of als 1,97 teruggeeft? Ik geloof daar geen drol van.quote:Op vrijdag 29 november 2013 22:33 schreef Light het volgende:
[..]
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.
Light overdrijft een beetje, maar heeft wel een puntje.quote:Op vrijdag 29 november 2013 22:35 schreef slacker_nl het volgende:
[..]
Jij wilt zeggen dat een postgres of mysql or oracle 1,99 als 1,98999 of als 1,97 teruggeeft? Ik geloof daar geen drol van.
Zie bijvoorbeeld ook hier:quote:Op vrijdag 29 november 2013 22:35 schreef slacker_nl het volgende:
[..]
Jij wilt zeggen dat een postgres of mysql or oracle 1,99 als 1,98999 of als 1,97 teruggeeft? Ik geloof daar geen drol van.
Het is gewoon opletten met wat je doet, bijv round(1.4545,2) geeft 1.45 terug.quote:Op vrijdag 29 november 2013 22:35 schreef slacker_nl het volgende:
[..]
Jij wilt zeggen dat een postgres of mysql or oracle 1,99 als 1,98999 of als 1,97 teruggeeft? Ik geloof daar geen drol van.
Het probleem is niet round(), het probleem is die 1.4545 en de nauwkeurigheid daarvan. Als je alleen dat getal hebt, zal het wel goed gaan. Als je spannende berekeningen doet en verschillende getallen gebruikt, kun je een afwijking krijgen.quote:Op vrijdag 29 november 2013 22:43 schreef TwenteFC het volgende:
[..]
Het is gewoon opletten met wat je doet, bijv round(1.4545,2) geeft 1.45 terug.
Forum Opties | |
---|---|
Forumhop: | |
Hop naar: |