1 2 3 4 5 6 | explain SELECT SQL_NO_CACHE `video_id` FROM `video_tag_link` WHERE `tag_id` = 2721 OR `tag_id` = 245 GROUP BY `video_id` HAVING COUNT(`video_id`) = 2 LIMIT 0, 20 |
1 2 3 4 5 6 | CREATE TABLE `video_tag_link` ( `video_id` int(11) NOT NULL, `tag_id` int(11) NOT NULL, PRIMARY KEY (`tag_id`,`video_id`), KEY `video_id_index` (`video_id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; |
1 2 3 4 5 6 | CREATE TABLE `video_tag_link` ( `video_id` int(10) unsigned NOT NULL, `tag_id` int(10) unsigned NOT NULL, PRIMARY KEY (`tag_id`,`video_id`), KEY `video_id` (`video_id`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1;[ |
Mja, met 'krijg een -1 van de storage engine' kan ik niet zo veel.quote:Op dinsdag 17 februari 2015 13:13 schreef Chandler het volgende:
Ik heb
[ code verwijderd ]
27,400,090 rows, MyISAM, latin1_swedish_ci, 952,3 MiB
En krijg dan met dezelfde query als hierboven Using where; Using index; Using temporary; Using filesort
-edit-
Inderdaad MyIsam, heb gepoogd InnoDB te gebruiken maar heb daar vele problemen mee om de data in te voeren op juiste manier zonder fouten...
-edit2-
En het tabel omzetten naar InnoDB wil MySQL niet Krijg een -1 van de storage engine...
quote:Op dinsdag 17 februari 2015 13:13 schreef Chandler het volgende:
Ik heb
En het tabel omzetten naar InnoDB wil MySQL niet Krijg een -1 van de storage engine...
http://www.percona.com/do(...)mporting_tables.htmlquote:If you see the following message, then you must enable innodb_file_per_table and create the table again: ERROR 1030 (HY000): Got error -1 from storage engine
Voor archieven wordt het nog wel gebruikt. Kost stuk minder ruimte qua opslag.quote:Op dinsdag 17 februari 2015 14:58 schreef KomtTijd... het volgende:
Volgens mij heb ik nog nooit anders dan InnoDB gebruikt? Ik dacht dat MyIsam een beetje ouderwets was?
Wat zegt select * from video_tag_link je? en hoe ziet die tabel eruit?quote:Op dinsdag 17 februari 2015 18:01 schreef Chandler het volgende:
Helaas niet, want alle data in de myisam tabel is uniek en zou dus geen probleem moeten opleveren... heb al een uurtje zitten googlen maar kan geen 'oplossing' hiervoor vinden...
1 2 3 4 5 6 | CREATE TABLE IF NOT EXISTS `video_tag_link` ( `video_id` int(10) unsigned NOT NULL, `tag_id` int(10) unsigned NOT NULL, PRIMARY KEY (`tag_id`,`video_id`), KEY `video_id` (`video_id`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1; |
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 | INSERT INTO `video_tag_link` (`video_id`, `tag_id`) VALUES (1, 1), (2, 1), (3, 1), (4, 1), (5, 1), (6, 1), (7, 1), (8, 1), (9, 1), (10, 1), (11, 1), (13, 1), (15, 1), (17, 1), (18, 1), (19, 1), (20, 1), (21, 1), (22, 1), (23, 1), (25, 1), (26, 1), (27, 1), (29, 1), (30, 1), (31, 1), (32, 1), (33, 1), (35, 1), (36, 1); |
1 2 3 4 5 6 | SELECT SQL_NO_CACHE `video_id` FROM `video_tag_link` WHERE `tag_id` = 2721 OR `tag_id` = 245 GROUP BY `video_id` HAVING COUNT(`video_id`) = 2 LIMIT 0, 20 |
1 2 3 4 5 6 7 8 9 10 | 1 SIMPLE video_tag_link range PRIMARY,video_id PRIMARY 4 NULL 6480 Using where; Using index; Using temporary; Using filesor |
Deze post uit het vorige topic verdient ook nog wel even een reactie aangezien het concept 'index' in deze reeks vaak niet echt begrepen lijkt en men enkel weet dat 'queries er sneller van worden', zonder het wat en waarom van een index te snappen. Deze site heeft wel prima verdere uitleg.quote:Op maandag 16 februari 2015 23:14 schreef raptorix het volgende:
[..]
Volgens mij heeft een index geen zin op een integer, maar daar twijfel ik even over, of dat puur op numeriek is of een autoID (bestaat dat in MySql?)
1 2 3 4 | <select name="divisie" form="divisieform"> <option value="1">Super lig</option> <option value="2">2. Lig</option> </select> |
Thx, ik kende deze theorie wel, ik weet niet hoet met mysql zit, maar in sqlserver kun je bij een index ook een fragmentation rate aangeven. Gebruik je niet heel vaak, maar met name wanneer performance belangrijk is valt er wel mee te tunen.quote:Op woensdag 18 februari 2015 09:46 schreef Monolith het volgende:
[..]
Deze post uit het vorige topic verdient ook nog wel even een reactie aangezien het concept 'index' in deze reeks vaak niet echt begrepen lijkt en men enkel weet dat 'queries er sneller van worden', zonder het wat en waarom van een index te snappen. Deze site heeft wel prima verdere uitleg.
Voor read only kun je tegenwoordig dan weer beter noSQL databases gebruiken doorgaans qua performance.quote:Op woensdag 18 februari 2015 18:39 schreef raptorix het volgende:
[..]
Thx, ik kende deze theorie wel, ik weet niet hoet met mysql zit, maar in sqlserver kun je bij een index ook een fragmentation rate aangeven. Gebruik je niet heel vaak, maar met name wanneer performance belangrijk is valt er wel mee te tunen.
Zelf heb ik in verleden veel aan Funda gewerkt, met name aan de eerste versies heb ik veel aan de search gewerkt dus wel bekend met tuning
De eerste versie van Funda was ook een readonly database, dat scheelt je al snel 30 procent performance omdat zodra een database in readonly is, hij geen rekening hoeft te houden met locking of aangepaste indices.
Fragmentatie is volgens mij in deze betekenis de mogelijkheden om je index te updaten, zoals ik het altijd begrepen hebt werkt het net als in papieren index dat je meer ruimte hebt om wijzigingen te doen (wat uiteraard wel ten koste gaat van meer opslag, en dus performance).quote:Op woensdag 18 februari 2015 19:09 schreef Monolith het volgende:
[..]
Voor read only kun je tegenwoordig dan weer beter noSQL databases gebruiken doorgaans qua performance.
Fragmentatie is de mate waarin je index verspreid is over je opslag. Hoe meer fragmentatie, des te trager het gebruik van de index.
Nee, dat is een ander concept, fragmentatie heeft te maken met logische versus fysieke ordening, waardoor het lezen van de schijf trager gaat.quote:Op woensdag 18 februari 2015 20:03 schreef raptorix het volgende:
[..]
Fragmentatie is volgens mij in deze betekenis de mogelijkheden om je index te updaten, zoals ik het altijd begrepen hebt werkt het net als in papieren index dat je meer ruimte hebt om wijzigingen te doen (wat uiteraard wel ten koste gaat van meer opslag, en dus performance).
Klopt, ik doelde dus nie op fragmentatie maar op fillfactorquote:Op woensdag 18 februari 2015 20:19 schreef Monolith het volgende:
[..]
Nee, dat is een ander concept, fragmentatie heeft te maken met logische versus fysieke ordening, waardoor het lezen van de schijf trager gaat.
Zie bv:
https://msdn.microsoft.com/en-us/library/ms189858.aspx
Tinyint(1) = 0 t/m 9quote:Op woensdag 18 februari 2015 21:18 schreef Monolith het volgende:
Als het een Tinyint(1) is, dan klopt dat ook gewoon.
Volgens mij moet je even opzoeken wat die 1 betekent.quote:Op woensdag 18 februari 2015 21:19 schreef mstx het volgende:
[..]
Tinyint(1) = 0 t/m 9
Boolean = true/false
Hoe is dat het zelfde?
die 1 betekend 1 teken lezen toch?quote:Op woensdag 18 februari 2015 21:21 schreef Monolith het volgende:
[..]
Volgens mij moet je even opzoeken wat die 1 betekent.
Nee, tinyint(1) is een integer van 1 bit, dus een boolean.quote:
http://dev.mysql.com/doc/refman/5.0/en/numeric-type-overview.htmlquote:Op woensdag 18 februari 2015 21:22 schreef wipes66 het volgende:
[..]
die 1 betekend 1 teken lezen toch?
mysql heeft geen echte boolean, dus 'boolean' is gewoon een allias voor tinyint(1) wat 8-bit is.quote:Op woensdag 18 februari 2015 21:22 schreef KomtTijd... het volgende:
[..]
Nee, tinyint(1) is een integer van 1 bit, dus een boolean.
Als ik het verander naar tinyint(3) zegt hij nog steeds dat het een boolean is.quote:Op woensdag 18 februari 2015 21:22 schreef KomtTijd... het volgende:
[..]
Nee, tinyint(1) is een integer van 1 bit, dus een boolean.
dat heb ik fout. Maar een boolean wordt wel altijd als tinyint(1) opgeslagen. Dus zo gek is het niet dat Doctrine die aanname doet.
Op zich wel, maar omdat doctrine types mapt tussen PHP en MySQL stelt het tinyint gelijk aan boolean kennelijk. Zie ook:quote:Op woensdag 18 februari 2015 21:31 schreef mstx het volgende:
[..]
Als ik het verander naar tinyint(3) zegt hij nog steeds dat het een boolean is.
Ik wil gewoon het aantal versnellingen van een auto opslaan, een tinyint leek me daar het juiste type voor.
Waarom maak je je uberhaupt druk om het database format? Laat dat lekker aan doctrine over. Die zal er waarschijnlijk een int van maken. Mocht je dat nog willen micro-optimaliseren naar een tinyint kun je dat doen na uitrol van je applicatie.quote:Op woensdag 18 februari 2015 21:31 schreef mstx het volgende:
[..]
Als ik het verander naar tinyint(3) zegt hij nog steeds dat het een boolean is.
Ik wil gewoon het aantal versnellingen van een auto opslaan, een tinyint leek me daar het juiste type voor.
Omdat ik die database al had en ik altijd de juiste datatypes probeer te gebruiken. En dan is het gewoon een beetje vreemd dat een auto ineens "true" versnellingen heeft terwijl er "6" in de database staat.quote:Op woensdag 18 februari 2015 21:37 schreef KomtTijd... het volgende:
[..]
Waarom maak je je uberhaupt druk om het database format? Laat dat lekker aan doctrine over. Die zal er waarschijnlijk een int van maken. Mocht je dat nog willen micro-optimaliseren naar een tinyint kun je dat doen na uitrol van je applicatie.
Dat krijg je met dat soort systemen. PostgreSQL heeft geen tinyint en sqllite weer wel dus mappen ze inderdaad een tinyint naar een boolean.quote:Op woensdag 18 februari 2015 21:36 schreef Monolith het volgende:
[..]
Op zich wel, maar omdat doctrine types mapt tussen PHP en MySQL stelt het tinyint gelijk aan boolean kennelijk. Zie ook:
http://stackoverflow.com/(...)ype-in-entity-column
ENUM ('TRUE','FALSE')quote:Op woensdag 18 februari 2015 21:19 schreef mstx het volgende:
[..]
Tinyint(1) = 0 t/m 9
Boolean = true/false
Hoe is dat het zelfde?
Je kunt je entities toch wel handmatig aanpassen naar het goeie format lijkt me?quote:Op woensdag 18 februari 2015 21:45 schreef mstx het volgende:
[..]
Omdat ik die database al had en ik altijd de juiste datatypes probeer te gebruiken. En dan is het gewoon een beetje vreemd dat een auto ineens "true" versnellingen heeft terwijl er "6" in de database staat.
Daar is een boolean inderdaad niet voor bedoeld en het levert in SQL en veel andere talen doorgaans wel vrij onverwachte informatie op als je er logische operaties mee gaat uitvoeren.quote:Op donderdag 19 februari 2015 08:51 schreef raptorix het volgende:
Alles kan, zo had ik een collega die het een goed idee vond om een nullable bool te gebruiken, en op die manier tristate te kunnen opslaan, nog nooit zoveel gezeik gehad met exports
Ja klopt, er moest een sync proces via een automatisch tool naar Oracle worden gezet, in die tooling kon geen cast worden gedaan waardoor enige mogelijkheid was om al die velden te gaan omzetten, dit leverde ook weer allemaal gezeik op omdat een boolean in die tijd formeel geen null kon zijn in SQL Server, heeft echt weken gekost om dat goed gefixed te krijgen.quote:Op donderdag 19 februari 2015 09:36 schreef Monolith het volgende:
[..]
Daar is een boolean inderdaad niet voor bedoeld en het levert in SQL en veel andere talen doorgaans wel vrij onverwachte informatie op als je er logische operaties mee gaat uitvoeren.
1 2 3 4 5 | <?php SELECT * FROM bestellen INNER JOIN users ON ( bestellen.userdienodigheeft = users.IdUser ) ?> |
1 2 3 4 5 6 7 | <?php SELECT * FROM bestellen INNER JOIN users ON ( bestellen.userdienodigheeft = users.IdUser ) INNER JOIN users ON ( bestellen.userdiebesteldheeft = users.IdUser ) ?> |
Je doet twee Inner Joins op dezelfde tabel, volgens mij kun je er dan beter twee aparte queries van maken.quote:Op woensdag 25 februari 2015 20:35 schreef wobbel het volgende:
Help, ik zit in de knoei met een SQL query in PHP....
Ik heb een tabel met daarin hardware die besteld moet worden, zie onderstaande tabel:
tabel "bestellen"
volgende velden:
product
userdienodigheeft
userdiebesteldheeft
De user velden zijn ID's die ik vanuit een andere tabel "users" kan joinen
tabel "users"
iduser
naam
Als ik een JOIN die op de volgende manier kan dat prima als ik maar 1 user wil ophalen, maar hoe doe ik dat als ik de gegevens van 2 users wil ophalen? De bestelling kan nodig zijn voor user 1000 en besteld zijn door user 1028 namelijk
Huidige query waarmee ik maar 1 user ophaal
[ code verwijderd ]
Mijn idee, welke uiteraard niet werkt was het volgt, maar hoe moet het wel??
[ code verwijderd ]
In beide gevallen krijg ik maar 1 veld terug, dat is 'naam' maar ik wil eigenlijk naamNodig en naamBesteld ofzo krijgen
Dat met die keywords/bijnamen begrijp ik, maar niet hoe ik aan de 2 namen van de users kom. Ik doe inderdaad twee joins op 1 tabel maar dat werkt uiteraard niet...quote:Op woensdag 25 februari 2015 20:40 schreef robin007bond het volgende:
[..]
Je doet twee Inner Joins op dezelfde tabel, volgens mij kun je er dan beter twee aparte queries van maken.
Maar je kunt het keyword 'as' gebruiken om bijnamen te geven aan kolomnamen.
Sorry, maar dan heb je je database waarschijnlijk niet optimaal ingericht.quote:Op woensdag 25 februari 2015 21:02 schreef wobbel het volgende:
[..]
Dat met die keywords/bijnamen begrijp ik, maar niet hoe ik aan de 2 namen van de users kom. Ik doe inderdaad twee joins op 1 tabel maar dat werkt uiteraard niet...
Ik zou een 2e query kunnen doen, maar dan zou ik dat voor élk resultaat moeten doen. Bij een pagina met 20 resultaten heb ik dan 21 queries (1 querie voor de resultaten inclusief join voor de 1e naam, en 20 voor de andere namen)
Je hebt mogelijk kolommen met eenzelfde naam zodat in het resultaat er één (unieke naam) overblijft.quote:Op woensdag 25 februari 2015 21:02 schreef wobbel het volgende:
[..]
Dat met die keywords/bijnamen begrijp ik, maar niet hoe ik aan de 2 namen van de users kom. Ik doe inderdaad twee joins op 1 tabel maar dat werkt uiteraard niet...
Ik zou een 2e query kunnen doen, maar dan zou ik dat voor élk resultaat moeten doen. Bij een pagina met 20 resultaten heb ik dan 21 queries (1 querie voor de resultaten inclusief join voor de 1e naam, en 20 voor de andere namen)
1 2 3 4 5 6 7 8 | SELECT b.*, u1.idUser AS idUser1, u1.naam AS naam1 u2.idUser AS idUser2, u2.naam AS naam2 FROM bestellen AS b INNER JOIN users AS u1 ON b.userdienodigheeft = u1.IdUser INNER JOIN users AS u2 ON b.userdiebesteldheeft = u2.idUser |
Top, dit is hem inderdaad You saved my day, nu krijg inderdaad netjes de juiste namen te zien.quote:Op woensdag 25 februari 2015 21:43 schreef Aether het volgende:
[..]
Je hebt mogelijk kolommen met eenzelfde naam zodat in het resultaat er één (unieke naam) overblijft.
Je kunt het oplossen door alternatieve namen in de SELECT te gebruiken. Bijvoorbeeld:
[ code verwijderd ]
(Ik weet niet welke kolommen er verder voorkomen).
Die kans is aanwezig, maar soms moet je werken met wat je hebtquote:Op woensdag 25 februari 2015 21:04 schreef robin007bond het volgende:
[..]
Sorry, maar dan heb je je database waarschijnlijk niet optimaal ingericht.
http://appserver.io/quote:The objective of the project is to develop a multithreaded application server for PHP, written in PHP. Yes, pure PHP! You think we aren't serious? Maybe! But we think, in order to enable as many developers in our great community, this will be the one and only way. So with your help we hopefully establish a solution as the standard for enterprise applications in PHP environments.
Ik heb een beter idee. Leer Java.quote:Op donderdag 26 februari 2015 10:07 schreef Aether het volgende:
Stabiele versie 1.0.0 appserver.io uitgebracht.
[..]
http://appserver.io/
https://github.com/appserver-io/appserver
Je hebt met PHP te maken, elke idioot kan dat bedacht hebben (Ik heb de draad gelezen, het komt door mysql..)quote:Op woensdag 18 februari 2015 21:14 schreef mstx het volgende:
Ben sinds kort iets aan het maken met Symfony2/Doctrine. Dus ik heb in mijn database een TINYINT veld, zegt dat systeem dat het een boolean is. Welke idioot heeft dat bedacht?
Docterine zit fout m.i. De MySQL docs zeggen:quote:Op woensdag 18 februari 2015 21:37 schreef KomtTijd... het volgende:
[..]
Waarom maak je je uberhaupt druk om het database format? Laat dat lekker aan doctrine over. Die zal er waarschijnlijk een int van maken. Mocht je dat nog willen micro-optimaliseren naar een tinyint kun je dat doen na uitrol van je applicatie.
Dat wilt dus zeggen dat een tinyint(1) veld dus: 0 of niet 0 moet teruggeven, als je if ($bool) doet, gaat die logica vanzelf goed, daar hoeven ze geen "true" of "false" van de maken. En mocht je echt willen dat een tinyint een boolean is, dan moet je dat ergens in je schema kunnen opnemen.quote:A value of zero is considered false. Nonzero values are considered true
hoezo? ohhh omdat 0 === true is?quote:Op zaterdag 28 februari 2015 08:57 schreef Monolith het volgende:
Dat gaat je problemen opleveren wanneer je b.v. === true doet. De == operator in PHP is aardig verneukt.
Nee, omdat bijvoorbeeld 3 === true false oplevert en dergelijke checks dus falen als je de daadwerkelijke int waarden gebruikt.quote:Op zaterdag 28 februari 2015 10:38 schreef slacker_nl het volgende:
[..]
hoezo? ohhh omdat 0 === true is?
Doctorine moet gewoon niet naar het interne storageformaat kijken maar ergens in z'n schema files een definitie plaatsen van de kolom: boolean. Dat ie dat vervolgens mapped maar tinyint of supersmallint of weet ik het maakt dan niet uit. Null == false, idem voor 0 en de rest is true. Fixed. Dan kan je tinyint gebruiken in je DB en booleans zonder gezeik met true versnellingen.quote:Op zaterdag 28 februari 2015 10:45 schreef Monolith het volgende:
[..]
Nee, omdat bijvoorbeeld 3 === true false oplevert en dergelijke checks dus falen als je de daadwerkelijke int waarden gebruikt.
Doctrine zelf is gewoon een ORM framework. Volgens mij gebruikt betreffende user gewoon een tooltje om op basis van een database schema de bijbehorende code te kunnen genereren. Doctrine werkt net als allerhande andere ORM frameworks met annotaties, waarbij je ook types op kunt geven.quote:Op zaterdag 28 februari 2015 11:06 schreef slacker_nl het volgende:
[..]
Doctorine moet gewoon niet naar het interne storageformaat kijken maar ergens in z'n schema files een definitie plaatsen van de kolom: boolean. Dat ie dat vervolgens mapped maar tinyint of supersmallint of weet ik het maakt dan niet uit. Null == false, idem voor 0 en de rest is true. Fixed. Dan kan je tinyint gebruiken in je DB en booleans zonder gezeik met true versnellingen.
Doctrine gebruikt ook de interne definitie. Als je aangeeft dat een veld een boolean bevat, krijg je een kolom voor booleans. Maar als je vervolgens een database gebruikt die geen booleans ondersteunt (zoals MySQL) dan krijg je een automatische fallback naar het kleinste numerieke formaat, ofwel de tinyint. Dat staat ook in de documentatie.quote:Op zaterdag 28 februari 2015 11:06 schreef slacker_nl het volgende:
[..]
Doctorine moet gewoon niet naar het interne storageformaat kijken maar ergens in z'n schema files een definitie plaatsen van de kolom: boolean. Dat ie dat vervolgens mapped maar tinyint of supersmallint of weet ik het maakt dan niet uit. Null == false, idem voor 0 en de rest is true. Fixed. Dan kan je tinyint gebruiken in je DB en booleans zonder gezeik met true versnellingen.
Beetje ala
http://search.cpan.org/~g(...)ateColumn/Boolean.pm
En toch gaat het fout, want de beste man heeft true versnellingen ipv 6. Daarom zeg ik: Docterine zit fout, omdat ze ervanuit gaan dat een tinyint een booleanish value is.quote:Op zondag 1 maart 2015 00:21 schreef Light het volgende:
[..]
Doctrine gebruikt ook de interne definitie. Als je aangeeft dat een veld een boolean bevat, krijg je een kolom voor booleans. Maar als je vervolgens een database gebruikt die geen booleans ondersteunt (zoals MySQL) dan krijg je een automatische fallback naar het kleinste numerieke formaat, ofwel de tinyint. Dat staat ook in de documentatie.
Doctrine gaat uit van meersere databasedrivers. Dan krijg je compromissenquote:Op zondag 1 maart 2015 10:01 schreef slacker_nl het volgende:
[..]
En toch gaat het fout, want de beste man heeft true versnellingen ipv 6. Daarom zeg ik: Docterine zit fout, omdat ze ervanuit gaan dat een tinyint een booleanish value is.
Het lijkt mij dat er na de AND weer een P.id = personB_id moet komen, maar dan wel waar de P.eyeColor = "blue" is.quote:SELECT P.name
FROM Persons P, Likes L
WHERE P.id = L.personA_id AND ............
Aha, vraag me niet waarom maar ik dacht steeds Likes 2 keer te moeten joinen.quote:Op dinsdag 3 maart 2015 09:18 schreef KomtTijd... het volgende:
Selecten naar likes, persons 2x joinen.
1 2 3 | SELECT DISTINCT P1.name FROM Persons P1, Persons P2, Likes L WHERE P1.id = L.personA_id AND P2.id = L.personB_id AND P2.eyeColor ="blue" |
Je zou het zelf dus anders gedaan hebben bedoel je?quote:Op dinsdag 3 maart 2015 09:34 schreef KomtTijd... het volgende:
Ik blijf het een irritante notatie vinden die impliciete joins, maar zo kan ook inderdaad
Ik begrijp niet zo goed wat javascript er mee te maken heeft, het beste kan je het ID dan laten genereren in PHP. In SQL zou ik het niet zo snel doen.quote:Op dinsdag 3 maart 2015 10:01 schreef justme27 het volgende:
Hoi,
Kan ik mbv SQL ook nummers genereren die voldoen aan de 11-proef?
Ik zoek dus een manier om, op basis van bv een gegeven als data of tijd, een nummer te genereren die ook nog eens voldoet aan de 11-proef voor het kunnen verkrijgen van een geldig BSN-nummer.
Momenteel gebruik ik een statement wat, op basis van een view en vaste gegevens, nummers toevoegt om zo tot een getal van 6 cijfers te komen:
to_char( sysdate, 'WW')||lpad(pst_vnr_seq.nextval,4,0 )
Is het mogelijk of moet het echt met een apart javascript?
Je kunt stored procedures schrijven in Mysql.quote:Op dinsdag 3 maart 2015 10:01 schreef justme27 het volgende:
Hoi,
Kan ik mbv SQL ook nummers genereren die voldoen aan de 11-proef?
Ik zoek dus een manier om, op basis van bv een gegeven als data of tijd, een nummer te genereren die ook nog eens voldoet aan de 11-proef voor het kunnen verkrijgen van een geldig BSN-nummer.
Momenteel gebruik ik een statement wat, op basis van een view en vaste gegevens, nummers toevoegt om zo tot een getal van 6 cijfers te komen:
to_char( sysdate, 'WW')||lpad(pst_vnr_seq.nextval,4,0 )
Is het mogelijk of moet het echt met een apart javascript?
Javascript was een voorbeeld. En ook omdat ik geen PHP kan gebruiken; mijn selectie als invoertaal is beperkt tot:quote:Op dinsdag 3 maart 2015 10:03 schreef Scorpie het volgende:
[..]
Ik begrijp niet zo goed wat javascript er mee te maken heeft, het beste kan je het ID dan laten genereren in PHP. In SQL zou ik het niet zo snel doen.
Ik ben helaas geen ontwikkelaar dus dit onderdeel (ik heb ff gelezen) wordt al snel te ingewikkeld voor mij.quote:Op dinsdag 3 maart 2015 10:28 schreef Monolith het volgende:
[..]
Je kunt stored procedures schrijven in Mysql.
Wat is precies je vraag dan? Hoe je überhaupt een 11-proef nummer kunt genereren? Lijkt me dat hier wel rekenvoorbeelden voor te vinden zijn toch?quote:Op dinsdag 3 maart 2015 10:47 schreef justme27 het volgende:
[..]
Ik ben helaas geen ontwikkelaar dus dit onderdeel (ik heb ff gelezen) wordt al snel te ingewikkeld voor mij.
http://nl.wikipedia.org/wiki/Elfproefquote:Op dinsdag 3 maart 2015 11:43 schreef KomtTijd... het volgende:
[..]
Wat is precies je vraag dan? Hoe je überhaupt een 11-proef nummer kunt genereren? Lijkt me dat hier wel rekenvoorbeelden voor te vinden zijn toch?
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 | <?php try { $options = array( PDO::ATTR_PERSISTENT => true,//can help to improve performance PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION, //throws exceptions whenever a db error occurs PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES UTF8' //>= PHP 5.3.6 ); $con= new PDO('mysql:host=localhost;dbname=dbname', 'dbuser', 'dbpass', $options); $sql= "SELECT * FROM A"; $stmt=$con->prepare($sql); $stmt->execute(); while($row = $stmt->fetch(PDO::FETCH_ASSOC)) { echo '<tr>'; echo '<td>' . $row['A'] . '</td>'; echo '<td>' . $row['B'] . '</td>'; echo '<td>' . $row['C'] . ' - ' . $row['D'] . '</td>'; echo '<td>' . $row['E'] . '</td>'; echo '</tr>'; } } catch(PDOException $e) { echo '<pre>'; echo 'Regel: '.$e->getLine(). '<br />'; echo 'Bestand: '.$e->getFile(). '<br />'; echo 'Foutmelding: '.$e->getMessage(); echo '</pre>'; } ?> |
1 2 3 4 | <?php $con= new PDO('mysql:host=localhost;dbname=dbname', 'dbuser', 'dbpass' , array(PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES UTF8')); ?> |
1 2 3 | <?php $stmt=$con->prepare($sql, array(PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES UTF8')); ?> |
1 2 3 4 | <?php error_reporting(E_ALL); ini_set('display_errors', 1); ?> |
Gedaan. Geen foutmeldingen. Het wordt in zijn geheel niet meer weergegeven.quote:Op dinsdag 3 maart 2015 12:51 schreef Monolith het volgende:
Blanco pagina's betekenen doorgaans dat je een error krijgt die je niet zet.
Zet in ieder geval de error reporting / weergave even aan:
[ code verwijderd ]
quote:Op dinsdag 3 maart 2015 13:24 schreef Chandler het volgende:
Kan het zijn dat je de data al verkeerd hebt opgeslagen in de database?? heb ik ook wel eens gehad...
Thanks, zal het zo doornemen!quote:Op dinsdag 3 maart 2015 13:27 schreef raptorix het volgende:
MUST READ, REPEAT, MUST READ!
http://www.joelonsoftware.com/articles/Unicode.html
Heb je de PHP-file zelf ook in UTF-8 opgeslagen? Kan zijn dat je ook nog even een meta-tag moet toevoegen in de pagina waarin je dit weergeeft.quote:Op dinsdag 3 maart 2015 13:20 schreef zarGon het volgende:
[..]
Gedaan. Geen foutmeldingen. Het wordt in zijn geheel niet meer weergegeven.
Ervoor:
[ afbeelding ]
Erna:
[ afbeelding ]
1 2 3 | SELECT DISTINCT P1.name FROM Persons P1, Persons P2, Likes L WHERE P1.id = L.personA_id AND P2.id = L.personB_id AND P2.eyeColor ="blue" |
Als het goed is wel, zal ik vanavond naar kijken. Thanks.quote:Op dinsdag 3 maart 2015 13:53 schreef robin007bond het volgende:
[..]
Heb je de PHP-file zelf ook in UTF-8 opgeslagen? Kan zijn dat je ook nog even een meta-tag moet toevoegen in de pagina waarin je dit weergeeft.
Waarom dat?quote:Op dinsdag 3 maart 2015 14:29 schreef DannyDeko het volgende:
[ code verwijderd ]
Om even terug te komen op dit. Hoe verander ik dit nu zodat nu alleen de persoon wordt weergegeven die minstens twee personen met blauwe ogen aardig vindt? Volgens mij is het nog niet de bedoeling om COUNT te gebruiken, dus hoe kan ik dit dan oplossen?
I know, ik ben ook niet op zoek naar directe antwoorden. (;quote:Op dinsdag 3 maart 2015 15:29 schreef Monolith het volgende:
Dit is geen huiswerktopic.
maar om je een hint te geven, je moet in ieder geval 3x iets uit Persons selecteren in dit geval.
Omdat het per onderdeel wordt uitgelegd ( voor zover dat wordt gedaan, documentatie is echt minimaal) en daarna enkele opgaven gegeven worden. En HAVING en COUNT komen pas later aan de orde.quote:Op dinsdag 3 maart 2015 15:32 schreef zarGon het volgende:
[..]
Waarom dat?
De simpelste oplossing lijkt mij eerst GROUP BY en een COUNT(). Vervolgens een select daaromheen met een WHERE en COUNT() > 1.
Een HAVING is makkelijker, maar ook dan heb je een COUNT.
Lukt het hiermee?
Wat mag je nu wel gebruiken dan? Er moet op de een of andere manier toch een telling plaatsvinden...quote:Op dinsdag 3 maart 2015 15:43 schreef DannyDeko het volgende:
Omdat het per onderdeel wordt uitgelegd ( voor zover dat wordt gedaan, documentatie is echt minimaal) en daarna enkele opgaven gegeven worden. En HAVING en COUNT komen pas later aan de orde.
Ik ga er weer even mee stoeien. Alvast bedankt
Ik heb het maar gewoon gebruikt, want zoals je al zei zal er toch op een manier geteld moeten worden.quote:Op dinsdag 3 maart 2015 15:46 schreef zarGon het volgende:
[..]
Wat mag je nu wel gebruiken dan? Er moet op de een of andere manier toch een telling plaatsvinden...
1 2 3 4 5 | SELECT DISTINCT P1.name FROM Persons P1, Persons P2, Likes L WHERE P1.id = L.personA_id AND P2.id = L.personB_id AND P2.eyeColor ="green" GROUP BY P1.name HAVING COUNT(P2.eyeColor = "green") > 1 |
Je distinct is onnodig, je hebt GROUP BY al.quote:Op dinsdag 3 maart 2015 16:08 schreef DannyDeko het volgende:
[..]
Ik heb het maar gewoon gebruikt, want zoals je al zei zal er toch op een manier geteld moeten worden.
[ code verwijderd ]
Zo is ie valid.
Maar zou je me kunnen uitleggen waarom " GROUP BY P1.name " hier nodig is?
1 2 3 4 5 6 7 8 9 | SELECT P1.Name, COUNT(L.personA_id) AS NrOfLikes FROM Likes L INNER JOIN Persons P1 ON L.personA_id = P1.id INNER JOIN Persons P2 ON L.personB_id = P2.id WHERE P2.eyeColor = 'green' GROUP BY P1.Name HAVING COUNT(L.personA_id) > 1 |
Aha, duidelijk. Thanks voor de toelichting!quote:Op dinsdag 3 maart 2015 16:10 schreef zarGon het volgende:
[..]
Je distinct is onnodig, je hebt GROUP BY al.
En GROUP BY is nodig door de HAVING.
Verder is je HAVING niet goed, want je wil het aantal keren dat personA_id voorkomt tellen. (Eigenlijk de naam, maar een naam is natuurlijk niet uniek.)
[ code verwijderd ]
Alhoewel, ik test het op TSQL; dat wijkt ietwat af van MySQL. Draait jouw code met de HAVING die jij hebt?!
Wat meer info over de HAVING: http://en.wikipedia.org/wiki/Having_%28SQL%29.quote:Op dinsdag 3 maart 2015 16:18 schreef DannyDeko het volgende:
[..]
Aha, duidelijk. Thanks voor de toelichting!
Ik zie (en snap) nu idd ook dat de having verkeerd is.
En ja het draaide ook al met de code die ik poste, dus ook inclusief de overbodige distinct.
1 2 3 4 5 6 7 | <?php /** * @ORM\ManyToMany(targetEntity="ArticleTag", inversedBy="articles") * @ORM\JoinTable(name="article_tags") **/ private $articleTags; ?> |
1 2 3 4 5 6 | <?php /** * @ORM\ManyToMany(targetEntity="Article", mappedBy="articleTags") **/ private $articles; ?> |
1 2 3 4 5 6 7 | <?php $qb = $em->createQueryBuilder(); $qb->select('articletag, (SELECT count(article.id) FROM HVNewsBundle:Article AS article WHERE article.articleTags = articletag.id) AS mycount') ->from('HVNewsBundle:ArticleTag', 'articletag') ->orderBy('mycount', 'DESC'); $articleTags = $qb->getQuery()->getResult(); ?> |
Dus eigenlijk gewoon een kolommetje erbij met 'views' en die dan per actie ++ of -1 laten berekenen?quote:Op vrijdag 6 maart 2015 18:03 schreef KomtTijd... het volgende:
"foutmeldingen" ja daar heb ik ook wel eens last van
denk dat je de count moet doen op je koppeltabel.
article.articletags is een arraycollection van tags, dus daar kun je niet zomaar een WHERE op doen.
Ja dat was ook eigenlijk mijn vraag, hoe ik dat het beste doe, aangezien ik nu talloze combinaties geprobeerd heb en SQL/DQL niet mijn sterkste kant isquote:Op vrijdag 6 maart 2015 18:35 schreef KomtTijd... het volgende:
Nee je kunt toch in je koppel tabel tellen hoeveel artikelen een bepaalde tag heeft of vice versa? Weet FF niet of je makkelijk kunt querien naar de koppeltabel met doctrine maar dat lijkt me wel de manier.
SELECT COUNT(tag_id) FROM articles_tags GROUP BY article_idquote:Op vrijdag 6 maart 2015 19:39 schreef henrivo het volgende:
Kortgezegde wil ik dus van elk bestaande tag berekenen hoeveel articles er aan gekoppeld zitten. Heeft iemand enig idee hoe?
Is:quote:Op vrijdag 6 maart 2015 19:41 schreef TwenteFC het volgende:
[..]
SELECT COUNT(tag_id) FROM articles_tags GROUP BY article_id
Lange dag. Maar je hebt inderdaad gelijk ja, iets te snel overheen gelezenquote:Op vrijdag 6 maart 2015 20:04 schreef Reemi het volgende:
[..]
Is:
SELECT COUNT(article_id) FROM articles_tags GROUP BY tag_id
Niet logischer? Nu tel je voor elk bericht het aantal tags.
Ik ook, maar wanneer ik dit doe:quote:
1 2 3 4 5 | <?php $query = $em->createQuery('SELECT COUNT(article_id) FROM articles_tags GROUP BY tag_id'); $articleTags = $query->getResult(); ?> |
1 | [Semantical Error] line 0, col 30 near 'articles_tags': Error: Class 'articles_tags' is not defined. |
Probeer het eerst in PhpMyAdmin/HeidiSQL/SQLyog oid om de juiste data te krijgen.quote:Op vrijdag 6 maart 2015 20:28 schreef henrivo het volgende:
[..]
Ik ook, maar wanneer ik dit doe:
[ code verwijderd ]
Levert mij dit op:
[ code verwijderd ]
Thanks, ga ik even mee aan de slagquote:Op vrijdag 6 maart 2015 22:13 schreef TwenteFC het volgende:
[..]
Probeer het eerst in PhpMyAdmin/HeidiSQL/SQLyog oid om de juiste data te krijgen.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | <?php // CSV import format $headers = array( 'order_id' => 'Ordernummer', 'shipping_first_name' => 'shipping_first_name', 'shipping_last_name' => 'shipping_last_name', 'shipping_address_1' => 'shipping_address_1', 'shipping_address_2' => 'shipping_address_2', 'shipping_postcode' => 'shipping_postcode', 'shipping_city' => 'shipping_city', 'shipping_country' => 'shipping_country', 'shipping_company' => 'shipping_company', 'billing_phone' => 'billing_phone', 'customer_note' => 'customer_note', ); ?> |
Wat voor foutmelding kreeg je dan toen je het probeerde? Of wat is het probleem?quote:Op woensdag 11 maart 2015 23:21 schreef djkoelkast het volgende:
Daarmee kom ik er nog niet uit helaas. Ik zal wat hands-on uitleg moeten hebben.
Ik kan er wel een punt voor gooien, maar 't zit wel in een array hè?
Post hier je code, daar hebben we veel meer aan.quote:Op donderdag 12 maart 2015 09:49 schreef djkoelkast het volgende:
Ik wil een csv-export en die werkt want het is een bestaand script.
Ik wil alleen velden op mijn volgorde en met de info die ik nodig heb exporteren en niet met wat die programmeur heeft bedacht, maar ik vind het erg lastig op deze manier omdat ik eigenlijk geen idee heb wat ik aan het doen ben.
Toen ik het probeerde ging mijn site op error 500
Er is geen foutmelding, gewoon wit scherm, meer niet.quote:Op donderdag 12 maart 2015 09:55 schreef KomtTijd... het volgende:
Het helpt al een heleboel als je de foutmelding leest en probeert te begrijpen. Dik kans dat er gewoon ergens een puntkomma verkeerd staat bijvoorbeeld, in de foutmelding staat waar (regel nummer)
De hele code posten is wat onhandig, vandaar dat ik iemand vraag die me even wegwijs wil maken, die kan het script dan even bekijken en zeggen wat ik moet doen.quote:Op vrijdag 13 maart 2015 09:22 schreef Crutch het volgende:
[..]
Post hier je code, daar hebben we veel meer aan.
Dan eerst daar iets aan doen.quote:Op vrijdag 13 maart 2015 10:11 schreef djkoelkast het volgende:
[..]
Er is geen foutmelding, gewoon wit scherm, meer niet.
Je moet dat ene doen waardoor het gaat werken.quote:Op vrijdag 13 maart 2015 10:11 schreef djkoelkast het volgende:
[..]
Er is geen foutmelding, gewoon wit scherm, meer niet.
[..]
De hele code posten is wat onhandig, vandaar dat ik iemand vraag die me even wegwijs wil maken, die kan het script dan even bekijken en zeggen wat ik moet doen.
Nou, open de motorkap dan kunnen we kijken wat er in zitquote:Op zaterdag 14 maart 2015 11:57 schreef djkoelkast het volgende:
Ik vraag dan ook of iemand even wegenwacht wil spelen en niet of iemand de handleiding van mijn auto wil aangeven, want die heb ik al gelezen en ik kom er niet uit.
Dus je zoekt geen hulp, je hebt gewoon een opdracht bedoel je?quote:Op zaterdag 14 maart 2015 11:57 schreef djkoelkast het volgende:
Ik vraag dan ook of iemand even wegenwacht wil spelen en niet of iemand de handleiding van mijn auto wil aangeven, want die heb ik al gelezen en ik kom er niet uit.
Krijgen we dat weer.quote:Op zaterdag 14 maart 2015 12:47 schreef KomtTijd... het volgende:
[..]
Dus je zoekt geen hulp, je hebt gewoon een opdracht bedoel je?
Dan zou ik het eens op http://freelance.net proberen ofzo. Misschien dat iemand hier een offerte voor je wil maken maar officieel is dat niet toegestaan op fok.
Een competent iemand erbij halen zou een hoop schelen.quote:Op zaterdag 14 maart 2015 12:55 schreef djkoelkast het volgende:
[..]
Krijgen we dat weer.
Gewoon even iemand die naar het script kan kijken en kan zeggen ooooh dan moet je dat en dat doen. Ik ga alleen niet het hele script openbaar gooien, het is ten slotte niet van mij, ik wil er alleen wat in wijzigen.
Voor 200 euro per uur ben ik de wegenwacht. En ik reken 1 uur en 1 min als 2 uur werk. Of je maakt een gist en laat mensen zien wat er 1) nu gebeurd en 2) wat je verwacht dat er gebeurd.quote:Op zaterdag 14 maart 2015 11:57 schreef djkoelkast het volgende:
Ik vraag dan ook of iemand even wegenwacht wil spelen en niet of iemand de handleiding van mijn auto wil aangeven, want die heb ik al gelezen en ik kom er niet uit.
Wij kunnen je echter geen suggesties aanbieden als wij niet weten hoe het script in elkaar steekt. Je zal het of openbaar moeten gooien of zelf nader moeten uitleggen hoe het script werkt.quote:Op zaterdag 14 maart 2015 12:55 schreef djkoelkast het volgende:
[..]
Krijgen we dat weer.
Gewoon even iemand die naar het script kan kijken en kan zeggen ooooh dan moet je dat en dat doen. Ik ga alleen niet het hele script openbaar gooien, het is ten slotte niet van mij, ik wil er alleen wat in wijzigen.
Leer debuggen, minimaliseer het probleem. Kijk naar waardes van variabelen. Als die verschillen van verwachting moet je het probleem achter halen.quote:Op zaterdag 14 maart 2015 12:55 schreef djkoelkast het volgende:
[..]
Krijgen we dat weer.
Gewoon even iemand die naar het script kan kijken en kan zeggen ooooh dan moet je dat en dat doen. Ik ga alleen niet het hele script openbaar gooien, het is ten slotte niet van mij, ik wil er alleen wat in wijzigen.
Lijkt mij legitiem. Kinderen zijn de oorzaak van alle problemen.quote:Op zaterdag 14 maart 2015 11:29 schreef Monolith het volgende:
Dit is een beetje als vragen om hulp bij een auto die niet wil starten en dan een foto van het kinderzitje laten zien.
jawel, ik doe dat ook altijd zo. Mocht je later iets willen toevoegen kun je direct doorschrijven.quote:Op zaterdag 14 maart 2015 23:50 schreef Boze_Appel het volgende:
Sowieso klopt zijn array met een comma aan het einde niet.
quote:Op zondag 15 maart 2015 08:16 schreef Pakspul het volgende:
[..]
jawel, ik doe dat ook altijd zo. Mocht je later iets willen toevoegen kun je direct doorschrijven.
Bij de meeste frameworks wordt dat zelfs aangeraden in de coding conventions, zoals bij Zend:quote:
quote:When using this latter declaration, we encourage using a trailing comma for the last item in the array; this minimizes the impact of adding new items on successive lines, and helps to ensure no parse errors occur due to a missing comma.
Dat vind ik echt een beetje dubieus. Bij een komma hoort gewoon een volgend element, anders doe je geen komma.quote:Op zondag 15 maart 2015 09:17 schreef mstx het volgende:
[..]
Bij de meeste frameworks wordt dat zelfs aangeraden in de coding conventions, zoals bij Zend:
[..]
Vooral dat laatste. Wat hierbij van belang is dat je consistent bent. Zowel mijn als jouw aanpak is niet fout. Dit geldt hetzelfde als lower/upper camelcase. Persoonlijk vind ik lower camelcase bij functies buurt lelijk, maar bij variabelen heb ik er totaal geen probeem mee. Zo heb ik mijn style van programmeren en anderen kunnen hier een andere mening over hebben, maar zoals ik eerder aangaf consistentie is hierbij het belangrijkste.quote:Op zondag 15 maart 2015 09:21 schreef robin007bond het volgende:
[..]
Dat vind ik echt een beetje dubieus. Bij een komma hoort gewoon een volgend element, anders doe je geen komma.
Maar goed, kwestie van stijl. Ik vind het enorm lelijk.
Het is lekker makkelijk, als er wat bij moet komen is het control+d op die lijn, en de index/waarde aanpassen en gaan.quote:Op zondag 15 maart 2015 09:21 schreef robin007bond het volgende:
[..]
Dat vind ik echt een beetje dubieus. Bij een komma hoort gewoon een volgend element, anders doe je geen komma.
Maar goed, kwestie van stijl. Ik vind het enorm lelijk.
Ik vind het ook lelijk. Daarnaast ook verwarrend.quote:Op zondag 15 maart 2015 09:21 schreef robin007bond het volgende:
[..]
Dat vind ik echt een beetje dubieus. Bij een komma hoort gewoon een volgend element, anders doe je geen komma.
Maar goed, kwestie van stijl. Ik vind het enorm lelijk.
Het is verwarrend inderdaad, naar mijn mening.quote:Op zondag 15 maart 2015 15:51 schreef Crutch het volgende:
[..]
Ik vind het ook lelijk. Daarnaast ook verwarrend.
Eigenlijk zou dit ook helemaal niet mogelijk moeten zijn; zelfs javascript (ook niet strict) laat het niet toe.
Als ik het tegenkom haal ik 't ook gewoon weg.
Nee hoor, in Javascript is het ook geen probleem.quote:Op zondag 15 maart 2015 16:00 schreef robin007bond het volgende:
[..]
Het is verwarrend inderdaad, naar mijn mening.
Volgens mij is PHP de enige programmeertaal die dit toestaat.
1 2 | var array = [1, 2, 3, 4,]; var object = {'foo': 'bar', 'herp':'derp',}; |
quote:Op zondag 15 maart 2015 16:33 schreef Crutch het volgende:
Oh god, is het heus?
Ik kan hier niet mee omgaan.
quote:Op zondag 15 maart 2015 16:42 schreef Monolith het volgende:
Gewoon fatsoenlijke programmeertalen gebruiken.
Het is geen valide JSON, dat scheelt misschien een beetjequote:Op zondag 15 maart 2015 16:33 schreef Crutch het volgende:
Oh god, is het heus?
Ik kan hier niet mee omgaan.
Welke stel je voor?quote:Op zondag 15 maart 2015 16:42 schreef Monolith het volgende:
Gewoon fatsoenlijke programmeertalen gebruiken.
Scala.quote:
C# en C++quote:Op zondag 15 maart 2015 17:02 schreef Robuustheid het volgende:
[..]
Welke talen zijn dat? Ik heb wel een vermoeden, maar weet het niet geheel zeker.
Oh dat is niet de reden dat JavaScript, maar vooral PHP zulke beroerde talen zijn hoor.quote:
In C met GCC en -Wall wordt er ook geen foutmelding weergeven.quote:
Beste van twee werelden door Nederlands bedrijfquote:Op zondag 15 maart 2015 17:26 schreef Monolith het volgende:
[..]
Oh dat is niet de reden dat JavaScript, maar vooral PHP zulke beroerde talen zijn hoor.
Bijkomend voordeel is dat je diffs kleiner blijven omdat je geen regel wijzigt door er alleen een komma aan toe te voegen als je een extra regel aan de array wilt toevoegen. En, zeker als je met een groter team werkt, is het wel handig dat git blame de juiste persoon bij en de juiste reden van een wijziging laat zien.quote:Op zondag 15 maart 2015 18:54 schreef KomtTijd... het volgende:
Ik vind die komma aan het einde van een array ideaal! Als 'ie ontbreekt voeg ik hem juist vaak toe. En ik vind het ook moeilijk irritant dat je 'm in SQL niet mag plaatsen.
Het maakt het uitbreiden van arrays een stuk makkelijker en de kans dat je een syntax error krijgt omdat je een komma vergeten bent in de regel boven de regel die je toegevoegd hebt, veel kleiner.
Zit je zo vaak handmatig JSON-files te schrijven, dan?quote:Op zondag 15 maart 2015 20:24 schreef slacker_nl het volgende:
Ow ja, en in JSON mag je geen single quotes gebruiken en mag je ook geen trailing , gebruiken. HAAAAAAT (idem voor SQL, haaaaat). Trailing comma == bliss,
Ja, chef data bag files zijn JSON.quote:Op zondag 15 maart 2015 20:39 schreef Tijn het volgende:
[..]
Zit je zo vaak handmatig JSON-files te schrijven, dan?
als je je API zit te testen wil dat best nog wel eens voorkomen ja. Maar van JSON waardeer ik het wel weer dat het flink strict is, voor een transport protocol heeft dat absoluut voordelen.quote:Op zondag 15 maart 2015 20:39 schreef Tijn het volgende:
[..]
Zit je zo vaak handmatig JSON-files te schrijven, dan?
Gewoon terecht. Die trailing komma is voor mensen met een komma-fetish.quote:Op zondag 15 maart 2015 20:24 schreef slacker_nl het volgende:
Ow ja, en in JSON mag je geen single quotes gebruiken en mag je ook geen trailing , gebruiken. HAAAAAAT (idem voor SQL, haaaaat). Trailing comma == bliss,
Het is een data format, geen transport protocol.quote:Op zondag 15 maart 2015 20:43 schreef KomtTijd... het volgende:
[..]
als je je API zit te testen wil dat best nog wel eens voorkomen ja. Maar van JSON waardeer ik het wel weer dat het flink strict is, voor een transport protocol heeft dat absoluut voordelen.
Gewoon terecht. Die trailing komma is voor mensen met een komma-fetish.quote:Op zondag 15 maart 2015 20:44 schreef robin007bond het volgende:
[ afbeelding ] Op zondag 15 maart 2015 20:24 schreef slacker_nl het volgende:
Ow ja, en in JSON mag je geen single quotes gebruiken en mag je ook geen trailing , gebruiken. HAAAAAAT (idem voor SQL, haaaaat). Trailing comma == bliss,
1 2 3 4 5 6 7 8 9 10 | XXX::Foo->new( foo => bar, ); of XXX::Foo->new( foo => bar, baz => fubar, ); |
Inderdaad. HTTP is een transport protocol, maar JSON niet.quote:Op zondag 15 maart 2015 20:48 schreef Monolith het volgende:
[..]
Het is een data format, geen transport protocol.
Je hebt gelijk maar je begrijpt wat ik bedoelquote:Op zondag 15 maart 2015 20:48 schreef Monolith het volgende:
[..]
Het is een data format, geen transport protocol.
Natuurlijk begrijp ik dat, maar op zich maakt het niet zoveel uit of je nou wel of niet dat soort constructies toestaat. Als de specs maar duidelijk en ondubbelzinnig zijn.quote:Op zondag 15 maart 2015 21:04 schreef KomtTijd... het volgende:
[..]
Je hebt gelijk maar je begrijpt wat ik bedoel
Oh, ik bedoelde niet als je een array meegeeft als parameter van een functie (de vraag is alleen of je niet liever een object meegeeft in plaats van een array, maar dat terzijde). De builder-pattern vind ik eerlijk gezegd geschikter dan een functie maken die allerlei config-opties vereist in een array.quote:Op zondag 15 maart 2015 20:52 schreef slacker_nl het volgende:
[..]
Ik heb regelmatig:
[ code verwijderd ]
Plus als ik alles ga sorten en zulks, breekt er niks omdat de komma plots verdwenen is midden in m'n lijst.
1 2 | function blabla(x, y,) { } |
Meh, dan krijg je weer dat parsers foutcorrectie gaan doen enzo en protocollen die onterecht rekenen op die foutcorrectie en wordt de boel allemaal omslachtiger en trager. JSON is juist zo lekker lean en efficiënt, houden zo. Heb volgens mij ooit ergens gelezen dat de JSON_ functies van PHP sneller zijn dan haar eigen serialize() en unsereialize().quote:Op zondag 15 maart 2015 21:11 schreef Monolith het volgende:
[..]
Natuurlijk begrijp ik dat, maar op zich maakt het niet zoveel uit of je nou wel of niet dat soort constructies toestaat. Als de specs maar duidelijk en ondubbelzinnig zijn.
Een class serializen? Neem aan dat je een object bedoelt. En ja dat lijkt me nogal logisch toch? Waarom zou je ooit een private property willen exporteren? Als dat de bedoeling is kan het haast niet de bedoeling zijn dat die property private is.quote:Op zondag 15 maart 2015 21:32 schreef robin007bond het volgende:
Over JSON in PHP gesproken. Als je een klasse wil serializen naar JSON, dan moeten de properties per se public zijn, want anders worden ze niet in de JSON opgenomen.
Uiteraard bedoel ik een object.quote:Op zondag 15 maart 2015 21:35 schreef KomtTijd... het volgende:
[..]
Een class serializen? Neem aan dat je een object bedoelt. En ja dat lijkt me nogal logisch toch? Waarom zou je ooit een private property willen exporteren? Als dat de bedoeling is kan het haast niet de bedoeling zijn dat die property private is.
Nee hoor. Als die class de interface JsonSerializable implementeert (en dus een functie jsonSerialize moet hebben) kan de class perfect zelf bepalen wat er wel en hoe naar json omgezet moet worden.quote:Op zondag 15 maart 2015 21:32 schreef robin007bond het volgende:
Over JSON in PHP gesproken. Als je een klasse wil serializen naar JSON, dan moeten de properties per se public zijn, want anders worden ze niet in de JSON opgenomen.
Valt wel mee. Vaak worden de Javabeans conventies gebruikt.quote:Op zondag 15 maart 2015 21:45 schreef KomtTijd... het volgende:
Sja dan wordt het sowieso een moeilijk verhaal want dan wil je ook dat eventuele logica in de accessors uitgevoerd wordt. Als je ingewikkelder objecten wilt serializen kun je beter een wat geavanceerde de serializer library gebruiken zoals jms.
Of je nou named parameters of niet gebruikt, maakt niet uit of je wel/geen objecten gebruikt in je calls.quote:Op zondag 15 maart 2015 21:21 schreef robin007bond het volgende:
[..]
Oh, ik bedoelde niet als je een array meegeeft als parameter van een functie (de vraag is alleen of je niet liever een object meegeeft in plaats van een array, maar dat terzijde). De builder-pattern vind ik eerlijk gezegd geschikter dan een functie maken die allerlei config-opties vereist in een array.
Maar ik bedoelde meer dus dit:
[ code verwijderd ]
Jij zou dat ook echt zo doen?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | sub foo { my ($self, $foo, $bar, undef, $baz,) = @_; } $self->foo($foo, $bar, 'Ignore me', $object->baz); # Deze is ook wel fijn sub foo { my $self = shift; my %named = @_; } $self->foo( foo => $foo_object, baz => $baz_object, ); |
denk dat dit het moet zijn:quote:
1 | DateAdd("m", 2, [Date]) |
Nee, sorry, ik had die spaties alleen hier toegevoegd, omdat het anders niet zichtbaar is op fok!..quote:Op maandag 16 maart 2015 16:43 schreef slacker_nl het volgende:
[..]
denk dat dit het moet zijn:
[ code verwijderd ]
Volgens mij pikt ie de spaties rond "Date" niet.
Nope, ik doe niet aan Access (het is ook wat offtopic voor dit topic overigens).quote:Op dinsdag 17 maart 2015 09:57 schreef Crohnjurist het volgende:
[..]
Nee, sorry, ik had die spaties alleen hier toegevoegd, omdat het anders niet zichtbaar is op fok!..
Maar het werkt dus nog steeds niet, nog een ander idee hoe ik twee maanden kan toevoegen? Misschien een andere functie ipv DateAdd?
Jammer! Nee dat begreep ik al, maar aangezien dit het dichtst in de buurt komt qua topic wat er al is, dacht ik ik vraag het maar gewoon even, voor hetzelfde geld had iemand het wel gewetenquote:Op dinsdag 17 maart 2015 10:02 schreef slacker_nl het volgende:
[..]
Nope, ik doe niet aan Access (het is ook wat offtopic voor dit topic overigens).
Heb hier eerder ook een issue mee gehad, oudere versies van IE vinden het niet leuk, nieuwere vallen hier niet over.quote:Op zondag 15 maart 2015 16:14 schreef Tijn het volgende:
[..]
Nee hoor, in Javascript is het ook geen probleem.
[ code verwijderd ]
Dit werkt gewoon
Moeten het niet single quotes zijn voor de maand aanduiding, dus 'm' in plaats van "m"?quote:Op dinsdag 17 maart 2015 09:57 schreef Crohnjurist het volgende:
[..]
Nee, sorry, ik had die spaties alleen hier toegevoegd, omdat het anders niet zichtbaar is op fok!..
Maar het werkt dus nog steeds niet, nog een ander idee hoe ik twee maanden kan toevoegen? Misschien een andere functie ipv DateAdd?
Mwah, t is wel redelijk specifieke access syntax waar je problemen mee hebt. Ik zou een topic openen of kijken of het in een algemeen MS Office topic kan (als die er is)quote:Op dinsdag 17 maart 2015 10:03 schreef Crohnjurist het volgende:
[..]
Jammer! Nee dat begreep ik al, maar aangezien dit het dichtst in de buurt komt qua topic wat er al is, dacht ik ik vraag het maar gewoon even, voor hetzelfde geld had iemand het wel geweten
Mmm ik denk dat dat het probleem is, het veld genaamd Date is niet altijd ingevuld. Maar voor de dossiers die wel ingevuld zijn probeer ik dus twee maanden erbij te krijgen. Dit is dus niet mogelijk?quote:Op dinsdag 17 maart 2015 13:51 schreef Monolith het volgende:
[..]
Moeten het niet single quotes zijn voor de maand aanduiding, dus 'm' in plaats van "m"?
Verder neem ik aan dat je een veld genaamd Date hebt en dat daar altijd een geldige datumwaarde in zit?
Je kunt vast een 'doe dit alleen als het veld niet leeg is' constructie hanteren, maar ik heb echt al meer dan 10 jaar niets met Access gedaan, dus dat zou ik niet direct weten.quote:Op dinsdag 17 maart 2015 14:11 schreef Crohnjurist het volgende:
[..]
Mmm ik denk dat dat het probleem is, het veld genaamd Date is niet altijd ingevuld. Maar voor de dossiers die wel ingevuld zijn probeer ik dus twee maanden erbij te krijgen. Dit is dus niet mogelijk?
Haha oké, in ieder geval bedankt tot zover!quote:Op dinsdag 17 maart 2015 14:29 schreef Monolith het volgende:
[..]
Je kunt vast een 'doe dit alleen als het veld niet leeg is' constructie hanteren, maar ik heb echt al meer dan 10 jaar niets met Access gedaan, dus dat zou ik niet direct weten.
quote:Op woensdag 18 maart 2015 12:46 schreef n8n het volgende:
werkt zoiets met php (en zo ja, wat is de juiste markup)?
$var = ( isset( $this-when-true ) : $or-else );
1 | $var = ( isset($test-variable) ? $this-when-true : $or-else ); |
$var = ( isset($this-when-true) ? $this-when-true : $or-else );quote:
Veel korter dan een ternary operator krijg je een if-then-else statement niet. 'this-when-true' slaat ook niet ergens op. Wat je eigenlijk wilt is een 'default-if-null'-constructie.quote:Op woensdag 18 maart 2015 12:57 schreef n8n het volgende:
[..]
$var = ( isset($this-when-true) ? $this-when-true : $or-else );
Zou zo zijn dan, is ook wat ik nu heb, ik hoopte dat het nog korter (droger) kon omdat ik het zo zinloos vind om eerst te checken of iets bestaat en dan apart de inhoud toe te wijzen. Mooier zou zijn als je $var = ( $this-when-true || false ); kon doen zonder dat php over z'n nek gaat omdat de variable niet bestaat.
Bedankt in elk geval, mysterie opgelost, kan ik weer verder
Volgens mij krijg je dan alsnog een notice als je een niet-gedefinieerde variabele aan die functie meegeeft.quote:Op woensdag 18 maart 2015 13:21 schreef Monolith het volgende:
Als je dat echt kort wilt, dan maak je er toch gewoon een functie van, zodat je $var = defaultIfNotSet(originalValue, defaultValue) kan hanteren?
Dat wel ja, maar ik weet niet of het erg is.quote:Op woensdag 18 maart 2015 13:30 schreef mstx het volgende:
[..]
Volgens mij krijg je dan alsnog een notice als je een niet-gedefinieerde variabele aan die functie meegeeft.
Wat is er precies slecht aan?quote:Op woensdag 18 maart 2015 13:38 schreef Monolith het volgende:
[..]
Dat wel ja, maar ik weet niet of het erg is.
Het geeft wel weer aan hoe enorm slecht PHP in elkaar steekt.
Het feit dat isset een functie is als elke andere. Echter, impliciet zit erin verborgen dat een notice wordt onderdrukt op het moment dat je een ongedefinieerde variabele als parameter aan deze specifieke functie meegeeft. Als je dit per se op deze manier wilt doen, dan moet je er een language construct van maken, geen functie met verborgen bij-effecten.quote:
Isset() ís een language construct.quote:Op woensdag 18 maart 2015 13:49 schreef Monolith het volgende:
[..]
Het feit dat isset een functie is als elke andere. Echter, impliciet zit erin verborgen dat een notice wordt onderdrukt op het moment dat je een ongedefinieerde variabele als parameter aan deze specifieke functie meegeeft. Als je dit per se op deze manier wilt doen, dan moet je er een language construct van maken, geen functie met verborgen bij-effecten.
Ik ben sowieso al geen voorstander van het idee dat je variabelen kunt hanteren zonder dat je überhaupt weet of ze gedeclareerd zijn (los van de vraag of ze een waarde hebben), maar dat is een langslepend gevolg van het feit dat PHP van oorsprong een simpel scripttaaltje was met allerlei brakke globals.
Oh ja, dat klopt. Het staat alleen in de docs onder 'variable handling function'.quote:Op woensdag 18 maart 2015 14:12 schreef KomtTijd... het volgende:
[..]
Isset() ís een language construct.
Dat is erg?quote:Op woensdag 18 maart 2015 14:23 schreef Monolith het volgende:
[..]
Maar dan nog is het feit dat er een notice is voor het gebruik van niet gedefinieerde variabelen
Je quote de halve zin, maar ook een notice bij een niet gedefinieerde variabele is echt een oplossing van niets. Of je geeft een exception / error of niet. Nu heb je dus afhankelijk van het niveau van error_reporting onverwachte bij-effecten. Het feit dat je dan weer met een @ operator die notice moet gaan onderdrukken maakt het nog erger.quote:
Van notices hebben mensen wel degelijk last. Zoals ik zeg is dat een bij-effect. Zeker wanneer mensen de code gebruiken in HTML, kunnen de gebruikers het te zien krijgen, wat doorgaans niet wenselijk is. Wanneer je met gecompileerde talen werkt zijn warnings / notices niet zo'n probleem. Prima te hanteren wanneer er bijvoorbeeld deprecated zaken worden gehanteerd. Runtime allerhande notices gaan uitspugen is nooit wenselijk.quote:Op woensdag 18 maart 2015 14:58 schreef Tijn het volgende:
Natuurlijk heb je helemaal gelijk dat PHP geen doordacht design heeft en in de loop der jaren enorm uit de kluiten is gegroeid, zonder dat dat aanvankelijk voorzien was. Maar ik vind niet dat er wat betreft ongedefinieerde variabelen nou echt zoveel mis is.
Je zegt het zelf al: geef als taal een error of niet. Nou, in het geval van PHP is het antwoord duidelijk: het gebruik van een ongedefinieerde variabele is geen enkel probleem. Dat je er een notice over krijgt, is een poging van PHP om hun gebruikers een beetje op te voeden, dat is alles. Maar daar heeft toch niemand last van verder?
1 2 3 | <?php ( isset($_GET[$table[$i]) ? $$table[$i] = new data($table[$i]) : false ); ?> |
1 2 3 | <?php $page->when('published')->take(-4); // laatste 4 gepubliceerde items van deze pagina ?> |
Ik kijk eerst of de table-name (mogelijk met een hard-coded/cached array) een match heeft met de url, als dat waar ik is pak ik de tabel met een query en hang deze aan een nieuwe instance van mn data class. de waarde van de get-key gebruik ik om de query te limiteren voor wat relevant is aan die pagina.quote:Op donderdag 19 maart 2015 10:36 schreef KomtTijd... het volgende:
Dat kun je toch veel beter in je query afhandelen? Dit lijkt me performance-wise niet bepaald optimaal. En als je tabellen wat groter worden ga je geheid uit je geheugen limiet lopen.
Dat bewijst zonder dat ik weet wat dat is, de noodzaak voor een ORMquote:Op donderdag 19 maart 2015 10:54 schreef KomtTijd... het volgende:
Je bent dus min of meer je eigen ORM aan het uitvinden? Daar is op zich niets mis mee nee.
Natuurlijk, maar lijkt me relevant dat hij daar even rekening mee houdt.quote:Op donderdag 19 maart 2015 10:56 schreef KomtTijd... het volgende:
[..]
riep daar iemand prepared statements?
SQL injectie kan met iedere query waar user input in staat. Ook met select queries. Daarom nooit user input direct in je query verwerken.quote:Op donderdag 19 maart 2015 10:57 schreef n8n het volgende:
[..]
Dat bewijst zonder dat ik weet wat dat is, de noodzaak voor een ORM
Injecteren? Er gaat niks via deze weg 'omhoog', de data die losgetrokken kan worden is al openbaar. Verder nog hiaten waar ik geen idee van heb? Weet alleen dat ik PDO moet gebruiken en ALLES moet valideren wat omhoog gaat.
user input zoals een get varible zoals /?page=malafide-code. Dat vang je af met pdo/prepared statements?quote:Op donderdag 19 maart 2015 11:02 schreef KomtTijd... het volgende:
[..]
SQL injectie kan met iedere query waar user input in staat. Ook met select queries. Daarom nooit user input direct in je query verwerken.
En kijk ook eens naar bestaande ORM libs, zoals doctrine of redbean.
Klopt. Enige punt is dat je in jouw geval moet uitkijken voor /?malafide-code=waarde aangezien je ook min of meer dynamische tabelnamen wilt hebben op basis van de naam van request parameters. Gelukkig gebruik je de tabel en niet de request parameter daarvoor, dus dat moet goed gaan, maar het is wel iets waar je mee moet uitkijken. Helemaal omdat tabelnamen niet middels prepared statements in een query kunnen worden gestopt, dus daar ben je zelf verantwoordelijk voor het voorkomen van SQL injection.quote:Op donderdag 19 maart 2015 11:06 schreef n8n het volgende:
[..]
user input zoals een get varible zoals /?page=malafide-code. Dat vang je af met pdo/prepared statements?
de table names zet ik in een var:quote:Op donderdag 19 maart 2015 11:32 schreef Monolith het volgende:
[..]
Klopt. Enige punt is dat je in jouw geval moet uitkijken voor /?malafide-code=waarde aangezien je ook min of meer dynamische tabelnamen wilt hebben op basis van de naam van request parameters. Gelukkig gebruik je de tabel en niet de request parameter daarvoor, dus dat moet goed gaan, maar het is wel iets waar je mee moet uitkijken. Helemaal omdat tabelnamen niet middels prepared statements in een query kunnen worden gestopt, dus daar ben je zelf verantwoordelijk voor het voorkomen van SQL injection.
1 2 3 4 | <?php $tables = "show tables from $db"; //of $tables = ['table1', 'table2']; ?> |
Ow perlquote:Op woensdag 18 maart 2015 13:21 schreef Monolith het volgende:
[..]
Veel korter dan een ternary operator krijg je een if-then-else statement niet. 'this-when-true' slaat ook niet ergens op. Wat je eigenlijk wilt is een 'default-if-null'-constructie.
Als je dat echt kort wilt, dan maak je er toch gewoon een functie van, zodat je $var = defaultIfNotSet(originalValue, defaultValue) kan hanteren?
1 2 3 4 | $foo //= "bar" ; # is hetzelfde als $foo = defined $foo ? $foo : "bar" ; |
quote:
In php 7quote:Op woensdag 18 maart 2015 13:21 schreef Monolith het volgende:
[..]
Veel korter dan een ternary operator krijg je een if-then-else statement niet. 'this-when-true' slaat ook niet ergens op. Wat je eigenlijk wilt is een 'default-if-null'-constructie.
Als je dat echt kort wilt, dan maak je er toch gewoon een functie van, zodat je $var = defaultIfNotSet(originalValue, defaultValue) kan hanteren?
1 | $eenVariabele = $dezeWaardeAlsHijBestaat ?? $andersDit; |
Je kan PHP 7 al uitproberen dan? De meest recente versie die gebruikt kan worden, is bij ons nog steeds PHP 5.6quote:
Dat hoeft toch niet perse? Specs kunnen al lang voor enige release bekend zijn. Maar volgens mij wordt er al best lang gesleuteld aan php7 dus je kunt vast wel ergens een dev build vandaan halen als je zou willen.quote:Op zaterdag 21 maart 2015 22:05 schreef Robuustheid het volgende:
[..]
Je kan PHP 7 al uitproberen dan? De meest recente versie die gebruikt kan worden, is bij ons nog steeds PHP 5.6
Dat is wel mooi.quote:Op maandag 23 maart 2015 06:26 schreef totalvamp het volgende:
http://www.phpclasses.org(...)inally-Approved.html
EINDELIJK!
quote:Op maandag 23 maart 2015 14:37 schreef bondage het volgende:
Hier nog mensen belang bij een leuke functie als database opschoon mannetje?
https://www.starapple.nl/vacatures/58-sql-dba/
_
quote:Aanbod
3500 met niets bijzonders
quote:Op maandag 23 maart 2015 14:37 schreef bondage het volgende:
Hier nog mensen belang bij een leuke functie als database opschoon mannetje?
https://www.starapple.nl/vacatures/58-sql-dba/
_
Die viel mij ook op ja.quote:
Dit is inderdaad een voorbeeld van hoe je het absoluut niet moet doen. Leuk aanbod maar ik laat het liever aan me voorbij gaanquote:Op maandag 23 maart 2015 16:37 schreef Monolith het volgende:
[..]
Die viel mij ook op ja.
Zo trek je ook geen mensen natuurlijk. Zet er dan iets neer in de trant van '3500 euro, een zak beukenootjes en een eekhoorn' of iets dergelijks. Dat zou wel bijzonder zijn.
beter dan de eeuwige zoektocht naar een ondernemende teamplayer die van aanpakken weet.quote:Op maandag 23 maart 2015 16:41 schreef bondage het volgende:
[..]
Dit is inderdaad een voorbeeld van hoe je het absoluut niet moet doen. Leuk aanbod maar ik laat het liever aan me voorbij gaan
Zie jij dat vaak in vacatures? Ik zie toch voornamelijk zwaar op de inhoud gerichte vacatures voorbij komen.quote:Op maandag 23 maart 2015 21:39 schreef n8n het volgende:
[..]
beter dan de eeuwige zoektocht naar een ondernemende teamplayer die van aanpakken weet.
Nog niet geprobeerd nee, maar ik hou gewoon de RFC's in de gatenquote:Op zondag 22 maart 2015 22:30 schreef Robuustheid het volgende:
Yep, maar ik ga wel vanuit dat TwenteFC niet daar al mee loopt te klooien. Want dat PHP 7 is nog vrij buggy en vooral voorbehouden aan ontwikkelaars die contributies doen aan de PHP community.
Ik lees ze eigenlijk vrijwel nooit, het zijn wel de vervelende pro-actieve teksten die negatief opvallen (geschreven door zo’n ‘vlotte’ marketing-asshole).quote:Op maandag 23 maart 2015 21:51 schreef Monolith het volgende:
[..]
Zie jij dat vaak in vacatures? Ik zie toch voornamelijk zwaar op de inhoud gerichte vacatures voorbij komen.
Ik sta op de mailinglist van een aantal recruiters en daarnaast word ik sowieso wel vaak benaderd via LinkedIn en het zijn in ieder geval altijd vacatures die naast de primaire arbeidsvoorwaarden voornamelijk benadrukken dat er uitstekende opleidingsbudgetten zijn, met welke cutting-edge technologieën wordt gewerkt, enzovoort. Zelfs in de HR zijn ze niet helemaal achterlijk en weten ze wel dat ze de vacatures moeten aanpassen op hun doelpubliek. Dat de recruiters vaak zelf niet snappen dat bepaalde technologieën mijlenver uit elkaar liggen is natuurlijk een ander verhaal.quote:Op maandag 23 maart 2015 23:03 schreef n8n het volgende:
[..]
Ik lees ze eigenlijk vrijwel nooit, het zijn wel de vervelende pro-actieve teksten die negatief opvallen (geschreven door zo’n ‘vlotte’ marketing-asshole).
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 | <?php class Item<T> { protected $item; public function __construct(T $item = null) { $this->item = $item; } public function getItem() { return $item; } public function setItem(T $item) { $this->item = $item; } } class Test { public function runTest() { $item = new Item<StdClass>; var_dump($item instanceof Item); // true $item->setItem(new StdClass); // works fine // $item->setItem([]); // E_RECOVERABLE_ERROR } } ?> |
1 2 3 4 5 6 7 8 9 10 11 | RewriteEngine On php_flag display_startup_errors on php_flag display_errors on php_flag html_errors on php_flag log_errors on RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)$ index.php?querystring=$1 [L] |
Kijk eens in de network tab van firebug/developer tools, misschien zit er in je html een tag met een verkeerde of lege href/src die naar de index.php wordt doorgestuurd.quote:Op dinsdag 31 maart 2015 15:39 schreef boskameel het volgende:
Ik weet niet of dit hier hoort, maar kent iemand het probleem dat bij url rewrites 2 keer de regel wordt uitgevoerd?
Mijn htaccess ziet er zo uit:
[ code verwijderd ]
als ik bv naar http://mijndomein/blabla/ ga, dan wordt het index.php 2 keer opgeroepen. Zit er gewoon een foutje in, of is dit standaard?
[edit]
Ik zie dat het probleem zich alleen voordoet in firefox en ie Dit is toch serverside?
[/edit]
Is het niet je browser die een request doet naar je favicon.ico?quote:Op dinsdag 31 maart 2015 16:14 schreef boskameel het volgende:
Thanks, ik zie het, het is de base href. Maar die heb ik nodig, anders zal ik alles moeten omzetten naar absolute paden.
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 | <?php $expiretime=10080; //expire time in minutes, 7 days = 7*24*60 $tmpFolder="pictures/"; $fileTypes="*.*"; foreach (glob($tmpFolder . $fileTypes) as $Filename) { // Read file creation time $FileCreationTime = filectime($Filename); // Calculate file age in seconds $FileAge = time() - $FileCreationTime; // Is the file older than the given time span? if ($FileAge > ($expiretime * 60)){ // Now do something with the olders files... echo "The file $Filename is older than $expiretime minutes\n"; //delete files: unlink($Filename); } } ?> |
Krijg je helemaal geen output? Alleen jpg verwijderen zou je hiermee moeten kunnen doen: $fileTypes="*.*"; veranderen in $fileTypes="*.jpg";quote:Op zondag 5 april 2015 17:36 schreef davedavy het volgende:
Een vraagje, ik ben zelf de PHP taal niet machtig maar met Google kom je al een heel eind. Laatst heb ik een leuk scriptje gevonden dat netjes in mijn map waar ik beveiligingscamera foto's opsla de foto's ouder dan 7 dagen verwijderde. Nu is mijn website leuk gecrasht en ben ik alles kwijt
Met als gevolg, ik moet opnieuw .jpg's automatisch verwijderd krijgen die ouder zijn dan 7 dagen. Puur jpg's, anders verwijderd die alles eromheen ook
Ik heb zelf dit gevonden:
[ code verwijderd ]
https://naiboo.wordpress.(...)ys-or-10080-minutes/
Maar die doet niks Wat doe ik fout?
Uiteraard heb ik $fileTypes="*.*" al veranderd naar $fileTypes="*.jpg" maar ik krijg totaal geen output, de jpg bestandjes staan er nog leuk in. En ze zijn ook ouder dan de aangegeven tijd.quote:Op zondag 5 april 2015 17:43 schreef bondage het volgende:
[..]
Krijg je helemaal geen output? Alleen jpg verwijderen zou je hiermee moeten kunnen doen: $fileTypes="*.*"; veranderen in $fileTypes="*.jpg";
Beiden ja, ik heb atm de tijd op slechts 1 minuut staan en hij verwijderd nog steeds niets Er is trouwens wel een error maar dat lijkt me er niks mee te doen hebben:quote:Op zondag 5 april 2015 17:58 schreef TwenteFC het volgende:
Heb je wel de foutmeldingen aan staan? En zijn er uberhaupt .jpg afbeeldingen die ouder dan 7 dagen zijn?
1 | [05-Apr-2015 10:58:54 CST6CDT] PHP Warning: Module 'sqlite' already loaded in Unknown on line 0 |
Ik vermoed dan inderdaad dat je niet in de juiste folder aan het kijken bent, var_dump dit eens : (glob($tmpFolder . $fileTypes)quote:Op zondag 5 april 2015 18:01 schreef davedavy het volgende:
[..]
Beiden ja, ik heb atm de tijd op slechts 1 minuut staan en hij verwijderd nog steeds niets Er is trouwens wel een error maar dat lijkt me er niks mee te doen hebben:
[ code verwijderd ]
De tijd klopt niet, weer een fout van me crappy host. Net als deze error neem ik aan.
"$tmpFolder="pictures/"; " moet leiden naar de map waar de jpg files zitten neem ik aan? Wellicht dat ik daar naar de foute map zit te leiden oid. Ik moet het absolut path hebben toch?
1 | /home/dave/public_html/test |
Omdat het een shared hosting pakket is. Ik kan er wel cron jobs uitvoeren maar kreeg het niet voor mekaar enkel JPG's te verwijderen.quote:Op maandag 6 april 2015 09:43 schreef KomtTijd... het volgende:
Waarom doe je niet gewoon
[ code verwijderd ]
Vrij zeker dat het via Google moetquote:Op dinsdag 7 april 2015 18:10 schreef Tijn het volgende:
Weet iemand of YouTube een API heeft om in te loggen vanaf je eigen website? Of moet je dan Google Sign-In gebruiken?
Ja, daar ben ik ook bang voor. Het probleem is alleen dat ik alleen geïnteresseerd ben in gebruikers van YouTube.quote:
Ja, ik had ook nog wat anders gevonden. Ik denk dat het hiermee wel moet lukken, maar ik hoopte op een hapklaardere brok.quote:Op dinsdag 7 april 2015 18:42 schreef KomtTijd... het volgende:
https://developers.google(...)esources/Google-APIs
Dit gelezen?
Denk persoonlijk dat je van ingelogde gebruikers wel toegang kunt vragen tot hun channels, en dan aan de hand daarvan kunt bepalen of je de login wel of niet accepteert?
1 2 3 4 | # 2015-04-09 10:00 UTC = 2015-04-09 12:00 CET SELECT UNIX_TIMESTAMP( CONVERT_TZ('2015-04-09 10:00:00', '+00:00', @@session.time_zone) ); |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | CREATE TABLE Trans ( CheckinTime INTEGER, CheckoutTime INTEGER, PricePaid INTEGER, CarryID INTEGER, CheckinLoc INTEGER, CheckoutLoc INTEGER, PRIMARY KEY(CheckinTime), FOREIGN KEY(CarryID) REFERENCES OVchipcard(CardID) ); CREATE TABLE OVchipcard ( CardID INTEGER PRIMARY KEY, balance INTEGER, RegistrationDate INTEGER, owns INTEGER, FOREIGN KEY(owns) REFERENCES Passenger(name) ); |
Error Code: 1005. Can't create table 'test.trans' (errno: 150)quote:Op vrijdag 10 april 2015 22:58 schreef Rockfire het volgende:
Wat gaat er precies fout? Ik kan me zo voorstellen dat het aanmaken van de eerste tabel fout gaat, omdat de foreign key niet gemaakt kan worden omdat de tabel waar hij naar wijst nog niet bestaat.
Heb je het al geprobeerd door eerst de tabellen aan te maken en pas daarna de foreign key constraints?quote:Op vrijdag 10 april 2015 23:07 schreef Nattekat het volgende:
[..]
Error Code: 1005. Can't create table 'test.trans' (errno: 150)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | CREATE TABLE Trans ( CheckinTime INTEGER, CheckoutTime INTEGER, PricePaid INTEGER, CarryID INTEGER, CheckinLoc INTEGER, CheckoutLoc INTEGER, PRIMARY KEY(CheckinTime) ); CREATE TABLE OVchipcard ( CardID INTEGER PRIMARY KEY, balance INTEGER, RegistrationDate INTEGER, owns INTEGER ); ... ALTER TABLE Trans ADD CONSTRAINT fk_CarryID FOREIGN KEY (CarryId) REFERENCES OVchipcard(CardID); ALTER TABLE OVchipcard ADD CONSTRAINT fk_owns FOREIGN KEY (owns) REFERENCES Passenger(name); |
Dat deed 't hemquote:Op zaterdag 11 april 2015 20:19 schreef Rockfire het volgende:
[..]
Heb je het al geprobeerd door eerst de tabellen aan te maken en pas daarna de foreign key constraints?
[ code verwijderd ]
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 | mysql> CREATE TABLE employees (data JSON); Query OK, 0 rows affected (0,01 sec) mysql> INSERT INTO employees VALUES ('{"id": 1, "name": "Jane"}'); Query OK, 1 row affected (0,00 sec) mysql> INSERT INTO employees VALUES ('{"id": 2, "name": "Joe"}'); Query OK, 1 row affected (0,00 sec) mysql> select * from employees; +---------------------------+ | data | +---------------------------+ | {"id": 1, "name": "Jane"} | | {"id": 2, "name": "Joe"} | +---------------------------+ 2 rows in set (0,00 sec) mysql> select jsn_extract(data, '$.name') from employees; +-----------------------------+ | jsn_extract(data, '$.name') | +-----------------------------+ | "Jane" | | "Joe" | +-----------------------------+ 2 rows in set (0,00 sec) |
Heb ik ook eens gedaan.quote:Op maandag 13 april 2015 12:05 schreef Tijn het volgende:
Ha, dat is best cool. Ik sla sowieso vrij vaak JSON op in MySQL voor applicatie-specifieke data waar verder niet op geselecteerd of gesorteerd hoeft te worden.
Dat voor simpele configs dus en native JSON NoSql databases voor daadwerkelijke data.quote:Op maandag 13 april 2015 17:05 schreef raptorix het volgende:
Mwoah ik zou dat toch eerder in een config bestand zetten, vooral als er omgevings specifieke waarden in staan.
Het grote voordeel is dan ook dat je dat soort zaken eenvoudig mee kunt nemen in je auto deploys, hier doen we dat per omgeving specifiek met XML transformations.quote:Op maandag 13 april 2015 17:11 schreef Monolith het volgende:
[..]
Dat voor simpele configs dus en native JSON NoSql databases voor daadwerkelijke data.
Er zijn uitzonderingen waarbij het toch wel handig is om te doen. Ik had een keer een database, waarbij er informatie bij de entiteit hoorde die erg in vorm kon verschillen, maar waarbij het niet zoveel uitmaakte hoe dat zat (er hoeft niet op gequeried te worden, gesorteerd etc.) Qua performance was toen het opslaan van JSON wel een goede optie.quote:Op maandag 13 april 2015 17:11 schreef Monolith het volgende:
[..]
Dat voor simpele configs dus en native JSON NoSql databases voor daadwerkelijke data.
Dat is leuk, maar ik zie niet in waarom dit specifiek in MySQL zou moeten. Ik weet wel dat PHP erg sterk verbonden is met MySQL, maar er is de laatste jaren heel erg veel aan het veranderen op database gebied.quote:Op maandag 13 april 2015 21:26 schreef Tijn het volgende:
Ik heb meerdere back-ends voor games gemaakt, waarbij er ook vaak JSON in een MySQL-database werd opgeslagen. Het is gewoon handig, want je hebt dan wel de juiste data bij elkaar met de juiste relaties, maar je hoeft niet je database te updaten wanneer de game wordt geupdate.
Voornamelijk omdat ik weet hoe dat werktquote:Op maandag 13 april 2015 21:31 schreef Monolith het volgende:
[..]
Dat is leuk, maar ik zie niet in waarom dit specifiek in MySQL zou moeten.
Precies, maar er zijn tegenwoordig bijvoorbeeld allerhande document databases die hun data opslaan in JSON formaat zonder vastgelegd schema waar je bovendien rechtstreeks op kunt queryen.quote:Op maandag 13 april 2015 21:35 schreef Tijn het volgende:
[..]
Voornamelijk omdat ik weet hoe dat werkt
Ja, dat weet ik. Maar wat zou het voordeel zijn om op zoiets over te stappen? Juist het queryen op die data is helemaal niet nodig, het wordt gewoon integraal naar de game gevoerd.quote:Op maandag 13 april 2015 21:37 schreef Monolith het volgende:
[..]
Precies, maar er zijn tegenwoordig bijvoorbeeld allerhande document databases die hun data opslaan in JSON formaat zonder vastgelegd schema waar je bovendien rechtstreeks op kunt queryen.
Er zijn doorgaans behoorlijke voordelen qua performance.quote:Op maandag 13 april 2015 21:39 schreef Tijn het volgende:
[..]
Ja, dat weet ik. Maar wat zou het voordeel zijn om op zoiets over te stappen? Juist het queryen op die data is helemaal niet nodig, het wordt gewoon integraal naar de game gevoerd.
Voor de gemiddelde applicatie is MySQL dan ook prima.quote:Op maandag 13 april 2015 21:47 schreef Tijn het volgende:
Ik kan me vooral voorstellen dat het handiger is om zoiets als MongoDB te gebruiken wanneer je cloud hosting gebruikt en er verschillende servers met elkaar data moeten syncen. Dat kan lastig zijn met MySQL (duplicate primary keys enzo). Maar wanneer het gewoon op 1 machine staat, heb ik weinig te klagen over de performance van MySQL, hoor.
Klopt, maar sommige gegevens wil je soms wel weer relationeel opslaan. Dan is zo'n JSON-veld wel een aardige concessie, als je een beetje van beide wilt.quote:Op maandag 13 april 2015 21:37 schreef Monolith het volgende:
[..]
Precies, maar er zijn tegenwoordig bijvoorbeeld allerhande document databases die hun data opslaan in JSON formaat zonder vastgelegd schema waar je bovendien rechtstreeks op kunt queryen.
Een andere optie is om ArangoDB te pakken, en de relaties ook gewoon als documenten op te slaan. Zoals zo vaak zijn er meerdere mogelijke oplossingen en is er niet echt een 'beste' oplossing.quote:Op maandag 13 april 2015 22:48 schreef robin007bond het volgende:
[..]
Klopt, maar sommige gegevens wil je soms wel weer relationeel opslaan. Dan is zo'n JSON-veld wel een aardige concessie, als je een beetje van beide wilt.
quote:What’s New in MySQL 5.7? (First Release Candidate)
Last week we proudly announced the first Release Candidate (RC) of MySQL 5.7. MySQL 5.7.7 includes additional enhancements and aggregates the Development Milestones Releases (DMRs) the MySQL team at Oracle previously delivered to the MySQL community.
With the first Release Candidate, it’s more important than ever that we hear your feedback on the pre-GA version in order to help ensure very high quality for the GA release.
MySQL 5.7 is an extremely exciting new version of the world’s most popular open source database that is 2x faster than MySQL 5.6, while also improving usability, manageability, and security. Some key enhancements include:
1. Performance & Scalability: Improved InnoDB scalability and temporary table performance, enabling faster online and bulk load operations, and more.
2. JSON Support: Native JSON support (JSON Labs Release).
3. Replication improvements for increased availability and performance. They include multi-source replication, multi-threaded slave enhancements, online GTIDs, and enhanced semi-sync replication.
4. Performance Schema delivering much better insights. We’ve added numerous new monitoring capabilities, reduced the footprint and overhead, and significantly improved ease of use with the new SYS Schema.
5. Security: We are fulfilling “secure by default” requirements and many new MySQL 5.7 features will help users keep their database secure.
6. Optimizer: We have rewritten large parts of the parser, optimizer, and cost model. This has improved maintainability, extendability, and performance.
7. GIS: Completely new in MySQL 5.7 and including InnoDB spatial indexes, use of Boost.Geometry, along with increased completeness and standard compliance.
[...]
Nah, dit topic is al niet zo actief.quote:Op vrijdag 1 mei 2015 22:06 schreef henrivo het volgende:
We missen eigenlijk een symfony-topic, las dat er wel een laravel-topic is
Hier op Fok, of ben je in de war met Tweakers?quote:Op vrijdag 1 mei 2015 22:06 schreef henrivo het volgende:
We missen eigenlijk een symfony-topic, las dat er wel een laravel-topic is
De vraag is hoe dynamisch het geheel moet zijn en bij wie je de genereerfunctionaliteit neerlegt: devs of users. Je huidige idee lijkt me met de gegeven informatie vooralsnog storingsgevoelig en complex in onderhoud. Content toevoegen zoals links aan een menu kan natuurlijk via een database geschieden.quote:Op donderdag 7 mei 2015 17:05 schreef robin007bond het volgende:
Wat denken jullie over deze benadering? Of zie ik een manier over het hoofd die het makkelijker zou moeten maken?
Hmm! Dat zou ook een mooie mogelijkheid zijn en is inderdaad minder foutgevoelig.quote:Op donderdag 7 mei 2015 22:57 schreef zoem het volgende:
[..]
De vraag is hoe dynamisch het geheel moet zijn en bij wie je de genereerfunctionaliteit neerlegt: devs of users. Je huidige idee lijkt me met de gegeven informatie vooralsnog storingsgevoelig en complex in onderhoud. Content toevoegen zoals links aan een menu kan natuurlijk via een database geschieden.
Forum Opties | |
---|---|
Forumhop: | |
Hop naar: |