Chandler | dinsdag 17 februari 2015 @ 07:46 | |||||||
Als je vragen hebt over PHP/MySQL, dan zit je hier goed met een vaste kliek guru's en een groot aantal regelmatige bezoekers. Beperk je vragen niet tot "hij doet het niet" of "hij geeft een fout" - onze glazen bol is kapot en we willen graag van je weten wát er niet lukt en wélke foutmelding je precies krijgt Zie ook: • PHP Dataverwerking • Officiële PHP website • PHP Documentatie • MySQL Reference Manual • Yet Another PHP Faq • PHP Cheat Sheet • PHP5 Power Programming - boek met uitleg over OOP, Pear, XML, etc Tutorials: • W3Schools PHP • W3Schools SQL Succes heren met het volgende deeltje!
| ||||||||
Monolith | dinsdag 17 februari 2015 @ 09:52 | |||||||
Ik weet niet wat je allemaal precies gedaan hebt, maar als ik even snel de volgende tabel aanmaak:
en er vervolgens wat data ingooi en de query uit de OP uitvoer, dan krijg ik gewoon 'using where, using index'. Kleine toevoeging: Ik heb het vermoeden dat de oorzaak ligt in het feit dat je MyISAM als storage engine gebruikt in plaats van INNODB. Het is voor mij te lange geleden om exact te weten waardoor het verschil wordt veroorzaakt, maar volgens mij heeft het iets te maken met de manier waarop primary keys zijn geïmplementeerd. Hier een kleine uitleg. [ Bericht 24% gewijzigd door Monolith op 17-02-2015 13:13:46 ] | ||||||||
Chandler | dinsdag 17 februari 2015 @ 13:13 | |||||||
Ik heb
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... | ||||||||
Monolith | dinsdag 17 februari 2015 @ 13:45 | |||||||
Mja, met 'krijg een -1 van de storage engine' kan ik niet zo veel. Wat gebeurt er als je een nieuwe tabel maakt met INNODB als engine en de data daarin gooit? | ||||||||
Aether | dinsdag 17 februari 2015 @ 14:47 | |||||||
http://www.percona.com/do(...)mporting_tables.html | ||||||||
KomtTijd... | dinsdag 17 februari 2015 @ 14:58 | |||||||
Volgens mij heb ik nog nooit anders dan InnoDB gebruikt? Ik dacht dat MyIsam een beetje ouderwets was? | ||||||||
Aether | dinsdag 17 februari 2015 @ 15:10 | |||||||
Voor archieven wordt het nog wel gebruikt. Kost stuk minder ruimte qua opslag. | ||||||||
Chandler | dinsdag 17 februari 2015 @ 17:47 | |||||||
Ik heb even een tmp tabel met innodb aangemaakt, maar wanneer ik de eerste insert doe... krijg ik gelijk het volgende voor m'n kiezen. INSERT INTO `video_tag_link` VALUES ( 1, 1 ) ; MySQL meldt: Documentatie #1062 - Duplicate entry '1-1' for key 'PRIMARY' Precies dezelfde DB maar dan InnoDB plus complete inserts (want SELECT * INTO tabel FROM tabel) werkte ook niet... | ||||||||
KomtTijd... | dinsdag 17 februari 2015 @ 17:59 | |||||||
lijkt me een vrij duidelijke foutmelding waar je wat mee kunt. | ||||||||
Chandler | dinsdag 17 februari 2015 @ 18:01 | |||||||
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... | ||||||||
slacker_nl | dinsdag 17 februari 2015 @ 18:54 | |||||||
Wat zegt select * from video_tag_link je? en hoe ziet die tabel eruit? | ||||||||
Monolith | dinsdag 17 februari 2015 @ 19:02 | |||||||
Dit zijn inderdaad een beetje die 'het werkt niet, help me' post waar we erg weinig mee kunnen. Als je dit soort dingen post, geef dan de tabeldefinitie, data, query, enzovoort. Probeer het ook eens op stackoverflow anders, daar zit ook nog wel de nodige kennis. | ||||||||
Chandler | dinsdag 17 februari 2015 @ 20:14 | |||||||
Bij deze een volledige uitleg. Ik heb een link tabel voor het linken van tags aan video's, deze tabel is groot, erg groot en bevat maar 2 velden (video_id en tag_id). Uit dit tabel kan ik een of meerdere tags zoeken waarbij deze tags allemaal gevonden moeten worden bij ieder video_id. Tabel:
Probleem is filesort op de volgende query:
Omzetten op wat voor manier naar InnoDB wil niet... en queries optimaliseren ook niet | ||||||||
Monolith | dinsdag 17 februari 2015 @ 20:16 | |||||||
Dat omzetten naar InnoDB niet werkt ligt toch echt aan jou of je MySQL setup. Ik krijg dat zonder moeite voor elkaar. | ||||||||
Chandler | woensdag 18 februari 2015 @ 00:15 | |||||||
Zeer vreemd Monolith, ik gebruik zelf de standaard versie van usbwebserver en zou dus gewoon moeten werken lijkt me... krijg ook verder geen andere foutmeldingen oid... | ||||||||
Chandler | woensdag 18 februari 2015 @ 01:52 | |||||||
Lag inderdaad aan mijn webserver, heb alles opnieuw geconfigureerd en hoopa!! het werkt!! nu eens al mijn tabellen omzetten naar InnoDB!! | ||||||||
Monolith | woensdag 18 februari 2015 @ 09:46 | |||||||
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. | ||||||||
#ANONIEM | woensdag 18 februari 2015 @ 11:20 | |||||||
Stel, ik heb een Maria DB-database (voetbalgerelateerd) met daarin 3 tabellen: - Divisie - Seizoen - DivisieSeizoen Divisie en Seizoen: DivisieSeizoen is de koppeltabel tussen Divisie en Seizoen, met wat extra gegevens. Links voorbeeld van de koppeling, rechts hoe het wordt opgeslagen in de tabel. Ik wil de gegevens via een HTML/PHP-formulier invoeren: Divisie kiezen uit dropdownlist (waarden uit tabel Divisie). Seizoen kiezen uit dropdownlist (waarden uit tabel Seizoen). Datums handmatig invoeren. Het resultaat hiervan wil ik opslaan in DivisieSeizoen. Ik wil dus een Divisienaam selecteren, maar de PK van de geselecteerde Divisie opslaan. Hetzelfde bij Seizoen. Hoe krijg ik dit voor elkaar? Ik bedoel, ik heb op het internet gezocht, maar kan niets vinden waar ik zelf wat mee kan... Iemand van jullie een idee, wellicht een link naar een tutorial of wat dan ook? Of denk ik verkeerd of hoort dit op een hele andere manier?! [ Bericht 1% gewijzigd door #ANONIEM op 18-02-2015 11:26:19 ] | ||||||||
ursel | woensdag 18 februari 2015 @ 11:30 | |||||||
Toon je de naam, maar de waarde die je formulier verstuurd is het ID. | ||||||||
KomtTijd... | woensdag 18 februari 2015 @ 11:47 | |||||||
Nogal een brede vraag, basically vraag je "hoe maak ik een PHP webapplicatie met database?" Watvoor framework gebruik je (if any)? En wat wil er precies niet lukken? Waar loop je op vast? | ||||||||
raptorix | woensdag 18 februari 2015 @ 18:39 | |||||||
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. | ||||||||
raptorix | woensdag 18 februari 2015 @ 18:51 | |||||||
Wij liepen trouwens ook een keer tegen een grappig index probleem aan, na een release was de performance dramatisch geworden, dit bleek achteraf omdat er een stukje SQL was aangepast waar een query werd gedaan via een UPPER cast zodat zoeken op plaats niet meer hoofdlettergevoelig was. Echter wanneer je een sqlserver database hebt die casesensitive is, je cast alles naar Hoofdletters in je query, dan zegt sql server: Mooi, dan is mijn index ook zinloos, laat ik die maar niet gebruiken | ||||||||
Monolith | woensdag 18 februari 2015 @ 19:09 | |||||||
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. | ||||||||
raptorix | woensdag 18 februari 2015 @ 20:03 | |||||||
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). | ||||||||
Monolith | woensdag 18 februari 2015 @ 20:19 | |||||||
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 | ||||||||
raptorix | woensdag 18 februari 2015 @ 20:30 | |||||||
Klopt, ik doelde dus nie op fragmentatie maar op fillfactor Ik doe tegenwoordig nog maar weinig met Relationele databases https://msdn.microsoft.com/en-us/library/ms177459.aspx | ||||||||
mstx | woensdag 18 februari 2015 @ 21:14 | |||||||
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? | ||||||||
Monolith | woensdag 18 februari 2015 @ 21:18 | |||||||
Als het een Tinyint(1) is, dan klopt dat ook gewoon. | ||||||||
KomtTijd... | woensdag 18 februari 2015 @ 21:19 | |||||||
Je hebt een bestaande database ingeladen of zo? Een boolean wordt idd altijd als tinyint(1) opgeslagen. | ||||||||
mstx | woensdag 18 februari 2015 @ 21:19 | |||||||
Tinyint(1) = 0 t/m 9 Boolean = true/false Hoe is dat het zelfde? | ||||||||
Monolith | woensdag 18 februari 2015 @ 21:21 | |||||||
Volgens mij moet je even opzoeken wat die 1 betekent. | ||||||||
wipes66 | woensdag 18 februari 2015 @ 21:22 | |||||||
die 1 betekend 1 teken lezen toch? | ||||||||
KomtTijd... | woensdag 18 februari 2015 @ 21:22 | |||||||
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. [ Bericht 14% gewijzigd door KomtTijd... op 18-02-2015 21:28:35 ] | ||||||||
Monolith | woensdag 18 februari 2015 @ 21:26 | |||||||
http://dev.mysql.com/doc/refman/5.0/en/numeric-type-overview.html Kleine correctie inderdaad, het is de display width, maar tinyint(1) wordt in mysql gezien als synoniem van boolean. | ||||||||
wipes66 | woensdag 18 februari 2015 @ 21:28 | |||||||
mysql heeft geen echte boolean, dus 'boolean' is gewoon een allias voor tinyint(1) wat 8-bit is. | ||||||||
mstx | woensdag 18 februari 2015 @ 21:31 | |||||||
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. | ||||||||
Monolith | woensdag 18 februari 2015 @ 21:36 | |||||||
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 | ||||||||
KomtTijd... | woensdag 18 februari 2015 @ 21:37 | |||||||
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. | ||||||||
mstx | woensdag 18 februari 2015 @ 21:45 | |||||||
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. | ||||||||
Boze_Appel | woensdag 18 februari 2015 @ 22:49 | |||||||
Dat krijg je met dat soort systemen. PostgreSQL heeft geen tinyint en sqllite weer wel dus mappen ze inderdaad een tinyint naar een boolean. mstx: Ik zou dan gewoon smallint gebruiken, dan heb je tenminste 32767 versnellingen voor- en achteruit of 65535 vooruit. | ||||||||
Aether | woensdag 18 februari 2015 @ 22:55 | |||||||
ENUM ('TRUE','FALSE') | ||||||||
KomtTijd... | woensdag 18 februari 2015 @ 23:57 | |||||||
Je kunt je entities toch wel handmatig aanpassen naar het goeie format lijkt me? | ||||||||
raptorix | donderdag 19 februari 2015 @ 08:51 | |||||||
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 | ||||||||
Monolith | donderdag 19 februari 2015 @ 09:36 | |||||||
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. | ||||||||
raptorix | donderdag 19 februari 2015 @ 09:45 | |||||||
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. | ||||||||
wobbel | woensdag 25 februari 2015 @ 20:35 | |||||||
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
Mijn idee, welke uiteraard niet werkt was het volgt, maar hoe moet het wel??
In beide gevallen krijg ik maar 1 veld terug, dat is 'naam' maar ik wil eigenlijk naamNodig en naamBesteld ofzo krijgen | ||||||||
#ANONIEM | woensdag 25 februari 2015 @ 20:40 | |||||||
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. [ Bericht 0% gewijzigd door #ANONIEM op 25-02-2015 20:44:54 ] | ||||||||
wobbel | woensdag 25 februari 2015 @ 21:02 | |||||||
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) | ||||||||
#ANONIEM | woensdag 25 februari 2015 @ 21:04 | |||||||
Sorry, maar dan heb je je database waarschijnlijk niet optimaal ingericht. | ||||||||
Aether | woensdag 25 februari 2015 @ 21:43 | |||||||
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:
| ||||||||
wobbel | donderdag 26 februari 2015 @ 08:19 | |||||||
Top, dit is hem inderdaad You saved my day, nu krijg inderdaad netjes de juiste namen te zien. Die kans is aanwezig, maar soms moet je werken met wat je hebt | ||||||||
Aether | donderdag 26 februari 2015 @ 10:07 | |||||||
Stabiele versie 1.0.0 appserver.io uitgebracht.http://appserver.io/ https://github.com/appserver-io/appserver | ||||||||
Monolith | donderdag 26 februari 2015 @ 11:03 | |||||||
Ik heb een beter idee. Leer Java. | ||||||||
slacker_nl | zaterdag 28 februari 2015 @ 02:22 | |||||||
Je hebt met PHP te maken, elke idioot kan dat bedacht hebben (Ik heb de draad gelezen, het komt door mysql..) | ||||||||
slacker_nl | zaterdag 28 februari 2015 @ 02:38 | |||||||
Docterine zit fout m.i. De MySQL docs zeggen: 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. http://doctrine-dbal.read(...)reference/types.html Should be possible.. | ||||||||
Monolith | zaterdag 28 februari 2015 @ 08:57 | |||||||
Dat gaat je problemen opleveren wanneer je b.v. === true doet. De == operator in PHP is aardig verneukt. | ||||||||
slacker_nl | zaterdag 28 februari 2015 @ 10:38 | |||||||
hoezo? ohhh omdat 0 === true is? | ||||||||
Monolith | zaterdag 28 februari 2015 @ 10:45 | |||||||
Nee, omdat bijvoorbeeld 3 === true false oplevert en dergelijke checks dus falen als je de daadwerkelijke int waarden gebruikt. | ||||||||
slacker_nl | zaterdag 28 februari 2015 @ 11:06 | |||||||
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 [ Bericht 5% gewijzigd door slacker_nl op 28-02-2015 11:19:38 ] | ||||||||
Monolith | zaterdag 28 februari 2015 @ 11:22 | |||||||
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. | ||||||||
Light | zondag 1 maart 2015 @ 00:21 | |||||||
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. | ||||||||
slacker_nl | zondag 1 maart 2015 @ 10:01 | |||||||
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. | ||||||||
Boze_Appel | zondag 1 maart 2015 @ 10:09 | |||||||
Doctrine gaat uit van meersere databasedrivers. Dan krijg je compromissen | ||||||||
DannyDeko | dinsdag 3 maart 2015 @ 08:26 | |||||||
Ik ben voor m'n studie bezig met wat SQL opdrachten en nu zit ik erg te tobben met wat self-joins. Het probleem is als volgt: Tabel "Persons" id name address age eyeColor gender Tabel "Likes" id personA_id → Persons personB_id → Persons Dan moet ik een query schrijven die als resultaat elke persoon geeft die iemand met blauwe ogen leuk vindt, zonder duplicates. 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. Hoe krijg ik het voor elkaar om dat te doen? | ||||||||
KomtTijd... | dinsdag 3 maart 2015 @ 09:18 | |||||||
Selecten naar likes, persons 2x joinen. | ||||||||
DannyDeko | dinsdag 3 maart 2015 @ 09:31 | |||||||
Aha, vraag me niet waarom maar ik dacht steeds Likes 2 keer te moeten joinen.
Deze werkt, thanks | ||||||||
KomtTijd... | dinsdag 3 maart 2015 @ 09:34 | |||||||
Ik blijf het een irritante notatie vinden die impliciete joins, maar zo kan ook inderdaad | ||||||||
DannyDeko | dinsdag 3 maart 2015 @ 09:36 | |||||||
Je zou het zelf dus anders gedaan hebben bedoel je? Wat dan precies, en met welke gedachte erachter? | ||||||||
justme27 | dinsdag 3 maart 2015 @ 10:01 | |||||||
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? | ||||||||
Scorpie | dinsdag 3 maart 2015 @ 10:03 | |||||||
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. | ||||||||
Monolith | dinsdag 3 maart 2015 @ 10:28 | |||||||
Je kunt stored procedures schrijven in Mysql. | ||||||||
justme27 | dinsdag 3 maart 2015 @ 10:45 | |||||||
Javascript was een voorbeeld. En ook omdat ik geen PHP kan gebruiken; mijn selectie als invoertaal is beperkt tot: java Javascript Jython Groovy Mozilla Rhino | ||||||||
justme27 | dinsdag 3 maart 2015 @ 10:47 | |||||||
Ik ben helaas geen ontwikkelaar dus dit onderdeel (ik heb ff gelezen) wordt al snel te ingewikkeld voor mij. | ||||||||
KomtTijd... | dinsdag 3 maart 2015 @ 11:43 | |||||||
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? | ||||||||
qu63 | dinsdag 3 maart 2015 @ 11:49 | |||||||
http://nl.wikipedia.org/wiki/Elfproef | ||||||||
Monolith | dinsdag 3 maart 2015 @ 11:51 | |||||||
Het lijkt meer een verzoek tot het aanleveren van knip-en-plak code. | ||||||||
#ANONIEM | dinsdag 3 maart 2015 @ 12:36 | |||||||
Ik wil Turkse karakters weergeven, maar *iets* lijkt niet goed te gaan. Ik krijg een vraagteken in plaats van 'ş'. Zie het voorbeeld onderaan. - Collation tabel: utf8_turkish_ci - Collation van VARCHAR-kolommen: utf8_turkish_ci Ik ben er achter dat je 'SET NAMES UTF8' moet gebruiken. Maar wat ik ook doe, ik krijg een blanco pagina te zien als ik 'MYSQL_ATTR_INIT_COMMAND' gebruik. Code:
Ook andere dingen geprobeerd zoals:
Maar ik krijg het maar niet aan de praat. PHP-versie is 5.5.20. Iemand een idee? Raar genoeg werkte het hiervoor wel... :S. [ Bericht 0% gewijzigd door #ANONIEM op 03-03-2015 12:37:00 ] | ||||||||
Monolith | dinsdag 3 maart 2015 @ 12:51 | |||||||
Blanco pagina's betekenen doorgaans dat je een error krijgt die je niet zet. Zet in ieder geval de error reporting / weergave even aan:
| ||||||||
#ANONIEM | dinsdag 3 maart 2015 @ 13:20 | |||||||
Gedaan. Geen foutmeldingen. Het wordt in zijn geheel niet meer weergegeven. Ervoor: Erna: | ||||||||
Chandler | dinsdag 3 maart 2015 @ 13:24 | |||||||
Kan het zijn dat je de data al verkeerd hebt opgeslagen in de database?? heb ik ook wel eens gehad... | ||||||||
raptorix | dinsdag 3 maart 2015 @ 13:27 | |||||||
MUST READ, REPEAT, MUST READ! http://www.joelonsoftware.com/articles/Unicode.html | ||||||||
#ANONIEM | dinsdag 3 maart 2015 @ 13:28 | |||||||
Thanks, zal het zo doornemen! [ Bericht 3% gewijzigd door #ANONIEM op 03-03-2015 13:28:19 ] | ||||||||
#ANONIEM | dinsdag 3 maart 2015 @ 13:53 | |||||||
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. | ||||||||
DannyDeko | dinsdag 3 maart 2015 @ 14:29 | |||||||
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? | ||||||||
Monolith | dinsdag 3 maart 2015 @ 15:29 | |||||||
Dit is geen huiswerktopic. maar om je een hint te geven, je moet in ieder geval 3x iets uit Persons selecteren in dit geval. | ||||||||
#ANONIEM | dinsdag 3 maart 2015 @ 15:31 | |||||||
Als het goed is wel, zal ik vanavond naar kijken. Thanks. | ||||||||
#ANONIEM | dinsdag 3 maart 2015 @ 15:32 | |||||||
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? [ Bericht 1% gewijzigd door #ANONIEM op 03-03-2015 15:40:37 ] | ||||||||
DannyDeko | dinsdag 3 maart 2015 @ 15:43 | |||||||
I know, ik ben ook niet op zoek naar directe antwoorden. (; 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 | ||||||||
#ANONIEM | dinsdag 3 maart 2015 @ 15:46 | |||||||
Wat mag je nu wel gebruiken dan? Er moet op de een of andere manier toch een telling plaatsvinden... | ||||||||
DannyDeko | dinsdag 3 maart 2015 @ 16:08 | |||||||
Ik heb het maar gewoon gebruikt, want zoals je al zei zal er toch op een manier geteld moeten worden.
Zo is ie valid. Maar zou je me kunnen uitleggen waarom " GROUP BY P1.name " hier nodig is? | ||||||||
#ANONIEM | dinsdag 3 maart 2015 @ 16:10 | |||||||
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.)
Alhoewel, ik test het op TSQL; dat wijkt ietwat af van MySQL. Draait jouw code met de HAVING die jij hebt?! [ Bericht 1% gewijzigd door #ANONIEM op 03-03-2015 16:16:55 ] | ||||||||
DannyDeko | dinsdag 3 maart 2015 @ 16:18 | |||||||
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. | ||||||||
#ANONIEM | dinsdag 3 maart 2015 @ 16:30 | |||||||
Wat meer info over de HAVING: http://en.wikipedia.org/wiki/Having_%28SQL%29. Ik vind die impliciete joins van jou maar niets. . | ||||||||
henrivo | vrijdag 6 maart 2015 @ 17:26 | |||||||
Goeie vrijdagmiddag! Ik ben inmiddels een paar dagen geleden vastgelopen tegen iets waar ik écht even geen raad mee weet. Nu ook weer, 4 uur achter elkaar zitten uitproberen, testen, niks lijkt te werken. Ik faal De situatie is als volgt: ik heb tabel Article met o.a. de column articleTags:
En tabel ArticleTag
Nu wil ik een cloudwolkje maken van laten we zeggen 5-10 keywords, dus roep ik het volgende op in de controller:
Waarna ik $articleTags in een for-loop wil laten doorlopen in de view Kunnen jullie mij vertellen wat ik fout doe? Wat ik ook probeer ik blijf steeds foutmeldingen krijgen n.a.v. $qb Edit: ik wil dus dat wanneer deze view wordt opgevraagd, het aantal artikelen opnieuw wordt berekend | ||||||||
KomtTijd... | vrijdag 6 maart 2015 @ 18:03 | |||||||
"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. | ||||||||
henrivo | vrijdag 6 maart 2015 @ 18:27 | |||||||
Dus eigenlijk gewoon een kolommetje erbij met 'views' en die dan per actie ++ of -1 laten berekenen? Sucks. Anders begrijp ik je even verkeerd | ||||||||
KomtTijd... | vrijdag 6 maart 2015 @ 18:35 | |||||||
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. | ||||||||
henrivo | vrijdag 6 maart 2015 @ 18:41 | |||||||
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 is | ||||||||
henrivo | vrijdag 6 maart 2015 @ 19:39 | |||||||
Kortgezegde wil ik dus van elk bestaande tag berekenen hoeveel articles er aan gekoppeld zitten. Heeft iemand enig idee hoe? | ||||||||
TwenteFC | vrijdag 6 maart 2015 @ 19:41 | |||||||
SELECT COUNT(tag_id) FROM articles_tags GROUP BY article_id | ||||||||
Reemi | vrijdag 6 maart 2015 @ 20:04 | |||||||
Is: SELECT COUNT(article_id) FROM articles_tags GROUP BY tag_id Niet logischer? Nu tel je voor elk bericht het aantal tags. | ||||||||
henrivo | vrijdag 6 maart 2015 @ 20:10 | |||||||
Snappen jullie nu waarom ik de draad kwijt ben? | ||||||||
TwenteFC | vrijdag 6 maart 2015 @ 20:21 | |||||||
Lange dag. Maar je hebt inderdaad gelijk ja, iets te snel overheen gelezen | ||||||||
henrivo | vrijdag 6 maart 2015 @ 20:28 | |||||||
Ik ook, maar wanneer ik dit doe:
| ||||||||
TwenteFC | vrijdag 6 maart 2015 @ 22:13 | |||||||
Probeer het eerst in PhpMyAdmin/HeidiSQL/SQLyog oid om de juiste data te krijgen. | ||||||||
henrivo | vrijdag 6 maart 2015 @ 22:18 | |||||||
Thanks, ga ik even mee aan de slag Edit: Dat gaat trouwens niet zomaar, DQL != SQL. Ben al dagen bezig met queries, maar krijg nog steeds niet het gewenste resultaat (lees: een array terugkrijgen van tags met daaraan gekoppeld in hoeveel artikelen ze voorkomen) [ Bericht 14% gewijzigd door henrivo op 06-03-2015 22:31:33 ] | ||||||||
djkoelkast | dinsdag 10 maart 2015 @ 12:50 | |||||||
Ik heb hier een exportscript wat ik wil aanpassen, normaal gaat me dat goed af, maar hier loop ik echt even vast. Voorbeeldje:
Ik wil alleen first name en last name in 1 veld hebben. Maar nog wel meer van die dingetjes waar ik niet uit kom, iemand die me hier in kan assisteren? | ||||||||
KomtTijd... | dinsdag 10 maart 2015 @ 13:16 | |||||||
http://php.net/manual/en/language.operators.string.php | ||||||||
djkoelkast | woensdag 11 maart 2015 @ 23:21 | |||||||
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è? | ||||||||
Monolith | woensdag 11 maart 2015 @ 23:23 | |||||||
Wellicht kun je wat meer informatie in dit topic posten. Ik zie enkel een array structuur. Wat je doet, wat je wilt bereiken en waar het probleem ligt zie ik daar niet in. | ||||||||
KomtTijd... | donderdag 12 maart 2015 @ 01:27 | |||||||
Wat voor foutmelding kreeg je dan toen je het probeerde? Of wat is het probleem? We kunnen niet ruiken wat je verkeerd doet als je alleen maar meldt dat het niet lukt hè. | ||||||||
djkoelkast | donderdag 12 maart 2015 @ 09:49 | |||||||
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 | ||||||||
KomtTijd... | donderdag 12 maart 2015 @ 09:55 | |||||||
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) | ||||||||
Crutch | vrijdag 13 maart 2015 @ 09:22 | |||||||
Post hier je code, daar hebben we veel meer aan. | ||||||||
djkoelkast | vrijdag 13 maart 2015 @ 10:11 | |||||||
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. | ||||||||
KomtTijd... | vrijdag 13 maart 2015 @ 10:12 | |||||||
Dan eerst daar iets aan doen. http://php.net/manual/en/function.error-reporting.php | ||||||||
slacker_nl | zaterdag 14 maart 2015 @ 08:48 | |||||||
Je moet dat ene doen waardoor het gaat werken. | ||||||||
Monolith | zaterdag 14 maart 2015 @ 11:29 | |||||||
Dit is een beetje als vragen om hulp bij een auto die niet wil starten en dan een foto van het kinderzitje laten zien. | ||||||||
djkoelkast | zaterdag 14 maart 2015 @ 11:57 | |||||||
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. | ||||||||
qu63 | zaterdag 14 maart 2015 @ 12:35 | |||||||
Nou, open de motorkap dan kunnen we kijken wat er in zit | ||||||||
KomtTijd... | zaterdag 14 maart 2015 @ 12:47 | |||||||
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. | ||||||||
djkoelkast | zaterdag 14 maart 2015 @ 12:55 | |||||||
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. | ||||||||
KomtTijd... | zaterdag 14 maart 2015 @ 13:02 | |||||||
Sja als je niet op een normale manier geholpen wilt worden is dat je oplossing. Succes! | ||||||||
TwenteFC | zaterdag 14 maart 2015 @ 15:01 | |||||||
Een competent iemand erbij halen zou een hoop schelen. | ||||||||
slacker_nl | zaterdag 14 maart 2015 @ 15:34 | |||||||
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. | ||||||||
Wicketd | zaterdag 14 maart 2015 @ 16:00 | |||||||
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. [ Bericht 26% gewijzigd door Wicketd op 14-03-2015 16:06:45 ] | ||||||||
Pakspul | zaterdag 14 maart 2015 @ 22:28 | |||||||
Leer debuggen, minimaliseer het probleem. Kijk naar waardes van variabelen. Als die verschillen van verwachting moet je het probleem achter halen. Trouwens je hoeft niet al je code te tonen. Alleen waar het mis gaat. Wij gaan je werk niet doen, maar we willen wel helpen. | ||||||||
Tijn | zaterdag 14 maart 2015 @ 22:44 | |||||||
Alsof zo'n CSV exporteerscriptje zulke speciale code bevat dat je dat niet zou mogen posten | ||||||||
Boze_Appel | zaterdag 14 maart 2015 @ 23:49 | |||||||
Lijkt mij legitiem. Kinderen zijn de oorzaak van alle problemen. | ||||||||
Boze_Appel | zaterdag 14 maart 2015 @ 23:50 | |||||||
Sowieso klopt zijn array met een comma aan het einde niet. | ||||||||
Pakspul | zondag 15 maart 2015 @ 08:16 | |||||||
jawel, ik doe dat ook altijd zo. Mocht je later iets willen toevoegen kun je direct doorschrijven. | ||||||||
#ANONIEM | zondag 15 maart 2015 @ 09:07 | |||||||
[ Bericht 0% gewijzigd door #ANONIEM op 15-03-2015 09:07:53 ] | ||||||||
mstx | zondag 15 maart 2015 @ 09:17 | |||||||
Bij de meeste frameworks wordt dat zelfs aangeraden in de coding conventions, zoals bij Zend:
| ||||||||
#ANONIEM | zondag 15 maart 2015 @ 09:21 | |||||||
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. | ||||||||
Pakspul | zondag 15 maart 2015 @ 10:22 | |||||||
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. | ||||||||
Crutch | zondag 15 maart 2015 @ 13:49 | |||||||
Post gewoon het stukje waarin je de array wil sorteren o.i.d. Wat jij wil kan op honderd manieren, maar het zal erg helpen als we een aantal regels code kunnen kunnen zien waarin je het probeert. Daarbij maakt het mij echt geen shit uit hoe prutserig, knullig of omslachtig je het probeert, laat ons je er gewoon mee helpen. | ||||||||
TwenteFC | zondag 15 maart 2015 @ 14:52 | |||||||
Het is lekker makkelijk, als er wat bij moet komen is het control+d op die lijn, en de index/waarde aanpassen en gaan. | ||||||||
Crutch | zondag 15 maart 2015 @ 15:51 | |||||||
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. | ||||||||
#ANONIEM | zondag 15 maart 2015 @ 16:00 | |||||||
Het is verwarrend inderdaad, naar mijn mening. Volgens mij is PHP de enige programmeertaal die dit toestaat. | ||||||||
Tijn | zondag 15 maart 2015 @ 16:14 | |||||||
Nee hoor, in Javascript is het ook geen probleem.
Dit werkt gewoon | ||||||||
Crutch | zondag 15 maart 2015 @ 16:33 | |||||||
Oh god, is het heus? Ik kan hier niet mee omgaan. | ||||||||
#ANONIEM | zondag 15 maart 2015 @ 16:34 | |||||||
| ||||||||
Monolith | zondag 15 maart 2015 @ 16:42 | |||||||
Gewoon fatsoenlijke programmeertalen gebruiken. | ||||||||
mstx | zondag 15 maart 2015 @ 16:45 | |||||||
[ Bericht 6% gewijzigd door mstx op 15-03-2015 16:58:13 ] | ||||||||
Tijn | zondag 15 maart 2015 @ 16:45 | |||||||
Het is geen valide JSON, dat scheelt misschien een beetje | ||||||||
Tijn | zondag 15 maart 2015 @ 17:00 | |||||||
Welke stel je voor? | ||||||||
Robuustheid | zondag 15 maart 2015 @ 17:01 | |||||||
Clojure. | ||||||||
Robuustheid | zondag 15 maart 2015 @ 17:02 | |||||||
Welke talen zijn dat? Ik heb wel een vermoeden, maar weet het niet geheel zeker. | ||||||||
Monolith | zondag 15 maart 2015 @ 17:02 | |||||||
Scala. | ||||||||
mstx | zondag 15 maart 2015 @ 17:13 | |||||||
C# en C++ | ||||||||
#ANONIEM | zondag 15 maart 2015 @ 17:22 | |||||||
Geeft de compiler ook geen warnings? | ||||||||
Monolith | zondag 15 maart 2015 @ 17:26 | |||||||
Oh dat is niet de reden dat JavaScript, maar vooral PHP zulke beroerde talen zijn hoor. | ||||||||
#ANONIEM | zondag 15 maart 2015 @ 17:38 | |||||||
In C met GCC en -Wall wordt er ook geen foutmelding weergeven. | ||||||||
KomtTijd... | zondag 15 maart 2015 @ 18:54 | |||||||
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. | ||||||||
#ANONIEM | zondag 15 maart 2015 @ 19:56 | |||||||
Dat kan ik echt niet bevatten. Het is voor mij echt... Onbegrijpelijk. | ||||||||
Aether | zondag 15 maart 2015 @ 20:19 | |||||||
Beste van twee werelden door Nederlands bedrijf http://www.php-cpp.com | ||||||||
slacker_nl | zondag 15 maart 2015 @ 20:24 | |||||||
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, | ||||||||
Light | zondag 15 maart 2015 @ 20:29 | |||||||
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. | ||||||||
Tijn | zondag 15 maart 2015 @ 20:39 | |||||||
Zit je zo vaak handmatig JSON-files te schrijven, dan? | ||||||||
slacker_nl | zondag 15 maart 2015 @ 20:42 | |||||||
Ja, chef data bag files zijn JSON. | ||||||||
KomtTijd... | zondag 15 maart 2015 @ 20:43 | |||||||
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. | ||||||||
#ANONIEM | zondag 15 maart 2015 @ 20:44 | |||||||
Gewoon terecht. Die trailing komma is voor mensen met een komma-fetish. Plus het gaat me om het principe dat het een scheidingsteken is voor elementen. Je gaat toch ook niet achter parameters een extra komma zetten voor het geval de methode een extra parameter krijgt? [ Bericht 5% gewijzigd door #ANONIEM op 15-03-2015 20:57:33 ] | ||||||||
Monolith | zondag 15 maart 2015 @ 20:48 | |||||||
Het is een data format, geen transport protocol. | ||||||||
slacker_nl | zondag 15 maart 2015 @ 20:52 | |||||||
Gewoon terecht. Die trailing komma is voor mensen met een komma-fetish. Plus het gaat me om het principe dat het een scheidingsteken is voor elementen. Je gaat toch ook niet achter parameters een extra komma zetten voor het geval de methode een extra parameter krijgt? [/quote] jawel. Ik heb regelmatig:
Plus als ik alles ga sorten en zulks, breekt er niks omdat de komma plots verdwenen is midden in m'n lijst. | ||||||||
#ANONIEM | zondag 15 maart 2015 @ 20:58 | |||||||
Inderdaad. HTTP is een transport protocol, maar JSON niet. | ||||||||
KomtTijd... | zondag 15 maart 2015 @ 21:04 | |||||||
Je hebt gelijk maar je begrijpt wat ik bedoel | ||||||||
Monolith | zondag 15 maart 2015 @ 21:11 | |||||||
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. | ||||||||
#ANONIEM | zondag 15 maart 2015 @ 21:21 | |||||||
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:
Jij zou dat ook echt zo doen? | ||||||||
KomtTijd... | zondag 15 maart 2015 @ 21:30 | |||||||
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(). | ||||||||
#ANONIEM | zondag 15 maart 2015 @ 21:32 | |||||||
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. | ||||||||
KomtTijd... | zondag 15 maart 2015 @ 21:35 | |||||||
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. | ||||||||
#ANONIEM | zondag 15 maart 2015 @ 21:37 | |||||||
Uiteraard bedoel ik een object. Maar dat vind ik niet heel logisch. Het is namelijk goed gebruik dat je accessor-methodes gebruikt voor velden in plaats van de variabelen public te maken. | ||||||||
KomtTijd... | zondag 15 maart 2015 @ 21:45 | |||||||
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. | ||||||||
Light | zondag 15 maart 2015 @ 22:47 | |||||||
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. | ||||||||
Monolith | zondag 15 maart 2015 @ 22:53 | |||||||
Valt wel mee. Vaak worden de Javabeans conventies gebruikt. In Java heb je bovendien nog weer transient voor zaken die niet geserialized moeten worden. | ||||||||
Aether | maandag 16 maart 2015 @ 11:12 | |||||||
MySQL 5.7: InnoDB Intrinsic Tables The MySQL Optimizer sometimes needs a temporary data-store during query processing, for storing intermediate results. Before MySQL 5.7, this need was serviced exclusively using a combination of the HEAP/MEMORY storage engine (for smaller tables) and the MyISAM storage engine (for larger tables). You can find more information on when disk based temporary tables (MyISAM or InnoDB) are used instead of MEMORY tables here. The InnoDB storage engine has been the default engine used for user tables since MySQL 5.6, but MyISAM was still used for internal disk based temporary tables (for some related notes, see this excellent blog post by Jaime Crespo). This legacy behavior lead to many headaches, both for our users and for our developers. For example, see Stewart Smith’s excellent write up on some of the related problems. In order to address the related issues in MySQL 5.7, we’ve had to do a lot of work within both InnoDB and the Optimizer to lay the groundwork for what we’ll talk about next. You can read about all of the related 5.7 work leading up to this point here. Optimizer Switches to InnoDB Instrinsic Tables InnoDB is our MVCC ACID compliant storage engine, and as part of our larger effort to decouple the MyISAM storage engine from MySQL itself so that it becomes an optional engine, starting with MySQL 5.7.6 InnoDB is now the default storage engine used for internal disk based temporary tables. The engine used can be controlled using the new internal_tmp_disk_storage_engine server option. In our efforts to make this change in MySQL 5.7.6, we have made changes to InnoDB so that it performs as good or better (often far better) than MyISAM when used for internal disk based temporary tables. To fulfill this use-case, we created a new type of table within InnoDB called intrinsic tables, which have relaxed MVCC and ACID semantics. These tables are a special type of temporary InnoDB table that do not perform any UNDO or REDO logging (REDO logging is disabled for all temporary InnoDB tables). As the name suggests, these tables are meant for internal use only and thus can only be used by an internal MySQL module such as the Optimizer. In other words, end-users will not be able to explicitly create these new types of tables (they are also not visible in the innodb_temp_table_info table). We will, however, leverage this new type of table for future end-user focused work. So stay tuned! […] | ||||||||
slacker_nl | maandag 16 maart 2015 @ 11:24 | |||||||
Of je nou named parameters of niet gebruikt, maakt niet uit of je wel/geen objecten gebruikt in je calls. Maar in functies heb ik die stijl niet nodig, in perl kan je het zo doen:
| ||||||||
Crohnjurist | maandag 16 maart 2015 @ 15:04 | |||||||
Wellicht is hier iemand die me kan helpen. Ik werk via MS Acces met een Databank. Sinds kort heb ik beetje kennis van SQL, maar hier kom ik even niet uit. Ik heb een tabel met daarin een datum, ik wil graag 2 maanden bij deze datum optellen. Ik kom op internet alleen de DateAdd functie tegen, maar op de een of andere manier werkt het niet. Ik heb het volgende ingevoerd: DateAdd("m",2, [ Date ] ) Acces geeft de foutcode: De syntax van de expressie die u hebt opgegeven, is ongeldig. Er ontbreekt een operand of operator, u hebt een ongeldig teken of ongeldige komma opgegeven of u hebt de tekst in de expressie niet tussen aanhalingstekens geplaatst. | ||||||||
slacker_nl | maandag 16 maart 2015 @ 16:43 | |||||||
denk dat dit het moet zijn:
Volgens mij pikt ie de spaties rond "Date" niet. | ||||||||
Crohnjurist | dinsdag 17 maart 2015 @ 09:57 | |||||||
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? | ||||||||
slacker_nl | dinsdag 17 maart 2015 @ 10:02 | |||||||
Nope, ik doe niet aan Access (het is ook wat offtopic voor dit topic overigens). | ||||||||
Crohnjurist | dinsdag 17 maart 2015 @ 10:03 | |||||||
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 | ||||||||
Darkomen | dinsdag 17 maart 2015 @ 13:44 | |||||||
Heb hier eerder ook een issue mee gehad, oudere versies van IE vinden het niet leuk, nieuwere vallen hier niet over. Trailing comma is recent in JS toegestaan als ik het goed is. Edit: ok, spuit elf met een late reactie [ Bericht 8% gewijzigd door Darkomen op 17-03-2015 14:06:06 ] | ||||||||
Monolith | dinsdag 17 maart 2015 @ 13:51 | |||||||
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? | ||||||||
KomtTijd... | dinsdag 17 maart 2015 @ 13:59 | |||||||
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) | ||||||||
Crohnjurist | dinsdag 17 maart 2015 @ 14:11 | |||||||
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? | ||||||||
Monolith | dinsdag 17 maart 2015 @ 14:29 | |||||||
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. | ||||||||
Crohnjurist | dinsdag 17 maart 2015 @ 14:46 | |||||||
Haha oké, in ieder geval bedankt tot zover! | ||||||||
n8n | woensdag 18 maart 2015 @ 12:46 | |||||||
werkt zoiets met php (en zo ja, wat is de juiste markup)? $var = ( isset( $this-when-true ) : $or-else ); | ||||||||
Rockfire | woensdag 18 maart 2015 @ 12:49 | |||||||
| ||||||||
n8n | woensdag 18 maart 2015 @ 12:57 | |||||||
$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 | ||||||||
Monolith | woensdag 18 maart 2015 @ 13:21 | |||||||
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? | ||||||||
mstx | woensdag 18 maart 2015 @ 13:30 | |||||||
Volgens mij krijg je dan alsnog een notice als je een niet-gedefinieerde variabele aan die functie meegeeft. | ||||||||
Monolith | woensdag 18 maart 2015 @ 13:38 | |||||||
Dat wel ja, maar ik weet niet of het erg is. Het geeft wel weer aan hoe enorm slecht PHP in elkaar steekt. | ||||||||
mstx | woensdag 18 maart 2015 @ 13:42 | |||||||
Wat is er precies slecht aan? | ||||||||
Monolith | woensdag 18 maart 2015 @ 13:49 | |||||||
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. | ||||||||
Aether | woensdag 18 maart 2015 @ 14:08 | |||||||
Vanaf PHP 5.3 kun je ook gebruiken: $var = $this-when-true ?: $or-else; [ Bericht 33% gewijzigd door Aether op 18-03-2015 14:14:18 ] | ||||||||
KomtTijd... | woensdag 18 maart 2015 @ 14:12 | |||||||
Isset() ís een language construct. | ||||||||
Monolith | woensdag 18 maart 2015 @ 14:23 | |||||||
Oh ja, dat klopt. Het staat alleen in de docs onder 'variable handling function'. Maar dan nog is het feit dat er een notice is voor het gebruik van niet gedefinieerde variabelen, die enkel wordt onderdrukt in dit soort constructs of als expliciet @$var in de defaultIfNotSet call natuurlijk. [ Bericht 14% gewijzigd door Monolith op 18-03-2015 14:31:42 ] | ||||||||
Tijn | woensdag 18 maart 2015 @ 14:40 | |||||||
Dat is erg? | ||||||||
Monolith | woensdag 18 maart 2015 @ 14:46 | |||||||
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. Het is zoals ik al aangaf het gevolg van het feit dat PHP van scripttaaltje met een brakke globale scope is geëvolueerd tot iets wat op een volwaardige OO taal moet lijken, maar dat neemt niet weg dat het nou niet bepaald een wenselijke oplossing is. | ||||||||
Tijn | woensdag 18 maart 2015 @ 14:58 | |||||||
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? | ||||||||
Monolith | woensdag 18 maart 2015 @ 15:23 | |||||||
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. | ||||||||
Tijn | woensdag 18 maart 2015 @ 15:28 | |||||||
Gebruikers kunnen het alleen te zien krijgen als je display_errors aan hebt staan, wat je sowieso niet moet doen in een productieomgeving. Standaard is PHP niet zo geconfigureerd dat errors (laat staan notices) worden weergegeven, die worden alleen gelogd. | ||||||||
n8n | donderdag 19 maart 2015 @ 09:26 | |||||||
Mooi die discussie met extra informatie die dan naar boven komt drijven. Vaak veel waardevoller dan stackoverflow. Php heeft dus gewoon een $var autoloader nodig Het ging hier trouwens om een $_GET return dus ik zet de return waarde wel naar false als deze niet bestaat (want dat zou moeten werken) | ||||||||
n8n | donderdag 19 maart 2015 @ 09:43 | |||||||
Andere vraag qua design: Ik heb een database met alleen content, ik wil bij het openen van een pagina alle _GET['key']'s vergelijken met alle tables’ in die database. tables: 'page', 'item', 'section', deze zet ik in een array ($table). Ik loop over de array en zeg dan
'data' is een class die alle content van de table in een array zet. Wat ik dan heb is een soort table autoloader: kijk of de table relevant is voor deze pagina, table wordt geladen. Is het verstandig om hele tabellen virtueel in php te gooien? Het aantal records blijft erg minimaal. Dan heb ik dus automatisch per table een nieuwe instance van m'n data class waarin ik dan weer take, trim, get, when, unless, etc... methods in kan zetten. Bijvoorbeeld:
[ Bericht 25% gewijzigd door n8n op 19-03-2015 10:06:16 ] | ||||||||
KomtTijd... | donderdag 19 maart 2015 @ 10:36 | |||||||
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. | ||||||||
n8n | donderdag 19 maart 2015 @ 10:44 | |||||||
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. dus /?page=home wordt dan iets als: select * from 'page' where key 'home'. Dat valt toch wel mee? Op die pagina heb ik dan automatisch een $page class waar alle data in staat die ik in de template dan weer kan benaderen/uitspugen met methods: $page->html('title'); // extract and parse title for this page Heb dat afgekeken van http://getkirby.com, de site wordt ook niet groot (en gaat ook niet bijster veel groeien). | ||||||||
Monolith | donderdag 19 maart 2015 @ 10:53 | |||||||
Riep daar iemand SQL injection? | ||||||||
KomtTijd... | donderdag 19 maart 2015 @ 10:54 | |||||||
Je bent dus min of meer je eigen ORM aan het uitvinden? Daar is op zich niets mis mee nee. | ||||||||
KomtTijd... | donderdag 19 maart 2015 @ 10:56 | |||||||
riep daar iemand prepared statements? | ||||||||
n8n | donderdag 19 maart 2015 @ 10:57 | |||||||
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. | ||||||||
Monolith | donderdag 19 maart 2015 @ 10:59 | |||||||
Natuurlijk, maar lijkt me relevant dat hij daar even rekening mee houdt. | ||||||||
KomtTijd... | donderdag 19 maart 2015 @ 11:02 | |||||||
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. | ||||||||
n8n | donderdag 19 maart 2015 @ 11:06 | |||||||
user input zoals een get varible zoals /?page=malafide-code. Dat vang je af met pdo/prepared statements? Nu ik weet wat/dat een orm is zal ik even naar best practice voorbeelden kijken ja. Jammere vind ik wel altijd dat voorbeelden vaak enorm de diepte in gaan met alle mogelijke randvoorwaarden terwijl ik het juist basic wil houden (al is veiligheid uiteraard basic) | ||||||||
Monolith | donderdag 19 maart 2015 @ 11:32 | |||||||
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. | ||||||||
n8n | donderdag 19 maart 2015 @ 11:47 | |||||||
de table names zet ik in een var:
[ Bericht 12% gewijzigd door n8n op 19-03-2015 11:53:19 ] | ||||||||
n8n | donderdag 19 maart 2015 @ 18:27 | |||||||
Code op 40 manieren gerefactored voordat ik bedacht dat je in php de global scope moet definiëren. Aaaaarggh | ||||||||
slacker_nl | donderdag 19 maart 2015 @ 20:39 | |||||||
Ow perl
| ||||||||
n8n | donderdag 19 maart 2015 @ 23:06 | |||||||
Al waardeer ik php een stuk beter nu ik redelijk met classes weet om te gaan. Next up: een pdo mysql controller en een simpele autoloader. | ||||||||
TwenteFC | zaterdag 21 maart 2015 @ 12:49 | |||||||
In php 7
| ||||||||
Robuustheid | zaterdag 21 maart 2015 @ 22:05 | |||||||
Je kan PHP 7 al uitproberen dan? De meest recente versie die gebruikt kan worden, is bij ons nog steeds PHP 5.6 | ||||||||
KomtTijd... | zondag 22 maart 2015 @ 00:42 | |||||||
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. | ||||||||
Robuustheid | zondag 22 maart 2015 @ 22:30 | |||||||
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. | ||||||||
#ANONIEM | maandag 23 maart 2015 @ 06:26 | |||||||
http://www.phpclasses.org(...)inally-Approved.html EINDELIJK! | ||||||||
#ANONIEM | maandag 23 maart 2015 @ 09:28 | |||||||
Dat is wel mooi. | ||||||||
bondage | maandag 23 maart 2015 @ 14:37 | |||||||
Hier nog mensen belang bij een leuke functie als database opschoon mannetje? https://www.starapple.nl/vacatures/58-sql-dba/ _ | ||||||||
Boze_Appel | maandag 23 maart 2015 @ 15:07 | |||||||
| ||||||||
#ANONIEM | maandag 23 maart 2015 @ 16:37 | |||||||
| ||||||||
Monolith | maandag 23 maart 2015 @ 16:37 | |||||||
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. | ||||||||
bondage | maandag 23 maart 2015 @ 16:41 | |||||||
Dit is inderdaad een voorbeeld van hoe je het absoluut niet moet doen. Leuk aanbod maar ik laat het liever aan me voorbij gaan | ||||||||
n8n | maandag 23 maart 2015 @ 21:39 | |||||||
beter dan de eeuwige zoektocht naar een ondernemende teamplayer die van aanpakken weet. | ||||||||
Monolith | maandag 23 maart 2015 @ 21:51 | |||||||
Zie jij dat vaak in vacatures? Ik zie toch voornamelijk zwaar op de inhoud gerichte vacatures voorbij komen. | ||||||||
TwenteFC | maandag 23 maart 2015 @ 22:46 | |||||||
Nog niet geprobeerd nee, maar ik hou gewoon de RFC's in de gaten https://wiki.php.net/rfc/isset_ternary | ||||||||
n8n | maandag 23 maart 2015 @ 23:03 | |||||||
Ik lees ze eigenlijk vrijwel nooit, het zijn wel de vervelende pro-actieve teksten die negatief opvallen (geschreven door zo’n ‘vlotte’ marketing-asshole). | ||||||||
Monolith | maandag 23 maart 2015 @ 23:21 | |||||||
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. | ||||||||
TwenteFC | dinsdag 24 maart 2015 @ 00:20 | |||||||
Voor de grap HHVM eens geinstalleerd, maar dayum .. dat vliegt écht hard. Niet dat mijn kut test wat zegt, maar toch; Blanco Laravel 5 installatie. 1 view Laravel 5 App met 5 views. [ Bericht 55% gewijzigd door TwenteFC op 24-03-2015 00:48:13 ] | ||||||||
Aether | dinsdag 24 maart 2015 @ 14:04 | |||||||
Geen PHP-versie maar interessante module om vectorafbeeldingen te maken op basis van "ASCII art". Ga misschien kijken of/hoe het in PHP is te maken • Replacing Photoshop with NSString • ASCII Image | ||||||||
Chandler | dinsdag 24 maart 2015 @ 16:45 | |||||||
https://www.google.nl/search?q=php+image+to+ascii+script | ||||||||
Aether | dinsdag 31 maart 2015 @ 15:22 | |||||||
PHP Generics
| ||||||||
Feola | dinsdag 31 maart 2015 @ 15:39 | |||||||
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:
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] | ||||||||
mstx | dinsdag 31 maart 2015 @ 15:55 | |||||||
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. | ||||||||
Feola | dinsdag 31 maart 2015 @ 16:14 | |||||||
Thanks, ik zie het, het is de base href. Maar die heb ik nodig, anders zal ik alles moeten omzetten naar absolute paden. | ||||||||
Crutch | zondag 5 april 2015 @ 11:05 | |||||||
Is het niet je browser die een request doet naar je favicon.ico? | ||||||||
davedavy | zondag 5 april 2015 @ 17:36 | |||||||
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:
https://naiboo.wordpress.(...)ys-or-10080-minutes/ Maar die doet niks Wat doe ik fout? | ||||||||
bondage | zondag 5 april 2015 @ 17:43 | |||||||
Krijg je helemaal geen output? Alleen jpg verwijderen zou je hiermee moeten kunnen doen: $fileTypes="*.*"; veranderen in $fileTypes="*.jpg"; | ||||||||
davedavy | zondag 5 april 2015 @ 17:54 | |||||||
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. | ||||||||
TwenteFC | zondag 5 april 2015 @ 17:58 | |||||||
Heb je wel de foutmeldingen aan staan? En zijn er uberhaupt .jpg afbeeldingen die ouder dan 7 dagen zijn? | ||||||||
Monolith | zondag 5 april 2015 @ 18:00 | |||||||
Ik zou eerst eens debuggen op zijn PHP's. Oftewel echo de verschillende variabelen om te zien of er überhaupt files gevonden worden, hoe oud ze zijn, enzovoort. | ||||||||
davedavy | zondag 5 april 2015 @ 18:01 | |||||||
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:
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? | ||||||||
TwenteFC | zondag 5 april 2015 @ 18:03 | |||||||
Ik vermoed dan inderdaad dat je niet in de juiste folder aan het kijken bent, var_dump dit eens : (glob($tmpFolder . $fileTypes) Als daar geen resultaten in zitten dan verwijs je naar de verkeerde folder. Zoals je er nu naar verwijst, dan moet het script op hetzelfde niveau staan als je pictures map. | ||||||||
davedavy | zondag 5 april 2015 @ 18:28 | |||||||
Geen resultaat. Ik heb nu gewoon het volledige pad in het script geplaatst:
Zou verder niet weten wat fout gaat :/ Het pad vervangen door "./" hielp ook niet. | ||||||||
KomtTijd... | maandag 6 april 2015 @ 09:43 | |||||||
Waarom doe je niet gewoon
| ||||||||
davedavy | maandag 6 april 2015 @ 14:50 | |||||||
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. | ||||||||
Tijn | dinsdag 7 april 2015 @ 18:10 | |||||||
Weet iemand of YouTube een API heeft om in te loggen vanaf je eigen website? Of moet je dan Google Sign-In gebruiken? | ||||||||
Faux. | dinsdag 7 april 2015 @ 18:11 | |||||||
Vrij zeker dat het via Google moet | ||||||||
Tijn | dinsdag 7 april 2015 @ 18:14 | |||||||
Ja, daar ben ik ook bang voor. Het probleem is alleen dat ik alleen geïnteresseerd ben in gebruikers van YouTube. Ik heb al iets soortgelijks gemaakt voor Twitch, die hebben netjes een API hiervoor. Maar voor YouTube heb ik nog niks gevonden dat lijkt op wat ik zoek. | ||||||||
KomtTijd... | dinsdag 7 april 2015 @ 18:31 | |||||||
Wat heb je precies in gedachten dan? In principe moet je alle kanten op kunnen met googles Oauht service. https://developers.google.com/accounts/docs/OAuth2 | ||||||||
Tijn | dinsdag 7 april 2015 @ 18:37 | |||||||
Ik wil het mogelijk maken voor mensen om in te loggen met hun YT-account. Wat ik wil weten is hun emailadres en de naam van hun channel(s). Als ik de gewone Google Sign-In gebruik, kunnen ook mensen zonder YT-kanaal inloggen. Dat is eigenlijk niet de bedoeling Ik hoopte eigenlijk dat YT z'n eigen API had, zodat ik niet zelf iets hoef te maken dat checkt of een ingelogde gebruiker wel lid is van YT. | ||||||||
KomtTijd... | dinsdag 7 april 2015 @ 18:42 | |||||||
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? | ||||||||
Tijn | dinsdag 7 april 2015 @ 18:44 | |||||||
Ja, ik had ook nog wat anders gevonden. Ik denk dat het hiermee wel moet lukken, maar ik hoopte op een hapklaardere brok. | ||||||||
Aether | donderdag 9 april 2015 @ 12:17 | |||||||
Misschien dat iemand een mooiere/betere oplossing heeft: Ik heb een tabel met daarin data van het type DATETIME. Deze zijn opgeslagen als UTC tijd. Van deze waarden heb ik de UNIX timestamp nodig; dat doe ik nu op deze manier:
Volgens mij is dit de eenvoudigste manier? | ||||||||
KomtTijd... | donderdag 9 april 2015 @ 13:22 | |||||||
Die CONVERT_TZ() zou niet nodig moeten zijn. Zo wel dan staan de timezone settings van je server niet goed. | ||||||||
Nattekat | vrijdag 10 april 2015 @ 22:37 | |||||||
Ik heb een probleempje; ik probeer twee tabellen met een foreign key te verbinden, maar echt werken wilt het niet. Bij de eerste tabel gaat het al fout. Kan iemand hier mij op weg helpen? Het enige wat ik kan vinden is dat het aan de Foreign Key ligt, maar hoe?
| ||||||||
Rockfire | vrijdag 10 april 2015 @ 22:58 | |||||||
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. | ||||||||
Nattekat | vrijdag 10 april 2015 @ 23:07 | |||||||
Error Code: 1005. Can't create table 'test.trans' (errno: 150) | ||||||||
KomtTijd... | zaterdag 11 april 2015 @ 01:29 | |||||||
Zal inderdaad de volgorde wel zijn. FK's zijn een bitch als je even snel wat met je tabellen wilt kutten of zo. Je kunt ook SET foreign_key_checks=0 proberen te gebruiken, geen idee of dat ook invloed heeft op create queries. | ||||||||
Rockfire | zaterdag 11 april 2015 @ 20:19 | |||||||
Heb je het al geprobeerd door eerst de tabellen aan te maken en pas daarna de foreign key constraints?
| ||||||||
Nattekat | zaterdag 11 april 2015 @ 22:40 | |||||||
Dat deed 't hem | ||||||||
Rockfire | zondag 12 april 2015 @ 11:34 | |||||||
| ||||||||
Aether | maandag 13 april 2015 @ 12:02 | |||||||
MySQL 5.7 JSON functies • JSON Labs Release: Native JSON Data Type and Binary Format • JSON Labs Release: JSON Functions, Part 1 — Manipulation JSON Data • JSON Labs Release: JSON Functions, Part 2 — Querying JSON Data • JSON Labs Release: Effective Functional Indexes in InnoDB In the MySQL 5.7.7 JSON labs release, we have introduced a new data type for storing JSON data in MySQL tables. Now you can do this:
[ Bericht 2% gewijzigd door Aether op 13-04-2015 15:26:46 ] | ||||||||
Tijn | maandag 13 april 2015 @ 12:05 | |||||||
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. | ||||||||
KomtTijd... | maandag 13 april 2015 @ 12:10 | |||||||
beter dan serialize inderdaad, als je de mogelijkheid hebt. | ||||||||
#ANONIEM | maandag 13 april 2015 @ 14:10 | |||||||
Heb ik ook eens gedaan. | ||||||||
raptorix | maandag 13 april 2015 @ 17:05 | |||||||
Mwoah ik zou dat toch eerder in een config bestand zetten, vooral als er omgevings specifieke waarden in staan. | ||||||||
Monolith | maandag 13 april 2015 @ 17:11 | |||||||
Dat voor simpele configs dus en native JSON NoSql databases voor daadwerkelijke data. | ||||||||
raptorix | maandag 13 april 2015 @ 17:26 | |||||||
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. | ||||||||
#ANONIEM | maandag 13 april 2015 @ 21:13 | |||||||
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. | ||||||||
Tijn | maandag 13 april 2015 @ 21:26 | |||||||
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. | ||||||||
Monolith | maandag 13 april 2015 @ 21:31 | |||||||
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. | ||||||||
Tijn | maandag 13 april 2015 @ 21:35 | |||||||
Voornamelijk omdat ik weet hoe dat werkt | ||||||||
Monolith | maandag 13 april 2015 @ 21:37 | |||||||
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. | ||||||||
Tijn | maandag 13 april 2015 @ 21:39 | |||||||
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. | ||||||||
Monolith | maandag 13 april 2015 @ 21:43 | |||||||
Er zijn doorgaans behoorlijke voordelen qua performance. | ||||||||
Tijn | maandag 13 april 2015 @ 21:47 | |||||||
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. | ||||||||
Monolith | maandag 13 april 2015 @ 21:51 | |||||||
Voor de gemiddelde applicatie is MySQL dan ook prima. | ||||||||
Aether | maandag 13 april 2015 @ 22:33 | |||||||
MySQL JSON + HTTP plugin • http://blog.ulf-wendel.de/2014/mysql-5-7-http-plugin-mysql/ • http://de.slideshare.net/nixnutz/http-plugin-for-mysql-39598656 | ||||||||
#ANONIEM | maandag 13 april 2015 @ 22:48 | |||||||
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. | ||||||||
Light | dinsdag 14 april 2015 @ 00:36 | |||||||
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. | ||||||||
raptorix | woensdag 15 april 2015 @ 10:34 | |||||||
Speaking about JSON, kwam in Visual Studio wel hele toffe feature tegen, paste special naar class, uiteraard geen PHP, maar wel bijzonder handig, voor XML werkt het ook. | ||||||||
Aether | woensdag 15 april 2015 @ 10:59 | |||||||
| ||||||||
#ANONIEM | vrijdag 1 mei 2015 @ 19:05 | |||||||
Echt een heerlijk project nu waar ik aan bezig ben met Symfony. Heerlijk framework. Die routing is nice... Even kijken hoe ik mijn "service" maken. Is wel even wennen vergeleken met de traditionele manier. [ Bericht 31% gewijzigd door #ANONIEM op 01-05-2015 19:09:19 ] | ||||||||
henrivo | vrijdag 1 mei 2015 @ 21:04 | |||||||
Symfony | ||||||||
Crutch | vrijdag 1 mei 2015 @ 22:05 | |||||||
| ||||||||
henrivo | vrijdag 1 mei 2015 @ 22:06 | |||||||
We missen eigenlijk een symfony-topic, las dat er wel een laravel-topic is | ||||||||
#ANONIEM | vrijdag 1 mei 2015 @ 22:59 | |||||||
Nah, dit topic is al niet zo actief. | ||||||||
TwenteFC | zondag 3 mei 2015 @ 17:04 | |||||||
Hier op Fok, of ben je in de war met Tweakers? | ||||||||
#ANONIEM | donderdag 7 mei 2015 @ 17:05 | |||||||
Hmm, ik zit een beetje te twijfelen hoe ik iets ga doen. Ik heb dus een project, een mooi dashboard. Daarin kunnen statistieken staan van het bedrijf en moeten andere webapplicaties benaderbaar zijn. Het moet dus heel makkelijk zijn om een bestaande webapplicatie in te voegen in het dashboard. Bestaande PHP-sites zouden dus makkelijk als een soort module toegevoegd moeten kunnen worden en als link toegevoegd worden in een menu. Eigenlijk wil ik dat er dynamisch controllers gegenereerd kunnen worden. Hiervoor zat ik te denken aan een console-applicatie met Symfony, die dan automatisch een nieuwe Controller-klasse genereert + een nieuwe Twig-template die dan wordt ingeladen. Wat denken jullie over deze benadering? Of zie ik een manier over het hoofd die het makkelijker zou moeten maken? [ Bericht 9% gewijzigd door #ANONIEM op 07-05-2015 22:20:01 ] | ||||||||
Qunix | donderdag 7 mei 2015 @ 22:15 | |||||||
Iemand hier ervaring met OctoberCMS (Laravel 5) | ||||||||
zoem | donderdag 7 mei 2015 @ 22:57 | |||||||
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. | ||||||||
#ANONIEM | vrijdag 8 mei 2015 @ 07:15 | |||||||
Hmm! Dat zou ook een mooie mogelijkheid zijn en is inderdaad minder foutgevoelig. Dan moet ik wel even kijken hoe ik dynamisch twig-layouts opvraag, maar dat moet ook wel goedkomen. |