abonnement Unibet Coolblue
pi_149751083


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!

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
en daar heb ik ook last van een filesort... wil dat eigenlijk voorkomen ;) en dat zou moeten kunnen...

:{
Just say hi!
pi_149752705
Ik weet niet wat je allemaal precies gedaan hebt, maar als ik even snel de volgende tabel aanmaak:

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;

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 ]
Volkorenbrood: "Geen quotes meer in jullie sigs gaarne."
pi_149757764
Ik heb
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;[
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...
Just say hi!
pi_149758873
quote:
0s.gif 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...
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?
Volkorenbrood: "Geen quotes meer in jullie sigs gaarne."
pi_149760827
quote:
0s.gif 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...
quote:
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
http://www.percona.com/do(...)mporting_tables.html
When the student is ready, the teacher will appear.
When the student is truly ready, the teacher will disappear.
pi_149761096
Volgens mij heb ik nog nooit anders dan InnoDB gebruikt? Ik dacht dat MyIsam een beetje ouderwets was?
pi_149761471
quote:
14s.gif 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?
Voor archieven wordt het nog wel gebruikt. Kost stuk minder ruimte qua opslag.
When the student is ready, the teacher will appear.
When the student is truly ready, the teacher will disappear.
pi_149766422
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...
Just say hi!
pi_149766770
lijkt me een vrij duidelijke foutmelding waar je wat mee kunt.
pi_149766843
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...
Just say hi!
  dinsdag 17 februari 2015 @ 18:54:53 #11
187069 slacker_nl
Sicko pur sang
pi_149768697
quote:
0s.gif 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...
Wat zegt select * from video_tag_link je? en hoe ziet die tabel eruit?
In theory there is no difference between theory and practice. In practice there is.
pi_149768989
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.
Volkorenbrood: "Geen quotes meer in jullie sigs gaarne."
pi_149771649
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:
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;
En wat data
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);

Probleem is filesort op de volgende query:
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

Omzetten op wat voor manier naar InnoDB wil niet... en queries optimaliseren ook niet :)
Just say hi!
pi_149771719
Dat omzetten naar InnoDB niet werkt ligt toch echt aan jou of je MySQL setup. Ik krijg dat zonder moeite voor elkaar.
Volkorenbrood: "Geen quotes meer in jullie sigs gaarne."
pi_149781839
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...
Just say hi!
pi_149783300
Lag inderdaad aan mijn webserver, heb alles opnieuw geconfigureerd en hoopa!! het werkt!! nu eens al mijn tabellen omzetten naar InnoDB!!
Just say hi!
pi_149786125
quote:
0s.gif 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?)
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.
Volkorenbrood: "Geen quotes meer in jullie sigs gaarne."
pi_149788132
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 ]
  woensdag 18 februari 2015 @ 11:30:32 #19
63192 ursel
"Het Is Hier Fantastisch!
pi_149788322
1
2
3
4
<select name="divisie" form="divisieform">
  <option value="1">Super lig</option>
  <option value="2">2. Lig</option>
</select>

Toon je de naam, maar de waarde die je formulier verstuurd is het ID.
pi_149788700
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?
pi_149800925
quote:
0s.gif 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.
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.
🕰️₿🕰️₿🕰️₿🕰️₿🕰️₿🕰️ TikTok next Block
pi_149801283
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 :)
🕰️₿🕰️₿🕰️₿🕰️₿🕰️₿🕰️ TikTok next Block
pi_149801826
quote:
0s.gif 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.
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.
Volkorenbrood: "Geen quotes meer in jullie sigs gaarne."
pi_149804047
quote:
1s.gif 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.
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).
🕰️₿🕰️₿🕰️₿🕰️₿🕰️₿🕰️ TikTok next Block
pi_149804805
quote:
0s.gif 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).
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
Volkorenbrood: "Geen quotes meer in jullie sigs gaarne."
pi_149805455
quote:
1s.gif 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
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
🕰️₿🕰️₿🕰️₿🕰️₿🕰️₿🕰️ TikTok next Block
  woensdag 18 februari 2015 @ 21:14:21 #27
91039 mstx
2x1/2 = 1/2 x 1/2
pi_149807585
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? |:(
Op donderdag 2 juli 2009 22:41 schreef RTB het volgende:
als ik elk rap"liedje" een kans moest geven was ik aan het eind van dit millennium nog bezig met het tempo waarin die kotshoop uitgebraakt wordt.
👾
pi_149807761
Als het een Tinyint(1) is, dan klopt dat ook gewoon. :P
Volkorenbrood: "Geen quotes meer in jullie sigs gaarne."
pi_149807805
Je hebt een bestaande database ingeladen of zo?

Een boolean wordt idd altijd als tinyint(1) opgeslagen.
  woensdag 18 februari 2015 @ 21:19:38 #30
91039 mstx
2x1/2 = 1/2 x 1/2
pi_149807834
quote:
0s.gif Op woensdag 18 februari 2015 21:18 schreef Monolith het volgende:
Als het een Tinyint(1) is, dan klopt dat ook gewoon. :P
Tinyint(1) = 0 t/m 9
Boolean = true/false

Hoe is dat het zelfde?
Op donderdag 2 juli 2009 22:41 schreef RTB het volgende:
als ik elk rap"liedje" een kans moest geven was ik aan het eind van dit millennium nog bezig met het tempo waarin die kotshoop uitgebraakt wordt.
👾
pi_149807930
quote:
10s.gif 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?
Volgens mij moet je even opzoeken wat die 1 betekent.
Volkorenbrood: "Geen quotes meer in jullie sigs gaarne."
pi_149807980
quote:
1s.gif Op woensdag 18 februari 2015 21:21 schreef Monolith het volgende:

[..]

Volgens mij moet je even opzoeken wat die 1 betekent.
die 1 betekend 1 teken lezen toch? :P
..///
pi_149807998
quote:
10s.gif Op woensdag 18 februari 2015 21:19 schreef mstx het volgende:
Tinyint(1) = 0 t/m 9
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 ]
pi_149808184
quote:
0s.gif Op woensdag 18 februari 2015 21:22 schreef wipes66 het volgende:

[..]

die 1 betekend 1 teken lezen toch? :P
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.
Volkorenbrood: "Geen quotes meer in jullie sigs gaarne."
pi_149808325
quote:
14s.gif Op woensdag 18 februari 2015 21:22 schreef KomtTijd... het volgende:

[..]

Nee, tinyint(1) is een integer van 1 bit, dus een boolean.
mysql heeft geen echte boolean, dus 'boolean' is gewoon een allias voor tinyint(1) wat 8-bit is.
..///
  woensdag 18 februari 2015 @ 21:31:52 #36
91039 mstx
2x1/2 = 1/2 x 1/2
pi_149808498
quote:
14s.gif 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.
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. :?
Op donderdag 2 juli 2009 22:41 schreef RTB het volgende:
als ik elk rap"liedje" een kans moest geven was ik aan het eind van dit millennium nog bezig met het tempo waarin die kotshoop uitgebraakt wordt.
👾
pi_149808699
quote:
0s.gif 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. :?
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
Volkorenbrood: "Geen quotes meer in jullie sigs gaarne."
pi_149808730
quote:
0s.gif 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.
  woensdag 18 februari 2015 @ 21:45:52 #39
91039 mstx
2x1/2 = 1/2 x 1/2
pi_149809072
quote:
14s.gif 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.
Omdat ik die database al had en ik altijd de juiste datatypes probeer te gebruiken. :P En dan is het gewoon een beetje vreemd dat een auto ineens "true" versnellingen heeft terwijl er "6" in de database staat. :6
Op donderdag 2 juli 2009 22:41 schreef RTB het volgende:
als ik elk rap"liedje" een kans moest geven was ik aan het eind van dit millennium nog bezig met het tempo waarin die kotshoop uitgebraakt wordt.
👾
  † In Memoriam † woensdag 18 februari 2015 @ 22:49:11 #40
159335 Boze_Appel
Vrij Fruit
pi_149811836
quote:
1s.gif 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
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. :D
Carpe Libertatem
pi_149812152
quote:
10s.gif 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?
ENUM ('TRUE','FALSE') :P
When the student is ready, the teacher will appear.
When the student is truly ready, the teacher will disappear.
pi_149814618
quote:
0s.gif 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. :P En dan is het gewoon een beetje vreemd dat een auto ineens "true" versnellingen heeft terwijl er "6" in de database staat. :6
Je kunt je entities toch wel handmatig aanpassen naar het goeie format lijkt me?
pi_149818337
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 :r :9~
🕰️₿🕰️₿🕰️₿🕰️₿🕰️₿🕰️ TikTok next Block
pi_149819074
quote:
0s.gif 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 :r :9~
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.
Volkorenbrood: "Geen quotes meer in jullie sigs gaarne."
pi_149819247
quote:
0s.gif 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.
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.
🕰️₿🕰️₿🕰️₿🕰️₿🕰️₿🕰️ TikTok next Block
  woensdag 25 februari 2015 @ 20:35:20 #46
37634 wobbel
Da WoBBeL King
pi_150042597
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

1
2
3
4
5
<?php
SELECT 
FROM bestellen
INNER JOIN users 
ON 
bestellen.userdienodigheeft users.IdUser 
?>

Mijn idee, welke uiteraard niet werkt was het volgt, maar hoe moet het wel??

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 )
?>

In beide gevallen krijg ik maar 1 veld terug, dat is 'naam' maar ik wil eigenlijk naamNodig en naamBesteld ofzo krijgen :)
pi_150042833
quote:
0s.gif 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 :)
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 ]
  woensdag 25 februari 2015 @ 21:02:41 #48
37634 wobbel
Da WoBBeL King
pi_150043787
quote:
0s.gif 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.
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)
pi_150043875
quote:
0s.gif 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)
Sorry, maar dan heb je je database waarschijnlijk niet optimaal ingericht. :@
pi_150045567
quote:
0s.gif 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.
Je kunt het oplossen door alternatieve namen in de SELECT te gebruiken. Bijvoorbeeld:
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
(Ik weet niet welke kolommen er verder voorkomen).
When the student is ready, the teacher will appear.
When the student is truly ready, the teacher will disappear.
  donderdag 26 februari 2015 @ 08:19:46 #51
37634 wobbel
Da WoBBeL King
pi_150057610
quote:
7s.gif 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).
Top, dit is hem inderdaad :) You saved my day, nu krijg inderdaad netjes de juiste namen te zien.

quote:
0s.gif Op woensdag 25 februari 2015 21:04 schreef robin007bond het volgende:

[..]

Sorry, maar dan heb je je database waarschijnlijk niet optimaal ingericht. :@
Die kans is aanwezig, maar soms moet je werken met wat je hebt :P
pi_150059766
Stabiele versie 1.0.0 appserver.io uitgebracht.
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.
http://appserver.io/
https://github.com/appserver-io/appserver
When the student is ready, the teacher will appear.
When the student is truly ready, the teacher will disappear.
pi_150061101
quote:
7s.gif 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
Ik heb een beter idee. Leer Java. :P
Volkorenbrood: "Geen quotes meer in jullie sigs gaarne."
pi_150135862
quote:
15s.gif 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? |:(
Je hebt met PHP te maken, elke idioot kan dat bedacht hebben (Ik heb de draad gelezen, het komt door mysql..)
In theory there is no difference between theory and practice. In practice there is.
pi_150136002
quote:
14s.gif 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.
Docterine zit fout m.i. De MySQL docs zeggen:

quote:
A value of zero is considered false. Nonzero values are considered true
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..
In theory there is no difference between theory and practice. In practice there is.
pi_150137744
Dat gaat je problemen opleveren wanneer je b.v. === true doet. De == operator in PHP is aardig verneukt.
Volkorenbrood: "Geen quotes meer in jullie sigs gaarne."
pi_150138980
quote:
0s.gif 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.
hoezo? ohhh omdat 0 === true is?
In theory there is no difference between theory and practice. In practice there is.
pi_150139104
quote:
1s.gif Op zaterdag 28 februari 2015 10:38 schreef slacker_nl het volgende:

[..]

hoezo? ohhh omdat 0 === true is?
Nee, omdat bijvoorbeeld 3 === true false oplevert en dergelijke checks dus falen als je de daadwerkelijke int waarden gebruikt.
Volkorenbrood: "Geen quotes meer in jullie sigs gaarne."
pi_150139512
quote:
1s.gif 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.
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 ]
In theory there is no difference between theory and practice. In practice there is.
pi_150139839
quote:
1s.gif 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 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.
Volkorenbrood: "Geen quotes meer in jullie sigs gaarne."
pi_150165319
quote:
1s.gif 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
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.
  zondag 1 maart 2015 @ 10:01:05 #62
187069 slacker_nl
Sicko pur sang
pi_150171253
quote:
0s.gif 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.
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.
In theory there is no difference between theory and practice. In practice there is.
  † In Memoriam † zondag 1 maart 2015 @ 10:09:51 #63
159335 Boze_Appel
Vrij Fruit
pi_150171371
quote:
0s.gif 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.
Doctrine gaat uit van meersere databasedrivers. Dan krijg je compromissen
Carpe Libertatem
pi_150239615
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.

quote:
SELECT P.name
FROM Persons P, Likes L
WHERE P.id = L.personA_id AND ............
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?
pi_150240233
Selecten naar likes, persons 2x joinen.
pi_150240420
quote:
14s.gif Op dinsdag 3 maart 2015 09:18 schreef KomtTijd... het volgende:
Selecten naar likes, persons 2x joinen.
Aha, vraag me niet waarom maar ik dacht steeds Likes 2 keer te moeten 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"

Deze werkt, thanks :)
pi_150240450
Ik blijf het een irritante notatie vinden die impliciete joins, maar zo kan ook inderdaad ^O^
pi_150240483
quote:
14s.gif 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 ^O^
Je zou het zelf dus anders gedaan hebben bedoel je?
Wat dan precies, en met welke gedachte erachter?
pi_150240955
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?
  dinsdag 3 maart 2015 @ 10:03:34 #70
84244 Scorpie
Abject en infaam!
pi_150240996
quote:
0s.gif 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?
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.
Op dinsdag 13 augustus schreef Xa1pt:
Neuh, fraude mag best aangepakt worden. Maar dat het de maatschappij meer oplevert of beter is voor de samenleving, is nog maar de vraag.
Op donderdag 25 juni 2015 schreef KoosVogels:
Klopt. Ik ben een racist.
pi_150241518
quote:
0s.gif 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.
Volkorenbrood: "Geen quotes meer in jullie sigs gaarne."
pi_150241854
quote:
7s.gif 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.
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
pi_150241880
quote:
0s.gif Op dinsdag 3 maart 2015 10:28 schreef Monolith het volgende:

[..]

Je kunt stored procedures schrijven in Mysql.
Ik ben helaas geen ontwikkelaar dus dit onderdeel (ik heb ff gelezen) wordt al snel te ingewikkeld voor mij.
pi_150243661
quote:
11s.gif 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.
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?
  dinsdag 3 maart 2015 @ 11:49:52 #75
62215 qu63
..de tijd drinkt..
pi_150243860
quote:
14s.gif 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?
http://nl.wikipedia.org/wiki/Elfproef
It's Time To Shine
[i]What would life be like without rhethorical questions?[/i]
pi_150243889
Het lijkt meer een verzoek tot het aanleveren van knip-en-plak code. :P
Volkorenbrood: "Geen quotes meer in jullie sigs gaarne."
pi_150245182
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:
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>'
    }
?>

Ook andere dingen geprobeerd zoals:
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'));
?>

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 ]
pi_150245613
Blanco pagina's betekenen doorgaans dat je een error krijgt die je niet zet.

Zet in ieder geval de error reporting / weergave even aan:
1
2
3
4
<?php
error_reporting
(E_ALL);
ini_set('display_errors'1);
?>
Volkorenbrood: "Geen quotes meer in jullie sigs gaarne."
pi_150246535
quote:
0s.gif 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 ]

Gedaan. Geen foutmeldingen. Het wordt in zijn geheel niet meer weergegeven.
Ervoor:


Erna:
pi_150246644
Kan het zijn dat je de data al verkeerd hebt opgeslagen in de database?? heb ik ook wel eens gehad... :{
Just say hi!
pi_150246729
🕰️₿🕰️₿🕰️₿🕰️₿🕰️₿🕰️ TikTok next Block
pi_150246763
quote:
0s.gif 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... :{

quote:
0s.gif Op dinsdag 3 maart 2015 13:27 schreef raptorix het volgende:
MUST READ, REPEAT, MUST READ! :+

http://www.joelonsoftware.com/articles/Unicode.html
Thanks, zal het zo doornemen!

[ Bericht 3% gewijzigd door #ANONIEM op 03-03-2015 13:28:19 ]
pi_150247584
quote:
0s.gif 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 ]
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.
pi_150248729
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" 

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?
pi_150250580
Dit is geen huiswerktopic. o|O
maar om je een hint te geven, je moet in ieder geval 3x iets uit Persons selecteren in dit geval.
Volkorenbrood: "Geen quotes meer in jullie sigs gaarne."
pi_150250653
quote:
1s.gif 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.
Als het goed is wel, zal ik vanavond naar kijken. Thanks.
pi_150250693
quote:
0s.gif 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?
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 ]
pi_150251085
quote:
0s.gif Op dinsdag 3 maart 2015 15:29 schreef Monolith het volgende:
Dit is geen huiswerktopic. o|O
maar om je een hint te geven, je moet in ieder geval 3x iets uit Persons selecteren in dit geval.
I know, ik ben ook niet op zoek naar directe antwoorden. (;

quote:
0s.gif 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?
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 :)
pi_150251169
quote:
0s.gif 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 :)
Wat mag je nu wel gebruiken dan? Er moet op de een of andere manier toch een telling plaatsvinden...
pi_150251942
quote:
0s.gif 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...
Ik heb het maar gewoon gebruikt, want zoals je al zei zal er toch op een manier geteld moeten worden.

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

Zo is ie valid.
Maar zou je me kunnen uitleggen waarom " GROUP BY P1.name " hier nodig is?
pi_150252018
quote:
0s.gif 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?
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.)

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

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 ]
pi_150252339
quote:
0s.gif 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?!
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.
pi_150252739
quote:
0s.gif 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.
Wat meer info over de HAVING: http://en.wikipedia.org/wiki/Having_%28SQL%29.

Ik vind die impliciete joins van jou maar niets. :P.
  vrijdag 6 maart 2015 @ 17:26:44 #94
272287 henrivo
Tikt tegen jassies
pi_150359019
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:
1
2
3
4
5
6
7
<?php
/**
     * @ORM\ManyToMany(targetEntity="ArticleTag", inversedBy="articles")
     * @ORM\JoinTable(name="article_tags")
     **/
    
private $articleTags;
?>

En tabel ArticleTag
1
2
3
4
5
6
<?php
/**
     * @ORM\ManyToMany(targetEntity="Article", mappedBy="articleTags")
     **/
    
private $articles;
?>

Nu wil ik een cloudwolkje maken van laten we zeggen 5-10 keywords, dus roep ik het volgende op in de controller:

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();
?>

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 :)
pi_150359986
"foutmeldingen" ja daar heb ik ook wel eens last van :P

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.
  vrijdag 6 maart 2015 @ 18:27:58 #96
272287 henrivo
Tikt tegen jassies
pi_150360580
quote:
14s.gif Op vrijdag 6 maart 2015 18:03 schreef KomtTijd... het volgende:
"foutmeldingen" ja daar heb ik ook wel eens last van :P

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.
Dus eigenlijk gewoon een kolommetje erbij met 'views' en die dan per actie ++ of -1 laten berekenen?

Sucks. -O-

Anders begrijp ik je even verkeerd :@
pi_150360753
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.
  vrijdag 6 maart 2015 @ 18:41:39 #98
272287 henrivo
Tikt tegen jassies
pi_150360912
quote:
14s.gif 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.
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 :@
  vrijdag 6 maart 2015 @ 19:39:00 #99
272287 henrivo
Tikt tegen jassies
pi_150362996
Kortgezegde wil ik dus van elk bestaande tag berekenen hoeveel articles er aan gekoppeld zitten. Heeft iemand enig idee hoe?
pi_150363104
quote:
0s.gif 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?
SELECT COUNT(tag_id) FROM articles_tags GROUP BY article_id :?
  vrijdag 6 maart 2015 @ 20:04:06 #101
363995 Reemi
Zeg maar Remi.
pi_150364235
quote:
19s.gif Op vrijdag 6 maart 2015 19:41 schreef TwenteFC het volgende:

[..]

SELECT COUNT(tag_id) FROM articles_tags GROUP BY article_id :?
Is:

SELECT COUNT(article_id) FROM articles_tags GROUP BY tag_id

Niet logischer? :P Nu tel je voor elk bericht het aantal tags.
Smile like you mean it
www.wefut.com
  vrijdag 6 maart 2015 @ 20:10:25 #102
272287 henrivo
Tikt tegen jassies
pi_150364540
Snappen jullie nu waarom ik de draad kwijt ben? :')
pi_150365067
quote:
0s.gif 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? :P Nu tel je voor elk bericht het aantal tags.
:P Lange dag. Maar je hebt inderdaad gelijk ja, iets te snel overheen gelezen ;)
  vrijdag 6 maart 2015 @ 20:28:53 #104
272287 henrivo
Tikt tegen jassies
pi_150365509
quote:
19s.gif Op vrijdag 6 maart 2015 20:21 schreef TwenteFC het volgende:

[..]

:P Lange dag.
Ik ook, maar wanneer ik dit doe:
1
2
3
4
5
<?php
$query 
$em->createQuery('SELECT COUNT(article_id) FROM articles_tags GROUP BY tag_id');

        
$articleTags $query->getResult();
?>
Levert mij dit op:
1[Semantical Error] line 0, col 30 near 'articles_tags': Error: Class 'articles_tags' is not defined.
pi_150370256
quote:
0s.gif 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 ]

:P Probeer het eerst in PhpMyAdmin/HeidiSQL/SQLyog oid om de juiste data te krijgen.
  vrijdag 6 maart 2015 @ 22:18:27 #106
272287 henrivo
Tikt tegen jassies
pi_150370439
quote:
19s.gif Op vrijdag 6 maart 2015 22:13 schreef TwenteFC het volgende:

[..]

:P Probeer het eerst in PhpMyAdmin/HeidiSQL/SQLyog oid om de juiste data te krijgen.
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 ]
  Moderator dinsdag 10 maart 2015 @ 12:50:36 #107
55052 crew  djkoelkast
www.xms.nl
pi_150492663
Ik heb hier een exportscript wat ik wil aanpassen, normaal gaat me dat goed af, maar hier loop ik echt even vast.

Voorbeeldje:

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',
            );
?>

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?
Luister naar XPLIZIT op www.xms.nl
Voor alles retro bezoek je het Retroforum - www.retroforum.nl
  Moderator woensdag 11 maart 2015 @ 23:21:01 #109
55052 crew  djkoelkast
www.xms.nl
pi_150551058
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è?
Luister naar XPLIZIT op www.xms.nl
Voor alles retro bezoek je het Retroforum - www.retroforum.nl
pi_150551197
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.
Volkorenbrood: "Geen quotes meer in jullie sigs gaarne."
pi_150554360
quote:
0s.gif 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è?
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è.
  Moderator donderdag 12 maart 2015 @ 09:49:57 #112
55052 crew  djkoelkast
www.xms.nl
pi_150557503
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 :+
Luister naar XPLIZIT op www.xms.nl
Voor alles retro bezoek je het Retroforum - www.retroforum.nl
pi_150557669
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)
  vrijdag 13 maart 2015 @ 09:22:47 #114
118585 Crutch
Filantroop || Taalzwengel
pi_150589972
quote:
0s.gif 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 :+
Post hier je code, daar hebben we veel meer aan.
Je moeder is een hamster
  Moderator vrijdag 13 maart 2015 @ 10:11:19 #115
55052 crew  djkoelkast
www.xms.nl
pi_150591285
quote:
14s.gif 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)
Er is geen foutmelding, gewoon wit scherm, meer niet.

quote:
0s.gif Op vrijdag 13 maart 2015 09:22 schreef Crutch het volgende:

[..]

Post hier je code, daar hebben we veel meer aan.
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.
Luister naar XPLIZIT op www.xms.nl
Voor alles retro bezoek je het Retroforum - www.retroforum.nl
pi_150591316
quote:
0s.gif Op vrijdag 13 maart 2015 10:11 schreef djkoelkast het volgende:

[..]

Er is geen foutmelding, gewoon wit scherm, meer niet.

Dan eerst daar iets aan doen.

http://php.net/manual/en/function.error-reporting.php
  zaterdag 14 maart 2015 @ 08:48:30 #117
187069 slacker_nl
Sicko pur sang
pi_150625704
quote:
0s.gif 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.
Je moet dat ene doen waardoor het gaat werken.
In theory there is no difference between theory and practice. In practice there is.
pi_150628101
Dit is een beetje als vragen om hulp bij een auto die niet wil starten en dan een foto van het kinderzitje laten zien.
Volkorenbrood: "Geen quotes meer in jullie sigs gaarne."
  Moderator zaterdag 14 maart 2015 @ 11:57:35 #119
55052 crew  djkoelkast
www.xms.nl
pi_150628585
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.
Luister naar XPLIZIT op www.xms.nl
Voor alles retro bezoek je het Retroforum - www.retroforum.nl
  zaterdag 14 maart 2015 @ 12:35:13 #120
62215 qu63
..de tijd drinkt..
pi_150629290
quote:
0s.gif 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.
Nou, open de motorkap dan kunnen we kijken wat er in zit ;)
It's Time To Shine
[i]What would life be like without rhethorical questions?[/i]
pi_150629609
quote:
0s.gif 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?

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.
  Moderator zaterdag 14 maart 2015 @ 12:55:01 #122
55052 crew  djkoelkast
www.xms.nl
pi_150629813
quote:
1s.gif 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.
_O- 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.
Luister naar XPLIZIT op www.xms.nl
Voor alles retro bezoek je het Retroforum - www.retroforum.nl
pi_150630049
Sja als je niet op een normale manier geholpen wilt worden is dat je oplossing. Succes!
pi_150633200
quote:
0s.gif Op zaterdag 14 maart 2015 12:55 schreef djkoelkast het volgende:

[..]

_O- 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.
:') Een competent iemand erbij halen zou een hoop schelen.
  zaterdag 14 maart 2015 @ 15:34:20 #125
187069 slacker_nl
Sicko pur sang
pi_150633893
quote:
0s.gif 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.
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.
In theory there is no difference between theory and practice. In practice there is.
pi_150634421
quote:
0s.gif Op zaterdag 14 maart 2015 12:55 schreef djkoelkast het volgende:

[..]

_O- 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.
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 ]
The casino is the only place where you can lose a hundred dollars in a slot machine and shrug your shoulders, then lose a dollar in a soda machine and beat the shit out of it.
pi_150647243
quote:
0s.gif Op zaterdag 14 maart 2015 12:55 schreef djkoelkast het volgende:

[..]

_O- 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.

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.
  zaterdag 14 maart 2015 @ 22:44:49 #128
12221 Tijn
Powered by MS Paint
pi_150647898
Alsof zo'n CSV exporteerscriptje zulke speciale code bevat dat je dat niet zou mogen posten _O-
  † In Memoriam † zaterdag 14 maart 2015 @ 23:49:51 #129
159335 Boze_Appel
Vrij Fruit
pi_150649903
quote:
0s.gif 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.
Lijkt mij legitiem. Kinderen zijn de oorzaak van alle problemen.
Carpe Libertatem
  † In Memoriam † zaterdag 14 maart 2015 @ 23:50:57 #130
159335 Boze_Appel
Vrij Fruit
pi_150649929
Sowieso klopt zijn array met een comma aan het einde niet.
Carpe Libertatem
pi_150654879
quote:
0s.gif Op zaterdag 14 maart 2015 23:50 schreef Boze_Appel het volgende:
Sowieso klopt zijn array met een comma aan het einde niet.
jawel, ik doe dat ook altijd zo. Mocht je later iets willen toevoegen kun je direct doorschrijven.
pi_150655279
quote:
1s.gif 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.
:{

[ Bericht 0% gewijzigd door #ANONIEM op 15-03-2015 09:07:53 ]
  zondag 15 maart 2015 @ 09:17:58 #133
91039 mstx
2x1/2 = 1/2 x 1/2
pi_150655399
quote:
1s.gif Op zondag 15 maart 2015 09:07 schreef robin007bond het volgende:

[..]

:{
Bij de meeste frameworks wordt dat zelfs aangeraden in de coding conventions, zoals bij Zend:
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.
Op donderdag 2 juli 2009 22:41 schreef RTB het volgende:
als ik elk rap"liedje" een kans moest geven was ik aan het eind van dit millennium nog bezig met het tempo waarin die kotshoop uitgebraakt wordt.
👾
pi_150655440
quote:
1s.gif 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:

[..]

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.
pi_150656196
quote:
1s.gif 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.
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.
  zondag 15 maart 2015 @ 13:49:43 #136
118585 Crutch
Filantroop || Taalzwengel
pi_150660961
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.
Je moeder is een hamster
pi_150662886
quote:
1s.gif 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.
:P Het is lekker makkelijk, als er wat bij moet komen is het control+d op die lijn, en de index/waarde aanpassen en gaan.
  zondag 15 maart 2015 @ 15:51:32 #138
118585 Crutch
Filantroop || Taalzwengel
pi_150665357
quote:
1s.gif 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.
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.
Je moeder is een hamster
pi_150665769
quote:
0s.gif 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.
Het is verwarrend inderdaad, naar mijn mening.

Volgens mij is PHP de enige programmeertaal die dit toestaat.
  zondag 15 maart 2015 @ 16:14:19 #140
12221 Tijn
Powered by MS Paint
pi_150666394
quote:
0s.gif 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.
Nee hoor, in Javascript is het ook geen probleem.

1
2
var array = [1, 2, 3, 4,];
var object = {'foo': 'bar', 'herp':'derp',};

Dit werkt gewoon :)
  zondag 15 maart 2015 @ 16:33:06 #141
118585 Crutch
Filantroop || Taalzwengel
pi_150667048
Oh god, is het heus? :'(

Ik kan hier niet mee omgaan. :'( :'( :'( :'(
Je moeder is een hamster
pi_150667080
quote:
0s.gif Op zondag 15 maart 2015 16:33 schreef Crutch het volgende:
Oh god, is het heus? :'(

Ik kan hier niet mee omgaan. :'( :'( :'( :'(
pi_150667345
Gewoon fatsoenlijke programmeertalen gebruiken.
Volkorenbrood: "Geen quotes meer in jullie sigs gaarne."
  zondag 15 maart 2015 @ 16:45:28 #144
91039 mstx
2x1/2 = 1/2 x 1/2
pi_150667470
quote:
0s.gif Op zondag 15 maart 2015 16:42 schreef Monolith het volgende:
Gewoon fatsoenlijke programmeertalen gebruiken.




:W

[ Bericht 6% gewijzigd door mstx op 15-03-2015 16:58:13 ]
Op donderdag 2 juli 2009 22:41 schreef RTB het volgende:
als ik elk rap"liedje" een kans moest geven was ik aan het eind van dit millennium nog bezig met het tempo waarin die kotshoop uitgebraakt wordt.
👾
  zondag 15 maart 2015 @ 16:45:46 #145
12221 Tijn
Powered by MS Paint
pi_150667484
quote:
0s.gif Op zondag 15 maart 2015 16:33 schreef Crutch het volgende:
Oh god, is het heus? :'(

Ik kan hier niet mee omgaan. :'( :'( :'( :'(
Het is geen valide JSON, dat scheelt misschien een beetje :+
  zondag 15 maart 2015 @ 17:00:54 #146
12221 Tijn
Powered by MS Paint
pi_150668019
quote:
0s.gif Op zondag 15 maart 2015 16:42 schreef Monolith het volgende:
Gewoon fatsoenlijke programmeertalen gebruiken.
Welke stel je voor?
pi_150668046
quote:
6s.gif Op zondag 15 maart 2015 17:00 schreef Tijn het volgende:

[..]

Welke stel je voor?
Clojure.
pi_150668081
quote:
10s.gif Op zondag 15 maart 2015 16:45 schreef mstx het volgende:

[..]

[ afbeelding ]

[ afbeelding ]

:W
Welke talen zijn dat? Ik heb wel een vermoeden, maar weet het niet geheel zeker.
pi_150668086
quote:
6s.gif Op zondag 15 maart 2015 17:00 schreef Tijn het volgende:

[..]

Welke stel je voor?
Scala.
Volkorenbrood: "Geen quotes meer in jullie sigs gaarne."
  zondag 15 maart 2015 @ 17:13:33 #150
91039 mstx
2x1/2 = 1/2 x 1/2
pi_150668451
quote:
0s.gif 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.
C# en C++
Op donderdag 2 juli 2009 22:41 schreef RTB het volgende:
als ik elk rap"liedje" een kans moest geven was ik aan het eind van dit millennium nog bezig met het tempo waarin die kotshoop uitgebraakt wordt.
👾
pi_150668751
quote:
0s.gif Op zondag 15 maart 2015 17:13 schreef mstx het volgende:

[..]

C# en C++
Geeft de compiler ook geen warnings?
pi_150668886
quote:
10s.gif Op zondag 15 maart 2015 16:45 schreef mstx het volgende:

[..]

[ afbeelding ]

[ afbeelding ]

:W
Oh dat is niet de reden dat JavaScript, maar vooral PHP zulke beroerde talen zijn hoor.
Volkorenbrood: "Geen quotes meer in jullie sigs gaarne."
pi_150669306
quote:
0s.gif Op zondag 15 maart 2015 17:13 schreef mstx het volgende:

[..]

C# en C++
In C met GCC en -Wall wordt er ook geen foutmelding weergeven. :o
pi_150671840
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.
pi_150673760
Dat kan ik echt niet bevatten. Het is voor mij echt... Onbegrijpelijk.

:{
pi_150674614
quote:
1s.gif 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.
Beste van twee werelden door Nederlands bedrijf :+
http://www.php-cpp.com
When the student is ready, the teacher will appear.
When the student is truly ready, the teacher will disappear.
  zondag 15 maart 2015 @ 20:24:07 #157
187069 slacker_nl
Sicko pur sang
pi_150674754
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,
In theory there is no difference between theory and practice. In practice there is.
pi_150675075
quote:
14s.gif 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.
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.
  zondag 15 maart 2015 @ 20:39:36 #159
12221 Tijn
Powered by MS Paint
pi_150675620
quote:
0s.gif 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,
Zit je zo vaak handmatig JSON-files te schrijven, dan? :?
  zondag 15 maart 2015 @ 20:42:28 #160
187069 slacker_nl
Sicko pur sang
pi_150675781
quote:
5s.gif Op zondag 15 maart 2015 20:39 schreef Tijn het volgende:

[..]

Zit je zo vaak handmatig JSON-files te schrijven, dan? :?
Ja, chef data bag files zijn JSON.
In theory there is no difference between theory and practice. In practice there is.
pi_150675831
quote:
5s.gif 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.
pi_150675899
quote:
0s.gif 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,
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 ]
pi_150676087
quote:
14s.gif 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.
Het is een data format, geen transport protocol.
Volkorenbrood: "Geen quotes meer in jullie sigs gaarne."
  zondag 15 maart 2015 @ 20:52:05 #164
187069 slacker_nl
Sicko pur sang
pi_150676323
quote:
1s.gif 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,
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:
1
2
3
4
5
6
7
8
9
10
XXX::Foo->new(
    foo => bar, 
);

of 

XXX::Foo->new(
    foo => bar, 
    baz => fubar,
);

Plus als ik alles ga sorten en zulks, breekt er niks omdat de komma plots verdwenen is midden in m'n lijst.
In theory there is no difference between theory and practice. In practice there is.
pi_150676661
quote:
1s.gif Op zondag 15 maart 2015 20:48 schreef Monolith het volgende:

[..]

Het is een data format, geen transport protocol.
Inderdaad. HTTP is een transport protocol, maar JSON niet.
pi_150677072
quote:
1s.gif 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 bedoel :P
pi_150677483
quote:
14s.gif Op zondag 15 maart 2015 21:04 schreef KomtTijd... het volgende:

[..]

Je hebt gelijk maar je begrijpt wat ik bedoel :P
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.
Volkorenbrood: "Geen quotes meer in jullie sigs gaarne."
pi_150677888
quote:
0s.gif 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.
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:

1
2
function blabla(x, y,) {
}

Jij zou dat ook echt zo doen? :o
pi_150678313
quote:
1s.gif 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.
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().
pi_150678403
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. :')
pi_150678554
quote:
0s.gif 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. :')
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.
pi_150678620
quote:
1s.gif 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.
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.
pi_150679051
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.
pi_150681747
quote:
0s.gif 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. :')
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.
pi_150681982
quote:
14s.gif 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.
Valt wel mee. Vaak worden de Javabeans conventies gebruikt.
In Java heb je bovendien nog weer transient voor zaken die niet geserialized moeten worden.
Volkorenbrood: "Geen quotes meer in jullie sigs gaarne."
pi_150690613
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!

[…]


When the student is ready, the teacher will appear.
When the student is truly ready, the teacher will disappear.
  maandag 16 maart 2015 @ 11:24:39 #177
187069 slacker_nl
Sicko pur sang
pi_150690913
quote:
0s.gif 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? :o
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:
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,
);
In theory there is no difference between theory and practice. In practice there is.
pi_150698573
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.
  maandag 16 maart 2015 @ 16:43:26 #179
187069 slacker_nl
Sicko pur sang
pi_150702421
quote:
0s.gif Op maandag 16 maart 2015 15:04 schreef Crohnjurist het volgende:
DateAdd("m",2, [ Date ] )
denk dat dit het moet zijn:
1DateAdd("m", 2,  [Date]) 

Volgens mij pikt ie de spaties rond "Date" niet.
In theory there is no difference between theory and practice. In practice there is.
pi_150727100
quote:
0s.gif 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.
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?
  dinsdag 17 maart 2015 @ 10:02:31 #181
187069 slacker_nl
Sicko pur sang
pi_150727268
quote:
0s.gif 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?
Nope, ik doe niet aan Access (het is ook wat offtopic voor dit topic overigens).
In theory there is no difference between theory and practice. In practice there is.
pi_150727320
quote:
0s.gif 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).
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 ;)
pi_150733619
quote:
14s.gif 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 :)
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 ]
pi_150733818
quote:
0s.gif 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?
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?
Volkorenbrood: "Geen quotes meer in jullie sigs gaarne."
pi_150734108
quote:
0s.gif 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 ;)
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)
pi_150734505
quote:
0s.gif 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?
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?
pi_150735010
quote:
0s.gif 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?
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.
Volkorenbrood: "Geen quotes meer in jullie sigs gaarne."
pi_150735451
quote:
0s.gif 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.
Haha oké, in ieder geval bedankt tot zover!
  woensdag 18 maart 2015 @ 12:46:13 #189
230788 n8n
Pragmatisch
pi_150770207
werkt zoiets met php (en zo ja, wat is de juiste markup)?

$var = ( isset( $this-when-true ) : $or-else );
Specialization is for insects”.—Robert Heinlein
pi_150770324
quote:
7s.gif 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 );
------___------ 53
----.(___).---- 42
---(o\_!_/o)---
  woensdag 18 maart 2015 @ 12:57:06 #191
230788 n8n
Pragmatisch
pi_150770592
quote:
0s.gif Op woensdag 18 maart 2015 12:49 schreef Rockfire het volgende:

[..]
[ code verwijderd ]

$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
Specialization is for insects”.—Robert Heinlein
pi_150771378
quote:
14s.gif 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
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?
Volkorenbrood: "Geen quotes meer in jullie sigs gaarne."
  woensdag 18 maart 2015 @ 13:30:23 #193
91039 mstx
2x1/2 = 1/2 x 1/2
pi_150771693
quote:
0s.gif 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?
Volgens mij krijg je dan alsnog een notice als je een niet-gedefinieerde variabele aan die functie meegeeft.
Op donderdag 2 juli 2009 22:41 schreef RTB het volgende:
als ik elk rap"liedje" een kans moest geven was ik aan het eind van dit millennium nog bezig met het tempo waarin die kotshoop uitgebraakt wordt.
👾
pi_150772003
quote:
0s.gif 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.
Dat wel ja, maar ik weet niet of het erg is.
Het geeft wel weer aan hoe enorm slecht PHP in elkaar steekt. :')
Volkorenbrood: "Geen quotes meer in jullie sigs gaarne."
  woensdag 18 maart 2015 @ 13:42:15 #195
91039 mstx
2x1/2 = 1/2 x 1/2
pi_150772134
quote:
0s.gif 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. :')
Wat is er precies slecht aan?
Op donderdag 2 juli 2009 22:41 schreef RTB het volgende:
als ik elk rap"liedje" een kans moest geven was ik aan het eind van dit millennium nog bezig met het tempo waarin die kotshoop uitgebraakt wordt.
👾
pi_150772462
quote:
0s.gif Op woensdag 18 maart 2015 13:42 schreef mstx het volgende:

[..]

Wat is er precies slecht aan?
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.
Volkorenbrood: "Geen quotes meer in jullie sigs gaarne."
pi_150773344
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 ]
When the student is ready, the teacher will appear.
When the student is truly ready, the teacher will disappear.
pi_150773500
quote:
0s.gif 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.
:? Isset() ís een language construct.
pi_150773908
quote:
1s.gif Op woensdag 18 maart 2015 14:12 schreef KomtTijd... het volgende:

[..]

:? Isset() ís een language construct.
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 ]
Volkorenbrood: "Geen quotes meer in jullie sigs gaarne."
  woensdag 18 maart 2015 @ 14:40:01 #200
12221 Tijn
Powered by MS Paint
pi_150774507
quote:
0s.gif 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
Dat is erg? :?
pi_150774686
quote:
5s.gif Op woensdag 18 maart 2015 14:40 schreef Tijn het volgende:

[..]

Dat is erg? :?
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.
Volkorenbrood: "Geen quotes meer in jullie sigs gaarne."
  woensdag 18 maart 2015 @ 14:58:03 #202
12221 Tijn
Powered by MS Paint
pi_150775018
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?
pi_150775875
quote:
14s.gif 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?
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.
Volkorenbrood: "Geen quotes meer in jullie sigs gaarne."
  woensdag 18 maart 2015 @ 15:28:34 #204
12221 Tijn
Powered by MS Paint
pi_150776064
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.
  donderdag 19 maart 2015 @ 09:26:26 #205
230788 n8n
Pragmatisch
pi_150803348
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)
Specialization is for insects”.—Robert Heinlein
  donderdag 19 maart 2015 @ 09:43:28 #206
230788 n8n
Pragmatisch
pi_150803763
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
1
2
3
<?php
( isset($_GET[$table[$i]) ? $$table[$i] = new data($table[$i]) : false );
?>

'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:
1
2
3
<?php
$page
->when('published')->take(-4); // laatste 4 gepubliceerde items van deze pagina
?>


[ Bericht 25% gewijzigd door n8n op 19-03-2015 10:06:16 ]
Specialization is for insects”.—Robert Heinlein
pi_150805025
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.
  donderdag 19 maart 2015 @ 10:44:40 #208
230788 n8n
Pragmatisch
pi_150805189
quote:
5s.gif 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.
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).
Specialization is for insects”.—Robert Heinlein
pi_150805377
Riep daar iemand SQL injection? :P
Volkorenbrood: "Geen quotes meer in jullie sigs gaarne."
pi_150805416
Je bent dus min of meer je eigen ORM aan het uitvinden? Daar is op zich niets mis mee nee.
pi_150805464
quote:
0s.gif Op donderdag 19 maart 2015 10:53 schreef Monolith het volgende:
Riep daar iemand SQL injection? :P
riep daar iemand prepared statements? :O
  donderdag 19 maart 2015 @ 10:57:05 #212
230788 n8n
Pragmatisch
pi_150805471
quote:
14s.gif 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.
Dat bewijst zonder dat ik weet wat dat is, de noodzaak voor een ORM (8>

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.
Specialization is for insects”.—Robert Heinlein
pi_150805536
quote:
1s.gif Op donderdag 19 maart 2015 10:56 schreef KomtTijd... het volgende:

[..]

riep daar iemand prepared statements? :O
Natuurlijk, maar lijkt me relevant dat hij daar even rekening mee houdt.
Volkorenbrood: "Geen quotes meer in jullie sigs gaarne."
pi_150805625
quote:
7s.gif 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 (8>

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.
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.
  donderdag 19 maart 2015 @ 11:06:34 #215
230788 n8n
Pragmatisch
pi_150805737
quote:
1s.gif 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.
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)
Specialization is for insects”.—Robert Heinlein
pi_150806481
quote:
1s.gif 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?
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.
Volkorenbrood: "Geen quotes meer in jullie sigs gaarne."
  donderdag 19 maart 2015 @ 11:47:30 #217
230788 n8n
Pragmatisch
pi_150806935
quote:
0s.gif 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.
de table names zet ik in een var:
1
2
3
4
<?php
$tables 
"show tables from $db"//of 
$tables = ['table1''table2'];
?>
Dit zijn dan de enige namen die in een statement voor zouden moeten kunnen komen omdat ik daarover m'n loop draai, die checkt of er een match is met de get-key. De get-waarde van die key moet ik dus valideren. op /?malafide-code zou nooit een match kunnen zijn omdat deze 'string' niet in $tables voorkomt (theoretisch).

[ Bericht 12% gewijzigd door n8n op 19-03-2015 11:53:19 ]
Specialization is for insects”.—Robert Heinlein
  donderdag 19 maart 2015 @ 18:27:45 #218
230788 n8n
Pragmatisch
pi_150819717
Code op 40 manieren gerefactored voordat ik bedacht dat je in php de global scope moet definiëren. Aaaaarggh :'(
Specialization is for insects”.—Robert Heinlein
  donderdag 19 maart 2015 @ 20:39:33 #219
187069 slacker_nl
Sicko pur sang
pi_150824582
quote:
0s.gif 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?
Ow perl *;
1
2
3
4
 
$foo //= "bar" ; 
# is hetzelfde als 
$foo = defined $foo ? $foo : "bar" ; 
In theory there is no difference between theory and practice. In practice there is.
  donderdag 19 maart 2015 @ 23:06:08 #220
230788 n8n
Pragmatisch
pi_150831276
quote:
0s.gif Op donderdag 19 maart 2015 20:39 schreef slacker_nl het volgende:

[..]

Ow perl *;
[ code verwijderd ]

_O_

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.
Specialization is for insects”.—Robert Heinlein
pi_150879900
quote:
0s.gif 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?
:P In php 7

1$eenVariabele =  $dezeWaardeAlsHijBestaat ?? $andersDit;
pi_150895166
quote:
19s.gif Op zaterdag 21 maart 2015 12:49 schreef TwenteFC het volgende:

[..]

:P In php 7
[ code verwijderd ]

Je kan PHP 7 al uitproberen dan? De meest recente versie die gebruikt kan worden, is bij ons nog steeds PHP 5.6
pi_150900625
quote:
1s.gif 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 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.
pi_150932443
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.
pi_150940129
quote:
Dat is wel mooi. :)
  FOK!mycroftheld maandag 23 maart 2015 @ 14:37:10 #227
128465 verified  bondage
niet meer aanwezig op FOK!
pi_150948569
Hier nog mensen belang bij een leuke functie als database opschoon mannetje?

https://www.starapple.nl/vacatures/58-sql-dba/

:') _
  † In Memoriam † maandag 23 maart 2015 @ 15:07:13 #228
159335 Boze_Appel
Vrij Fruit
pi_150949513
quote:
14s.gif 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
:')
Carpe Libertatem
pi_150952447
quote:
14s.gif 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/

:') _
_O-
pi_150952465
quote:
10s.gif Op maandag 23 maart 2015 15:07 schreef Boze_Appel 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.
Volkorenbrood: "Geen quotes meer in jullie sigs gaarne."
  FOK!mycroftheld maandag 23 maart 2015 @ 16:41:04 #231
128465 verified  bondage
niet meer aanwezig op FOK!
pi_150952578
quote:
0s.gif 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.
Dit is inderdaad een voorbeeld van hoe je het absoluut niet moet doen. Leuk aanbod maar ik laat het liever aan me voorbij gaan |:(
  maandag 23 maart 2015 @ 21:39:27 #232
230788 n8n
Pragmatisch
pi_150964768
quote:
10s.gif 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 |:(
beter dan de eeuwige zoektocht naar een ondernemende teamplayer die van aanpakken weet.
Specialization is for insects”.—Robert Heinlein
pi_150965459
quote:
1s.gif Op maandag 23 maart 2015 21:39 schreef n8n het volgende:

[..]

beter dan de eeuwige zoektocht naar een ondernemende teamplayer die van aanpakken weet.
Zie jij dat vaak in vacatures? Ik zie toch voornamelijk zwaar op de inhoud gerichte vacatures voorbij komen.
Volkorenbrood: "Geen quotes meer in jullie sigs gaarne."
pi_150968386
quote:
0s.gif 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.
Nog niet geprobeerd nee, maar ik hou gewoon de RFC's in de gaten :P

https://wiki.php.net/rfc/isset_ternary
  maandag 23 maart 2015 @ 23:03:49 #235
230788 n8n
Pragmatisch
pi_150969085
quote:
1s.gif 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 lees ze eigenlijk vrijwel nooit, het zijn wel de vervelende pro-actieve teksten die negatief opvallen (geschreven door zo’n ‘vlotte’ marketing-asshole).
Specialization is for insects”.—Robert Heinlein
pi_150969888
quote:
7s.gif 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).
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. :P
Volkorenbrood: "Geen quotes meer in jullie sigs gaarne."
pi_150971698
:o Voor de grap HHVM eens geinstalleerd, maar dayum .. dat vliegt écht hard.

:P 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 ]
pi_150983717
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

When the student is ready, the teacher will appear.
When the student is truly ready, the teacher will disappear.
pi_151227063
PHP Generics

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
    
}
}
?>
When the student is ready, the teacher will appear.
When the student is truly ready, the teacher will disappear.
pi_151227777
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:

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]

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]
  dinsdag 31 maart 2015 @ 15:55:08 #242
91039 mstx
2x1/2 = 1/2 x 1/2
pi_151228355
quote:
99s.gif 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]
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.
Op donderdag 2 juli 2009 22:41 schreef RTB het volgende:
als ik elk rap"liedje" een kans moest geven was ik aan het eind van dit millennium nog bezig met het tempo waarin die kotshoop uitgebraakt wordt.
👾
pi_151229007
Thanks, ik zie het, het is de base href. Maar die heb ik nodig, anders zal ik alles moeten omzetten naar absolute paden.
  zondag 5 april 2015 @ 11:05:06 #244
118585 Crutch
Filantroop || Taalzwengel
pi_151381725
quote:
99s.gif 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.
Is het niet je browser die een request doet naar je favicon.ico?
Je moeder is een hamster
pi_151392965
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:

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);
}
 
}
?>

https://naiboo.wordpress.(...)ys-or-10080-minutes/

Maar die doet niks ;( Wat doe ik fout?
  FOK!mycroftheld zondag 5 april 2015 @ 17:43:24 #246
128465 verified  bondage
niet meer aanwezig op FOK!
pi_151393204
quote:
0s.gif 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?
Krijg je helemaal geen output? Alleen jpg verwijderen zou je hiermee moeten kunnen doen: $fileTypes="*.*"; veranderen in $fileTypes="*.jpg";
pi_151393495
quote:
11s.gif 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";
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.
pi_151393571
Heb je wel de foutmeldingen aan staan? En zijn er uberhaupt .jpg afbeeldingen die ouder dan 7 dagen zijn?
pi_151393648
Ik zou eerst eens debuggen op zijn PHP's. :P
Oftewel echo de verschillende variabelen om te zien of er überhaupt files gevonden worden, hoe oud ze zijn, enzovoort.
Volkorenbrood: "Geen quotes meer in jullie sigs gaarne."
pi_151393666
quote:
19s.gif 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?
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:

1[05-Apr-2015 10:58:54 CST6CDT] PHP Warning:  Module 'sqlite' already loaded in Unknown on line 0

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?
pi_151393749
quote:
0s.gif 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?
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.
pi_151394372
Geen resultaat. Ik heb nu gewoon het volledige pad in het script geplaatst:

1/home/dave/public_html/test

Zou verder niet weten wat fout gaat :/ Het pad vervangen door "./" hielp ook niet.
pi_151411296
Waarom doe je niet gewoon
1find /path/to/files -name="*.jpg" -mtime +7 -delete
pi_151417620
quote:
14s.gif Op maandag 6 april 2015 09:43 schreef KomtTijd... het volgende:
Waarom doe je niet gewoon
[ code verwijderd ]

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.
  dinsdag 7 april 2015 @ 18:10:06 #255
12221 Tijn
Powered by MS Paint
pi_151455380
Weet iemand of YouTube een API heeft om in te loggen vanaf je eigen website? Of moet je dan Google Sign-In gebruiken?
  dinsdag 7 april 2015 @ 18:11:06 #256
292596 Faux.
Fan van zichzelf
pi_151455412
quote:
5s.gif 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?
Vrij zeker dat het via Google moet
Hier schreef tong80 het volgende:
Faux is een FOK!held, zoals dat vroeger Gellarboy en Brechtje waren. Users die je koestert.
  dinsdag 7 april 2015 @ 18:14:18 #257
12221 Tijn
Powered by MS Paint
pi_151455532
quote:
11s.gif Op dinsdag 7 april 2015 18:11 schreef Faux. het volgende:

[..]

Vrij zeker dat het via Google moet
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.
pi_151456125
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
  dinsdag 7 april 2015 @ 18:37:18 #259
12221 Tijn
Powered by MS Paint
pi_151456363
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.
pi_151456511
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?
  dinsdag 7 april 2015 @ 18:44:38 #261
12221 Tijn
Powered by MS Paint
pi_151456593
quote:
14s.gif 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?
Ja, ik had ook nog wat anders gevonden. Ik denk dat het hiermee wel moet lukken, maar ik hoopte op een hapklaardere brok.
pi_151511322
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:

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)
);

Volgens mij is dit de eenvoudigste manier?
When the student is ready, the teacher will appear.
When the student is truly ready, the teacher will disappear.
pi_151513110
Die CONVERT_TZ() zou niet nodig moeten zijn. Zo wel dan staan de timezone settings van je server niet goed.
  Moderator / Redactie Sport vrijdag 10 april 2015 @ 22:37:43 #264
359864 crew  Nattekat
De roze zeekat
pi_151564778
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?

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)
);
100.000 katjes
Maakte de 100.000e post in BIT
Er eens op uit?
pi_151565444
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.
------___------ 53
----.(___).---- 42
---(o\_!_/o)---
  Moderator / Redactie Sport vrijdag 10 april 2015 @ 23:07:39 #266
359864 crew  Nattekat
De roze zeekat
pi_151565782
quote:
0s.gif 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.
Error Code: 1005. Can't create table 'test.trans' (errno: 150)
100.000 katjes
Maakte de 100.000e post in BIT
Er eens op uit?
pi_151568907
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.
pi_151586900
quote:
0s.gif Op vrijdag 10 april 2015 23:07 schreef Nattekat het volgende:

[..]

Error Code: 1005. Can't create table 'test.trans' (errno: 150)
Heb je het al geprobeerd door eerst de tabellen aan te maken en pas daarna de foreign key constraints?

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);
------___------ 53
----.(___).---- 42
---(o\_!_/o)---
  Moderator / Redactie Sport zaterdag 11 april 2015 @ 22:40:58 #269
359864 crew  Nattekat
De roze zeekat
pi_151593544
quote:
0s.gif 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 ]

Dat deed 't hem :)
100.000 katjes
Maakte de 100.000e post in BIT
Er eens op uit?
pi_151604578
quote:
0s.gif Op zaterdag 11 april 2015 22:40 schreef Nattekat het volgende:

[..]

Dat deed 't hem :)
^O^
------___------ 53
----.(___).---- 42
---(o\_!_/o)---
pi_151640744
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:

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)


[ Bericht 2% gewijzigd door Aether op 13-04-2015 15:26:46 ]
When the student is ready, the teacher will appear.
When the student is truly ready, the teacher will disappear.
  maandag 13 april 2015 @ 12:05:27 #272
12221 Tijn
Powered by MS Paint
pi_151640844
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.
pi_151640993
beter dan serialize inderdaad, als je de mogelijkheid hebt.
pi_151644589
quote:
14s.gif 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.
Heb ik ook eens gedaan. :)
pi_151650303
Mwoah ik zou dat toch eerder in een config bestand zetten, vooral als er omgevings specifieke waarden in staan.
🕰️₿🕰️₿🕰️₿🕰️₿🕰️₿🕰️ TikTok next Block
pi_151650476
quote:
0s.gif 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.
Dat voor simpele configs dus en native JSON NoSql databases voor daadwerkelijke data.
Volkorenbrood: "Geen quotes meer in jullie sigs gaarne."
pi_151650900
quote:
0s.gif Op maandag 13 april 2015 17:11 schreef Monolith het volgende:

[..]

Dat voor simpele configs dus en native JSON NoSql databases voor daadwerkelijke data.
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.
🕰️₿🕰️₿🕰️₿🕰️₿🕰️₿🕰️ TikTok next Block
pi_151659973
quote:
0s.gif 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.
  maandag 13 april 2015 @ 21:26:48 #279
12221 Tijn
Powered by MS Paint
pi_151660696
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.
pi_151660920
quote:
14s.gif 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.
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.
Volkorenbrood: "Geen quotes meer in jullie sigs gaarne."
  maandag 13 april 2015 @ 21:35:12 #281
12221 Tijn
Powered by MS Paint
pi_151661092
quote:
1s.gif 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.
Voornamelijk omdat ik weet hoe dat werkt :+
pi_151661236
quote:
10s.gif Op maandag 13 april 2015 21:35 schreef Tijn het volgende:

[..]

Voornamelijk omdat ik weet hoe dat werkt :+
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.
Volkorenbrood: "Geen quotes meer in jullie sigs gaarne."
  maandag 13 april 2015 @ 21:39:03 #283
12221 Tijn
Powered by MS Paint
pi_151661304
quote:
1s.gif 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.
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.
pi_151661497
quote:
5s.gif 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.
Er zijn doorgaans behoorlijke voordelen qua performance.
Volkorenbrood: "Geen quotes meer in jullie sigs gaarne."
  maandag 13 april 2015 @ 21:47:38 #285
12221 Tijn
Powered by MS Paint
pi_151661722
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.
pi_151661872
quote:
14s.gif 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.
Voor de gemiddelde applicatie is MySQL dan ook prima.
Volkorenbrood: "Geen quotes meer in jullie sigs gaarne."
pi_151663605
When the student is ready, the teacher will appear.
When the student is truly ready, the teacher will disappear.
pi_151664285
quote:
1s.gif 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.
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.
pi_151667868
quote:
0s.gif 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.
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.
pi_151703614
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.
🕰️₿🕰️₿🕰️₿🕰️₿🕰️₿🕰️ TikTok next Block
pi_151704164
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.

[...]
When the student is ready, the teacher will appear.
When the student is truly ready, the teacher will disappear.
pi_152187593
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 ]
  vrijdag 1 mei 2015 @ 21:04:34 #293
272287 henrivo
Tikt tegen jassies
  vrijdag 1 mei 2015 @ 22:05:10 #294
118585 Crutch
Filantroop || Taalzwengel
pi_152194254
quote:
0s.gif Op vrijdag 1 mei 2015 21:04 schreef henrivo het volgende:
Symfony O+ _O_
Je moeder is een hamster
  vrijdag 1 mei 2015 @ 22:06:34 #295
272287 henrivo
Tikt tegen jassies
pi_152194312
We missen eigenlijk een symfony-topic, las dat er wel een laravel-topic is
pi_152196097
quote:
0s.gif 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
Nah, dit topic is al niet zo actief. :P
pi_152237449
quote:
0s.gif 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? :P
pi_152373809
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 ]
pi_152385158
Iemand hier ervaring met OctoberCMS (Laravel 5)
  Moderator / Redactie Sport / Devops donderdag 7 mei 2015 @ 22:57:15 #300
176766 crew  zoem
zoemt
pi_152387467
quote:
0s.gif 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?
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.
pi_152393910
quote:
0s.gif 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.
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. :P
abonnement Unibet Coolblue
Forum Opties
Forumhop:
Hop naar:
(afkorting, bv 'KLB')