FOK!forum / Digital Corner / [PHP/(My)SQL] voor dummies #111
Crutchvrijdag 27 september 2013 @ 23:13
php.jpg


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!
Lightvrijdag 27 september 2013 @ 23:14
quote:
0s.gif Op vrijdag 27 september 2013 23:12 schreef Crutch het volgende:

[..]

Een template engine gebruiken?
PHP is een prima template engine :)
Crutchvrijdag 27 september 2013 @ 23:16
quote:
0s.gif Op vrijdag 27 september 2013 23:14 schreef Light het volgende:

[..]

PHP is een prima template engine :)
Ik echo en print niets meer tegenwoordig.
Lightvrijdag 27 september 2013 @ 23:26
quote:
0s.gif Op vrijdag 27 september 2013 22:48 schreef xaban06 het volgende:
Hoe moet je PHP en HTML apart houden? Vooral met loops vind ik het lastig.

Stukje php, daaroder html, met php er door heen, onleesbaar.
Sowieso eerst zorgen dat je alle data opgehaald hebt, met alleen php en eventueel mysql. Dus geen output geven als je nog data uit de database aan het verwerken bent.

Als je alles opgehaald hebt, kun je een template-bestand includen (met require, dat wel.) Daar gebruik je html en een klein beetje php om de data die je hebt opgehaald weer te geven. Bekijk dan ook eens de alternatieve syntax.

En ja, dat kan ongetwijfeld verbeterd worden. Het is een eerste stap. Data verzamelen en de daadwerkelijke output regelen zijn twee verschillende dingen, als je die probeert samen te voegen wordt het al snel een onleesbare en onwerkbare brij.
Lightvrijdag 27 september 2013 @ 23:28
quote:
0s.gif Op vrijdag 27 september 2013 23:16 schreef Crutch het volgende:

[..]

Ik echo en print niets meer tegenwoordig.
1
2
3
4
<?php
$output 
'Dat hoeft ook niet';
exit(
$output);
?>
;)
Crutchvrijdag 27 september 2013 @ 23:29
quote:
0s.gif Op vrijdag 27 september 2013 23:28 schreef Light het volgende:

[..]
[ code verwijderd ]

;)
:') ok ok ok
Crutchvrijdag 27 september 2013 @ 23:29
quote:
0s.gif Op vrijdag 27 september 2013 23:28 schreef Light het volgende:

[..]
[ code verwijderd ]

;)
Kan ook wel met die($output); zeker? hihaho
xaban06maandag 30 september 2013 @ 22:22
Niet echt PHP gerelateerd, maar wist niet waar ik het anders moet plaatsen.

Ik wil dmv RewriteEngine/RewriteRule nette URL's maken.

http://www.voorbeed.com/index.php?a=nieuws&b=12
moet worden
http://www.voorbeed.com/nieuws/12/titel-van-artikel.html

Dit doe ik nu dmv:
1
2
3
4
5
6
7
8
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} -f
RewriteRule ^(.*) $1 [L]
RewriteCond %{REQUEST_URI} !(.*)/$
RewriteRule ^(.*)$ $1/ [L,R=301]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?q=$1

In de PHP scripts vang ik alles op in $q, deze wordt geparsed op '/' en op die manier verwerk ik het verder.

In het bovenstaande is .html niet meegenomen, omdat ik bij mijn huidige projecten dat niet heb,

Hoe moet ik bovenstaande aanpassen zodat het wordt zoals ik wil?
zoemmaandag 30 september 2013 @ 22:39
Ik begrijp je vraag even niet. Je hebt nu een werkende htaccess zeg je. Wat lukt er niet?
KomtTijd...dinsdag 1 oktober 2013 @ 12:29
Even voor de Symfony2 gebruikers:

een hoop van mijn entities hebben dezelfde velden zoals id, createdtime, createdby, enz.. Die wil ik overhevelen naar een base entity die ik in iedere bundle kan extenden.

Waar kan ik die base entity dan het beste neerzetten?
#ANONIEMdinsdag 1 oktober 2013 @ 12:47
quote:
0s.gif Op maandag 30 september 2013 22:22 schreef xaban06 het volgende:
Niet echt PHP gerelateerd, maar wist niet waar ik het anders moet plaatsen.

Ik wil dmv RewriteEngine/RewriteRule nette URL's maken.

http://www.voorbeed.com/index.php?a=nieuws&b=12
moet worden
http://www.voorbeed.com/nieuws/12/titel-van-artikel.html

Dit doe ik nu dmv:
[ code verwijderd ]

In de PHP scripts vang ik alles op in $q, deze wordt geparsed op '/' en op die manier verwerk ik het verder.

In het bovenstaande is .html niet meegenomen, omdat ik bij mijn huidige projecten dat niet heb,

Hoe moet ik bovenstaande aanpassen zodat het wordt zoals ik wil?
Waar haal je $q vandaan?, $_GET["q"] ?

[ Bericht 0% gewijzigd door #ANONIEM op 01-10-2013 12:48:49 ]
#ANONIEMdinsdag 1 oktober 2013 @ 12:55
Waarom niet iets in deze richting?

.htaccess
1
2
3
4
5
RewriteEngine On

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^/]*)/([^/]*)/([^/]*)\.html$ /index.php?a=$1&b=$2&c=$3 [L]

index.php
1
2
3
4
5
<?php
echo $_GET["a"];
echo 
$_GET["b"];
echo 
$_GET["c"];
?>
xaban06dinsdag 1 oktober 2013 @ 13:34
quote:
2s.gif Op dinsdag 1 oktober 2013 12:47 schreef d4v1d het volgende:

[..]

Waar haal je $q vandaan?, $_GET["q"] ?
Ja.
#ANONIEMdinsdag 1 oktober 2013 @ 13:34
quote:
0s.gif Op dinsdag 1 oktober 2013 13:34 schreef xaban06 het volgende:

[..]

Ja.
Is mijn post hierboven geen oplossing?
xaban06dinsdag 1 oktober 2013 @ 13:36
quote:
2s.gif Op dinsdag 1 oktober 2013 13:34 schreef d4v1d het volgende:

[..]

Is mijn post hierboven geen oplossing?
Oh, over het hoofd gezien. Vanavond even proberen, zit nu op werk :)
Boze_Appeldinsdag 1 oktober 2013 @ 13:39
quote:
2s.gif Op dinsdag 1 oktober 2013 12:55 schreef d4v1d het volgende:
Waarom niet iets in deze richting?

.htaccess
[ code verwijderd ]

index.php
[ code verwijderd ]

De rerwiteengine on hoeft niet. Tenzij je op een gare server zit. Je kan het niet aanzetten als het niet mag van de server en anders staat het toch wel aan. Het is vrij antiek.

Het kan geen kwaad ofzo, maar is gewoon niet nodig.
#ANONIEMdinsdag 1 oktober 2013 @ 14:47
quote:
7s.gif Op dinsdag 1 oktober 2013 13:39 schreef Boze_Appel het volgende:

[..]

De rerwiteengine on hoeft niet. Tenzij je op een gare server zit. Je kan het niet aanzetten als het niet mag van de server en anders staat het toch wel aan. Het is vrij antiek.

Het kan geen kwaad ofzo, maar is gewoon niet nodig.
Dat dus.
xaban06vrijdag 4 oktober 2013 @ 14:15
quote:
2s.gif Op dinsdag 1 oktober 2013 12:55 schreef d4v1d het volgende:
Waarom niet iets in deze richting?

.htaccess
[ code verwijderd ]

index.php
[ code verwijderd ]

Dit werkt:
http://www.xx.nl/nieuws/12/test.html

Dit werkt niet:
http://www.xx.nl/nieuws/12/
http://www.xx.nl/nieuws/

Terwijl die URL's ook geparsed moeten worden.
#ANONIEMvrijdag 4 oktober 2013 @ 14:16
quote:
0s.gif Op vrijdag 4 oktober 2013 14:15 schreef xaban06 het volgende:

[..]

Dit werkt:
http://www.xx.nl/nieuws/12/test.html

Dit werkt niet:
http://www.xx.nl/nieuws/12/
http://www.xx.nl/nieuws/

Terwijl die URL's ook geparsed moeten worden.
Is op te lossen. Zal ik vanmiddag even naar kijken voor je, momenteel op school.
#ANONIEMvrijdag 4 oktober 2013 @ 16:51
quote:
0s.gif Op vrijdag 4 oktober 2013 14:15 schreef xaban06 het volgende:

[..]

Dit werkt:
http://www.xx.nl/nieuws/12/test.html

Dit werkt niet:
http://www.xx.nl/nieuws/12/
http://www.xx.nl/nieuws/

Terwijl die URL's ook geparsed moeten worden.
je begrijpt het systeem verkeerd. Het enige wat je wilt is dat altijd de index wordt geladen. Geen $q=nieuws $a=12 etc. Je moet een router maken die je urls omzet in bruikbare data. Aan de hand daarvan laadt je een pagina in.
zoemvrijdag 4 oktober 2013 @ 17:14
Wat totalvamp zegt, maar dan met aanvullende info :P
quote:
2s.gif Op dinsdag 1 oktober 2013 12:55 schreef d4v1d het volgende:
Waarom niet iets in deze richting?

.htaccess
[ code verwijderd ]

index.php
[ code verwijderd ]

Dat is geen praktische oplossing wanneer je een verscheidenheid aan urls hebt. Je hebt niet altijd 3 argumenten die deze exacte vorm aannemen. Het parsen van de url kun je het best over laten aan php door alles door te sturen naar index.php die uitzoekt welke route genomen moet worden aan de hand van een router class. Even een greep uit beschikbare routers:

Slim Framework | Zend Framework | CakePHP

Met name die van Slim is eenvoudig en simpel op te zetten zonder allerlei poespas. De benodigde htaccess volgens de docs:
1
2
3
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [QSA,L]
De anderen zijn uitgebreider, maar hebben iets meer overhead en een hogere learning curve.
#ANONIEMvrijdag 4 oktober 2013 @ 17:18
quote:
0s.gif Op vrijdag 4 oktober 2013 17:14 schreef zoem het volgende:
Wat totalvamp zegt, maar dan met aanvullende info :P

[..]

Dat is geen praktische oplossing wanneer je een verscheidenheid aan urls hebt. Je hebt niet altijd 3 argumenten die deze exacte vorm aannemen. Het parsen van de url kun je het best over laten aan php door alles door te sturen naar index.php die uitzoekt welke route genomen moet worden aan de hand van een router class. Even een greep uit beschikbare routers:

Slim Framework | Zend Framework | CakePHP

Met name die van Slim is eenvoudig en simpel op te zetten zonder allerlei poespas. De benodigde htaccess volgens de docs:
[ code verwijderd ]

De anderen zijn uitgebreider, maar hebben iets meer overhead en een hogere learning curve.
srry typ op mijn telefoon vanuit het bad xD moeilijk een aantal voorbeelden te geven.
#ANONIEMvrijdag 4 oktober 2013 @ 17:19
quote:
0s.gif Op vrijdag 4 oktober 2013 17:14 schreef zoem het volgende:
Wat totalvamp zegt, maar dan met aanvullende info :P

[..]

Dat is geen praktische oplossing wanneer je een verscheidenheid aan urls hebt. Je hebt niet altijd 3 argumenten die deze exacte vorm aannemen. Het parsen van de url kun je het best over laten aan php door alles door te sturen naar index.php die uitzoekt welke route genomen moet worden aan de hand van een router class. Even een greep uit beschikbare routers:

Slim Framework | Zend Framework | CakePHP

Met name die van Slim is eenvoudig en simpel op te zetten zonder allerlei poespas. De benodigde htaccess volgens de docs:
[ code verwijderd ]

De anderen zijn uitgebreider, maar hebben iets meer overhead en een hogere learning curve.
Ah, ik deed het altijd door alle argumenten optioneel te doen maar dan ziet je regex er behoorlijk rommelig uit.

^([^/]*)(?:/)?((?:[^/]*))?(?:/)?(?:([^/]*)\.html)?$ zou het in dit geval zijn met de laatste 2 optioneel :') Ik ga ook even naar zo'n router ding kijken.

[ Bericht 4% gewijzigd door #ANONIEM op 04-10-2013 17:20:55 ]
xaban06vrijdag 4 oktober 2013 @ 23:04
Ik kom er net achter dat date() geen taal ondersteuning heeft, ik moet dus gebruik maken van strftime(), echter begrijp ik er bar weinig van.

Hoe kan ik
1
2
date( 'l j F Y H:i', strtotime($news_row["post_date"]) )
// output: Friday 4 October 2013 23:04
vertalen naar strftime() ?
#ANONIEMvrijdag 4 oktober 2013 @ 23:16
http://www.php.net/manual/en/function.setlocale.php
xaban06vrijdag 4 oktober 2013 @ 23:41
quote:
Ja, maar date werkt niet met setlocate :) En de strftime functie kom ik maar niet uit.
zoemzaterdag 5 oktober 2013 @ 00:09
quote:
0s.gif Op vrijdag 4 oktober 2013 23:04 schreef xaban06 het volgende:
Ik kom er net achter dat date() geen taal ondersteuning heeft, ik moet dus gebruik maken van strftime(), echter begrijp ik er bar weinig van.

Hoe kan ik
[ code verwijderd ]

vertalen naar strftime() ?
Kwestie van de strftime docs lezen?
1
2
3
4
5
6
l -> %A
j -> %e
F -> %B
Y -> %G
H -> %H
i -> %M
Dan is het aan jou om dat in de functie te verwerken. De argumenten van strftime() zijn identiek aan date(), dus nu zou het een koud kunstje moeten zijn. Daarvóór nog even de locale goed zetten, liefst aan het begin van je script. Als je niet alles op nl_NL wil maar alleen de tijd/datum zou je alleen LC_TIME op Nederlands kunnen zetten ipv LC_ALL.

Je kunt overigens mysql al de vertaalslag laten maken naar een unix timestamp met UNIX_TIMESTAMP(`col`).
xaban06zaterdag 5 oktober 2013 @ 13:01
quote:
0s.gif Op zaterdag 5 oktober 2013 00:09 schreef zoem het volgende:

[..]

Kwestie van de strftime docs lezen?
[ code verwijderd ]

Dan is het aan jou om dat in de functie te verwerken. De argumenten van strftime() zijn identiek aan date(), dus nu zou het een koud kunstje moeten zijn. Daarvóór nog even de locale goed zetten, liefst aan het begin van je script. Als je niet alles op nl_NL wil maar alleen de tijd/datum zou je alleen LC_TIME op Nederlands kunnen zetten ipv LC_ALL.

Je kunt overigens mysql al de vertaalslag laten maken naar een unix timestamp met UNIX_TIMESTAMP(`col`).
Zo simpel :o

Thanks
xaban06zaterdag 5 oktober 2013 @ 13:53
Is het veilig genoeg om wachtwoorden op te slaan dmv password_hash() ?
Voorbeeld:
1password_hash("wachtwoord", PASSWORD_DEFAULT);

Ik wilde wachtwoorden opslaan als md5 met een salt, maar toen kwam ik bovenstaande tegen. Welke is veiliger in geval van dat je database wordt gekraakt?
themolezaterdag 5 oktober 2013 @ 14:17
Password_hash is veiliger.

Password_hash gebruikt (default) het bcrypt algoritme met een (door php gegenereerde) salt. Het bcrypt algoritme is een sterker hashing algoritme dan het verouderde md5. Het is overigens wel mogelijk om zelf een salt mee te geven aan de Password_hash functie.

[ Bericht 13% gewijzigd door themole op 05-10-2013 14:42:38 ]
Tijnzaterdag 5 oktober 2013 @ 14:32
Password_hash is awesome. Als je PHP 5.5 of hoger beschikbaar hebt, is het the way to go.
xaban06zaterdag 5 oktober 2013 @ 14:55
quote:
14s.gif Op zaterdag 5 oktober 2013 14:32 schreef Tijn het volgende:
Password_hash is awesome. Als je PHP 5.5 of hoger beschikbaar hebt, is het the way to go.
Ik kwam er net achter dat ik dus PHP 5.3 had, snel geupdate naar 5.5 :)

Gaaf ook dat de salt iedere keer veranderd.
Chandlerdinsdag 8 oktober 2013 @ 07:38
Ik heb een script geschreven en wil die via codecanyon verkopen, echter kreeg ik een email terug met de volgende mededeling:

Please make sure the code adheres to PEAR standards.

Nu heb ik de PEAR documentatie gelezen en geinstalleerd onder PHP zodat ik mijn script kan checken, echter zie ik dat er bergen met 'fouten' uitkomen die volgens mij geen fouten zijn maar keuzes in 'opmaak'.

Nu mijn vraag, wat bedoelen ze precies met bovenstaande tekst en zal de code volgens phpcs 100% goed moeten zijn? want dan moet ik zelfs regels gaan afbreken bij 8x karakters... iemand een idee?
Lightdinsdag 8 oktober 2013 @ 07:53
quote:
5s.gif Op dinsdag 8 oktober 2013 07:38 schreef Chandler het volgende:
Ik heb een script geschreven en wil die via codecanyon verkopen, echter kreeg ik een email terug met de volgende mededeling:

Please make sure the code adheres to PEAR standards.

Nu heb ik de PEAR documentatie gelezen en geinstalleerd onder PHP zodat ik mijn script kan checken, echter zie ik dat er bergen met 'fouten' uitkomen die volgens mij geen fouten zijn maar keuzes in 'opmaak'.

Nu mijn vraag, wat bedoelen ze precies met bovenstaande tekst en zal de code volgens phpcs 100% goed moeten zijn? want dan moet ik zelfs regels gaan afbreken bij 8x karakters... iemand een idee?
Volgens deze pagina zou het gebruik van de term "PEAR standards" niet helemaal terecht zijn. Waarschijnlijk moet je de WordPress standards hanteren. En ja, dat kan heel goed betekenen dat er wel een maximum aantal tekens per regel is.
Tijndinsdag 8 oktober 2013 @ 08:02
quote:
5s.gif Op dinsdag 8 oktober 2013 07:38 schreef Chandler het volgende:

want dan moet ik zelfs regels gaan afbreken bij 8x karakters...
Sowieso een beetje raar om code te verkopen met zulke lange regels erin.
Chandlerdinsdag 8 oktober 2013 @ 12:59
@Tijn: wat is raar aan lange regels? verklaar je nader!!

Oh het betreft een PHP app waarvan ze de broncode toch niet mogen aanpassen (alleen gebruiken)
KomtTijd...dinsdag 8 oktober 2013 @ 13:12
quote:
0s.gif Op zaterdag 5 oktober 2013 14:55 schreef xaban06 het volgende:

[..]

Ik kwam er net achter dat ik dus PHP 5.3 had, snel geupdate naar 5.5 :)

Gaaf ook dat de salt iedere keer veranderd.
? nee hoor, alleen als je het wachtwoord aanpast.

Het grappige van Bcrypt is dat de hash ook de salt bevat om die hash te genereren. Je gebruikt dus eigenlijk de hash direct als salt. Maar met password_hash() gebeurt dat onder water.

Als je geen PHP5.5 kunt draaien moet je even zelf een bcrypt-functie maken, stelt niet zoveel voor. MD5 hashes gebruiken voor passwords mag inmiddels wel een doodzonde heten op programmeergebied.
Pakspuldinsdag 8 oktober 2013 @ 13:15
quote:
14s.gif Op dinsdag 8 oktober 2013 13:12 schreef KomtTijd... het volgende:

[..]

? nee hoor, alleen als je het wachtwoord aanpast.

Het grappige van Bcrypt is dat de hash ook de salt bevat om die hash te genereren. Je gebruikt dus eigenlijk de hash direct als salt. Maar met password_hash() gebeurt dat onder water.

Als je geen PHP5.5 kunt draaien moet je even zelf een bcrypt-functie maken, stelt niet zoveel voor. MD5 hashes gebruiken voor passwords mag inmiddels wel een doodzonde heten op programmeergebied.
Om de programmeerwereld een gunst te verlenen moeten ze die er gewoon uit flikkeren. Tig sites die dan op hun bek gaan, maar dan wel inzien dat ze hun code moeten aanpassen.
KomtTijd...dinsdag 8 oktober 2013 @ 13:17
quote:
0s.gif Op dinsdag 8 oktober 2013 13:15 schreef Pakspul het volgende:

[..]

Om de programmeerwereld een gunst te verlenen moeten ze die er gewoon uit flikkeren. Tig sites die dan op hun bek gaan, maar dan wel inzien dat ze hun code moeten aanpassen.
MD5 heeft absoluut zijn waarde (integrity checks), maar niet voor password hashing. Daar is het nooit voor bedoeld geweest.
Lightdinsdag 8 oktober 2013 @ 18:38
quote:
0s.gif Op dinsdag 8 oktober 2013 13:15 schreef Pakspul het volgende:

[..]

Om de programmeerwereld een gunst te verlenen moeten ze die er gewoon uit flikkeren. Tig sites die dan op hun bek gaan, maar dan wel inzien dat ze hun code moeten aanpassen.
Dan moeten we plaintext ook maar afschaffen, er zijn ook nog sites die wachtwoorden als plaintext opslaan...
#ANONIEMdinsdag 8 oktober 2013 @ 18:44
quote:
0s.gif Op dinsdag 8 oktober 2013 18:38 schreef Light het volgende:

[..]

Dan moeten we plaintext ook maar afschaffen, er zijn ook nog sites die wachtwoorden als plaintext opslaan...
Ik heb een keer gezien dat iemand base64 gebruikte :D
Lightdinsdag 8 oktober 2013 @ 19:11
quote:
14s.gif Op dinsdag 8 oktober 2013 13:17 schreef KomtTijd... het volgende:

[..]

MD5 heeft absoluut zijn waarde (integrity checks), maar niet voor password hashing. Daar is het nooit voor bedoeld geweest.
MD5 kan helpen om vast te stellen of een bestand gewijzigd is. Maar als de hash niet gewijzigd is, kun je toch een ander bestand hebben. Daar zijn wat (oude) voorbeelden van, zoals deze: http://www.win.tue.nl/hashclash/Nostradamus/
zoemdinsdag 8 oktober 2013 @ 19:15
quote:
1s.gif Op dinsdag 8 oktober 2013 18:44 schreef d4v1d het volgende:

[..]

Ik heb een keer gezien dat iemand base64 gebruikte :D
base64 heeft natuurlijk ook zo zijn gebruiken, zoals het encoderen van binaire data of het embedden van een image in css. Maar het heeft weinig met cryptografie te maken.
KomtTijd...dinsdag 8 oktober 2013 @ 19:45
quote:
0s.gif Op dinsdag 8 oktober 2013 19:11 schreef Light het volgende:

[..]

MD5 kan helpen om vast te stellen of een bestand gewijzigd is. Maar als de hash niet gewijzigd is, kun je toch een ander bestand hebben. Daar zijn wat (oude) voorbeelden van, zoals deze: http://www.win.tue.nl/hashclash/Nostradamus/
Geen enkele hash is collision vrij, maar zolang bewuste manipulatie geen issue is, is de toevalsfactor zo klein dat je prima MD5 kunt gebruiken.
#ANONIEMdinsdag 8 oktober 2013 @ 22:42
quote:
0s.gif Op dinsdag 8 oktober 2013 19:15 schreef zoem het volgende:

[..]

base64 heeft natuurlijk ook zo zijn gebruiken, zoals het encoderen van binaire data of het embedden van een image in css. Maar het heeft weinig met cryptografie te maken.
Ja, dat snap ik _O- Diegene dus niet. :')
zoemdinsdag 8 oktober 2013 @ 22:44
;)
Pakspulwoensdag 9 oktober 2013 @ 10:04
quote:
0s.gif Op dinsdag 8 oktober 2013 18:38 schreef Light het volgende:

[..]

Dan moeten we plaintext ook maar afschaffen, er zijn ook nog sites die wachtwoorden als plaintext opslaan...
Ik ga nu MySQL opbellen om VARCHAR af te schaffen! :(
x-tremedwoensdag 9 oktober 2013 @ 10:51
ik zit ook met een php probleempje, zelf voldoende ervaring met cms systemen maar zelf iets van scrap opbouwen lukt totaal niet.

Voor een projectje wat ik aan het testen ben moet ik straks een URL aanroepen ( site2.nl/variabel1/variabel2) waarbij beide variabelen uit enkel cijfers bestaan.

nu is het probleem dat ik vanaf mijn eigen site als output van de 2 variabelen het tweede getal met een komma krijg.

Ik moet dus eigenlijk een simpel php script hebben wat

www.site.nl/script/1234/56,78
redirect naar
www.site2.nl/script/1234/5678

of wat ook mag indien makkelijker

www.site.nl/script.php?var1=1234&var2=56,78
redirect naar
www.site2.nl/script/1234/5678

[ Bericht 17% gewijzigd door x-tremed op 09-10-2013 10:59:31 ]
Maringowoensdag 9 oktober 2013 @ 11:25
quote:
0s.gif Op woensdag 9 oktober 2013 10:51 schreef x-tremed het volgende:
ik zit ook met een php probleempje, zelf voldoende ervaring met cms systemen maar zelf iets van scrap opbouwen lukt totaal niet.

Voor een projectje wat ik aan het testen ben moet ik straks een URL aanroepen ( site2.nl/variabel1/variabel2) waarbij beide variabelen uit enkel cijfers bestaan.

nu is het probleem dat ik vanaf mijn eigen site als output van de 2 variabelen het tweede getal met een komma krijg.

Ik moet dus eigenlijk een simpel php script hebben wat

www.site.nl/script/1234/56,78
redirect naar
www.site2.nl/script/1234/5678

of wat ook mag indien makkelijker

www.site.nl/script.php?var1=1234&var2=56,78
redirect naar
www.site2.nl/script/1234/5678
En wat heb je zoal geprobeerd?
Crutchwoensdag 9 oktober 2013 @ 19:20
quote:
0s.gif Op woensdag 9 oktober 2013 10:51 schreef x-tremed het volgende:
ik zit ook met een php probleempje, zelf voldoende ervaring met cms systemen maar zelf iets van scrap opbouwen lukt totaal niet.

Voor een projectje wat ik aan het testen ben moet ik straks een URL aanroepen ( site2.nl/variabel1/variabel2) waarbij beide variabelen uit enkel cijfers bestaan.

nu is het probleem dat ik vanaf mijn eigen site als output van de 2 variabelen het tweede getal met een komma krijg.

Ik moet dus eigenlijk een simpel php script hebben wat

www.site.nl/script/1234/56,78
redirect naar
www.site2.nl/script/1234/5678

of wat ook mag indien makkelijker

www.site.nl/script.php?var1=1234&var2=56,78
redirect naar
www.site2.nl/script/1234/5678
Zoek op str_replace();
Crutchwoensdag 9 oktober 2013 @ 19:24
Of lees of het met een .htaccess kan.
BlueNumberzaterdag 12 oktober 2013 @ 19:43
Ik heb in een php-script een if-statement dat in geval dat true is een redirect moet doen. Dus bijvoorbeeld.

if($x==1){
header('Location: user.php');
}

Als ik het lokaal test, dan werkt de redirect. Echter, als ik het upload naar de host om het te testen op mn website, dan wordt de redirect niet uitgevoerd.

Is er een reden waarom een redirect wel lokaal, maar niet online werkt?
zoemzaterdag 12 oktober 2013 @ 19:48
Kan meerdere oorzaken hebben. Zorg in ieder geval dat je niets output vóórdat de headers verstuurd worden. Dus een rondzwervende spatie op een lege regel kan al een boosdoener zijn. Verder: zet error_reporting en display_errors aan. Probeer ook volledige (absolute) urls te gebruiken en niet alleen de bestandsnaam in de location header:

php.net: header()
quote:
Note:

HTTP/1.1 requires an absolute URI as argument to » Location: including the scheme, hostname and absolute path, but some clients accept relative URIs. You can usually use $_SERVER['HTTP_HOST'], $_SERVER['PHP_SELF'] and dirname() to make an absolute URI from a relative one yoursel
Dus lees altijd de documentatie goed door :)
BlueNumberzaterdag 12 oktober 2013 @ 21:00
quote:
0s.gif Op zaterdag 12 oktober 2013 19:48 schreef zoem het volgende:
Kan meerdere oorzaken hebben. Zorg in ieder geval dat je niets output vóórdat de headers verstuurd worden. Dus een rondzwervende spatie op een lege regel kan al een boosdoener zijn. Verder: zet error_reporting en display_errors aan. Probeer ook volledige (absolute) urls te gebruiken en niet alleen de bestandsnaam in de location header:

php.net: header()

[..]

Dus lees altijd de documentatie goed door :)
Ik heb er maar redirects mbv javascript van gemaakt.
zoemzaterdag 12 oktober 2013 @ 21:20
quote:
0s.gif Op zaterdag 12 oktober 2013 21:00 schreef BlueNumber het volgende:

[..]

Ik heb er maar redirects mbv javascript van gemaakt.
En als je javascript uit hebt staan?
BlueNumberzaterdag 12 oktober 2013 @ 21:40
quote:
0s.gif Op zaterdag 12 oktober 2013 21:20 schreef zoem het volgende:

[..]

En als je javascript uit hebt staan?
Dat zien we dan wel weer, het is toch nog een flutsite, maar ik wil het wel graag online testen.

Ik moet het idd nog wat eleganter oplossen.
#ANONIEMzaterdag 12 oktober 2013 @ 21:44
quote:
0s.gif Op zaterdag 12 oktober 2013 21:00 schreef BlueNumber het volgende:

[..]

Ik heb er maar redirects mbv javascript van gemaakt.
En wat als google langskomt? :')
bondagezaterdag 12 oktober 2013 @ 21:45
quote:
0s.gif Op zaterdag 12 oktober 2013 21:40 schreef BlueNumber het volgende:

[..]

Dat zien we dan wel weer, het is toch nog een flutsite, maar ik wil het wel graag online testen.

Ik moet het idd nog wat eleganter oplossen.
Deze ook al geprobeerd? http://php.net/manual/en/function.http-redirect.php
Chandlerzondag 13 oktober 2013 @ 15:00
Kleine mysql vraag :@

1
2
3
4
5
6
select 
    `movies`.`serie` AS `serie`,
    count(`movies`.`episode_id`) AS `episodes` 
from `movies` 
group by `movies`.`serie` 
order by `movies`.`serie`

deze query werkt goed, echter wil ik graag nu ook het aantal seizoenen toevoegen (in dezelfde query) maar dat lukt me nit echt... of echt niet, heb veel geprobeerd en nu las ik wat over case? maar zou iemand eens een voorbeeld kunnen schetsen (hoeft niet werkend te zijn, als het maar in de richting komt, moet er tenslotte van leren ;)) op basis van mijn simpele structuur? :D want met tutors kwam ik er niet echt uit...
zoemzondag 13 oktober 2013 @ 15:04
Een subquery zou een optie kunnen zijn. De vraag is echter hoe de tabelstructuur eruit ziet om een inhoudelijk antwoord te kunnen geven.
Maringozondag 13 oktober 2013 @ 15:55
quote:
5s.gif Op zondag 13 oktober 2013 15:00 schreef Chandler het volgende:
Kleine mysql vraag :@
[ code verwijderd ]

deze query werkt goed, echter wil ik graag nu ook het aantal seizoenen toevoegen (in dezelfde query) maar dat lukt me nit echt... of echt niet, heb veel geprobeerd en nu las ik wat over case? maar zou iemand eens een voorbeeld kunnen schetsen (hoeft niet werkend te zijn, als het maar in de richting komt, moet er tenslotte van leren ;)) op basis van mijn simpele structuur? :D want met tutors kwam ik er niet echt uit...
Tablestructuur is wel handig inderdaad. Want staat het niet bij de episodes aangegeven in welk seizoen ze zijn?
Chandlerzondag 13 oktober 2013 @ 17:18
Oeps, zondag hé, rook zit nog steeds in m'n hoofd... :Z

Structuur;
1
2
3
4
5
  `serie` varchar(255) 
  `season_id` tinyint(3) 
  `episode` varchar(255)
  `episode_id` tinyint(3)
  `source` varchar(255)

Ik heb hiervoor al een view aangemaakt die op dit moment de unieke serie namen met aantal afleveringen er achter, echter zou ik graag ook per serie het aantal seizoenen willen berekenen zoals bovenstaand...
Chandlermaandag 14 oktober 2013 @ 18:43
ben er reeds achter gewoon met count(distinct `movies`.`episode_id`).
bondagemaandag 14 oktober 2013 @ 21:22
quote:
0s.gif Op zondag 13 oktober 2013 17:18 schreef Chandler het volgende:
Oeps, zondag hé, rook zit nog steeds in m'n hoofd... :Z

Structuur;
[ code verwijderd ]

Ik heb hiervoor al een view aangemaakt die op dit moment de unieke serie namen met aantal afleveringen er achter, echter zou ik graag ook per serie het aantal seizoenen willen berekenen zoals bovenstaand...
Hoe heb je dit precies genormaliseerd? Als ik het zo zie sla je de naam van de serie bij elk seizoen-id op. Imo kun je hier beter een koppeltabel van maken en de serienamen los opslaan in een tabel en ook als ID in deze opslaan. Zelfde geldt voor episode en source.
Chandlerdinsdag 15 oktober 2013 @ 07:13
Nee ik heb het niet genormaliseerd, maar gebruik views en probeer op deze manier te normaliseren..
vallisarosadinsdag 15 oktober 2013 @ 07:52
quote:
14s.gif Op dinsdag 15 oktober 2013 07:13 schreef Chandler het volgende:
Nee ik heb het niet genormaliseerd, maar gebruik views en probeer op deze manier te normaliseren..
Ik zou toch gaan normaliseren, je krijgt je data dan ook eenvoudiger terug.
Chandlerdinsdag 15 oktober 2013 @ 07:55
Daar ben ik mee eens, zou zelf voor een andere opzet kiezen maar aangezien ik deze opzet steeds *geupdated* aangeleverd krijg is dit tijdelijk even nodig en vandaar dat ik daarom met 'views' wil werken...
pascal08dinsdag 22 oktober 2013 @ 19:12
Hebben jullie enig idee wat het PHP-equivalent van de volgende python functie is?

1ctypes.c_int32()
rekenwonderdinsdag 22 oktober 2013 @ 21:18
Beetje weinig context. Wat wil je? Casten misschien?
Tijndinsdag 22 oktober 2013 @ 21:28
quote:
0s.gif Op dinsdag 22 oktober 2013 19:12 schreef pascal08 het volgende:
Hebben jullie enig idee wat het PHP-equivalent van de volgende python functie is?
[ code verwijderd ]

Bedoel je intval() ofzo?
bondagedinsdag 22 oktober 2013 @ 21:47
quote:
0s.gif Op dinsdag 22 oktober 2013 19:12 schreef pascal08 het volgende:
Hebben jullie enig idee wat het PHP-equivalent van de volgende python functie is?
[ code verwijderd ]

Ligt eraan waarvoor je die functie gebruikt en wat het doet... Ik heb geen verstand van Python en dit zegt me eigenlijk niets. Kan er ook niet veel over vinden trouwens.
slacker_nldinsdag 22 oktober 2013 @ 22:44
quote:
0s.gif Op dinsdag 22 oktober 2013 19:12 schreef pascal08 het volgende:
Hebben jullie enig idee wat het PHP-equivalent van de volgende python functie is?
[ code verwijderd ]

http://docs.python.org/2/library/ctypes.html
quote:
Represents the C 32-bit signed int datatype. Usually an alias for c_int.
http://php.net/manual/en/language.types.integer.php
quote:
The size of an integer is platform-dependent, although a maximum value of about two billion is the usual value (that's 32 bits signed). 64-bit platforms usually have a maximum value of about 9E18. PHP does not support unsigned integers. Integer size can be determined using the constant PHP_INT_SIZE, and maximum value using the constant PHP_INT_MAX since PHP 4.4.0 and PHP 5.0.5.
Rockfiredonderdag 24 oktober 2013 @ 14:27
Anders doet Google even irritant :(
php_zpsff89048d.png
Pakspuldonderdag 24 oktober 2013 @ 14:31
quote:
0s.gif Op donderdag 24 oktober 2013 14:27 schreef Rockfire het volgende:
Anders doet Google even irritant :(
[ afbeelding ]
php.net heeft mogelijk last van mallware of een false positive van Google.
Rockfiredonderdag 24 oktober 2013 @ 14:44
quote:
0s.gif Op donderdag 24 oktober 2013 14:31 schreef Pakspul het volgende:

[..]

php.net heeft mogelijk last van mallware of een false positive van Google.
Ja dat snap ik, maar ik gok op het laatste, dus doet Google irritant
Pakspuldonderdag 24 oktober 2013 @ 14:47
quote:
0s.gif Op donderdag 24 oktober 2013 14:44 schreef Rockfire het volgende:

[..]

Ja dat snap ik, maar ik gok op het laatste, dus doet Google irritant
Nou, best aardig van Google om de waarschuwing te geven.

Het is irritant aangezien je de manual nodig hebt :P http://devdocs.io/php/
Rockfiredonderdag 24 oktober 2013 @ 14:49
quote:
0s.gif Op donderdag 24 oktober 2013 14:47 schreef Pakspul het volgende:

[..]

Nou, best aardig van Google om de waarschuwing te geven.

Het is irritant aangezien je de manual nodig hebt :P http://devdocs.io/php/
Klopt :Y

Die link is niet zo makkelijk als die van php.net. Als ik de manual van een bepaalde functie wil hebben, ga ik altijd naar http://php.net/<;functie>
Pakspuldonderdag 24 oktober 2013 @ 14:50
quote:
0s.gif Op donderdag 24 oktober 2013 14:49 schreef Rockfire het volgende:

[..]

Klopt :Y

Die link is niet zo makkelijk als die van php.net. Als ik de manual van een bepaalde functie wil hebben, ga ik altijd naar http://php.net/<;functie>
boo fucking whoo :P Linkermenu werkt perfect. Daarnaast, helpt je editor niet bij de functie?
#ANONIEMdonderdag 24 oktober 2013 @ 15:04
quote:
0s.gif Op donderdag 24 oktober 2013 14:44 schreef Rockfire het volgende:

[..]

Ja dat snap ik, maar ik gok op het laatste, dus doet Google irritant
http://www.reddit.com/r/P(...)n_officially/ccyjvw4

Oplossing: http://www.reddit.com/r/P(...)n_officially/ccyk3ii
Pakspuldonderdag 24 oktober 2013 @ 15:07
quote:
Als ik die regels aan mijn hosts file moet gaan toevoegen dan heb ik nog niet echt het idee dat zij het hebben opgelost.
#ANONIEMdonderdag 24 oktober 2013 @ 15:08
quote:
0s.gif Op donderdag 24 oktober 2013 15:07 schreef Pakspul het volgende:

[..]

Als ik die regels aan mijn hosts file moet gaan toevoegen dan heb ik nog niet echt het idee dat zij het hebben opgelost.
Maar dan zit jij in ieder geval veilig.
KomtTijd...donderdag 24 oktober 2013 @ 15:51
quote:
0s.gif Op donderdag 24 oktober 2013 14:44 schreef Rockfire het volgende:

[..]

Ja dat snap ik, maar ik gok op het laatste, dus doet Google irritant
De userprefs.js file was daadwerkelijk infected.

Het irritante is dat het nu weer 24 uur duurt voordat Google dat registreert. Zeker met een website met zo'n grote impact.
KomtTijd...donderdag 24 oktober 2013 @ 15:57
quote:
Die titel :D :')
Daar kon je natuurlijk op wachten.
MichielPHmaandag 28 oktober 2013 @ 15:29
Volgens mij vrij simpel op te lossen, maar kan zo snel geen eenvoudige oplossing bedenken:

Ik heb een tabel met per gebruiker per dag gegevens. De dag is een int, zaterdag is 6, zondag is 0, maandag is 1, etc. Ik vraag gisteren, vandaag en morgen op. Gaat prima.

Echter, ik wil het ook gesorteerd op datum weergeven. Hoe doe ik dat? Als ik gisteren de query had uitgevoerd, krijg ik dus 3 rijen met als dag 0, 1 en 6 terug. Ik wil het in volgorde 6, 0, 1 zien. Kan iemand een zetje in de goede richting geven?
KomtTijd...maandag 28 oktober 2013 @ 15:38
je sorteert gewoon op de date lijkt me?
#ANONIEMmaandag 28 oktober 2013 @ 15:41
quote:
0s.gif Op maandag 28 oktober 2013 15:29 schreef MichielPH het volgende:
Volgens mij vrij simpel op te lossen, maar kan zo snel geen eenvoudige oplossing bedenken:

Ik heb een tabel met per gebruiker per dag gegevens. De dag is een int, zaterdag is 6, zondag is 0, maandag is 1, etc. Ik vraag gisteren, vandaag en morgen op. Gaat prima.

Echter, ik wil het ook gesorteerd op datum weergeven. Hoe doe ik dat? Als ik gisteren de query had uitgevoerd, krijg ik dus 3 rijen met als dag 0, 1 en 6 terug. Ik wil het in volgorde 6, 0, 1 zien. Kan iemand een zetje in de goede richting geven?
Waarom een int? Gewoon een date nemen.
KomtTijd...maandag 28 oktober 2013 @ 15:46
Sowieso is het onzin de dag los op te slaan, die kun je gewoon met DAYOFWEEK(date) uit je date destilleren.
MichielPHmaandag 28 oktober 2013 @ 15:47
quote:
1s.gif Op maandag 28 oktober 2013 15:41 schreef d4v1d het volgende:

[..]

Waarom een int? Gewoon een date nemen.
Omdat het geen date is, het is weekdag. Wat voor vandaag geldt, geldt ook voor volgende week maandag. Per gebruiker heb ik dus maar 7 rijen welke het hele jaar gelden.

[ Bericht 5% gewijzigd door MichielPH op 28-10-2013 15:54:52 ]
KomtTijd...maandag 28 oktober 2013 @ 15:55
Je hebt dus maar 7 records, die als een soort loopje een weekrooster vormen?

En een bijzondere functie die gisteren, vandaag en morgen ophaalt?

Dan zou ik die bijzondere functie ze ook gewoon in die volgorde in een array laten stoppen.
MichielPHmaandag 28 oktober 2013 @ 16:01
quote:
5s.gif Op maandag 28 oktober 2013 15:55 schreef KomtTijd... het volgende:
Je hebt dus maar 7 records, die als een soort loopje een weekrooster vormen?

En een bijzondere functie die gisteren, vandaag en morgen ophaalt?

Dan zou ik die bijzondere functie ze ook gewoon in die volgorde in een array laten stoppen.
Het probleem is echter dat de volgorde dus verandert per dag: vandaag zou het resultaat van weekdagen zijn: 0, 1, 2 (zo, ma, di). Gisteren was dit 0, 1, 6 ( zo, ma, za), terwijl ik 6, 0, 1 (za, zo, ma) wil.
KomtTijd...maandag 28 oktober 2013 @ 16:05
hoe ziet je functie er dan uit?
vallisarosamaandag 28 oktober 2013 @ 16:10
1
2
3
4
5
6
7
8
9
10
11
12
select gebruiker, 1 as dag
   from tabel
 where dag = DAYOFWEEK(CURDATE())
union all
select gebruiker, 2 as dag
  from table
 where dag = DAYOFWEEK(CURDATE()) -1 
union all
select gebruiker, 3 as dag
  from table
 where dag = DAYOFWEEK(CURDATE()) -2
order by gebruiker, dag

Of gebruik een soort van decode functie als dat kan in je sql.
MichielPHmaandag 28 oktober 2013 @ 16:10
Ik gebruik CakePHP, dus de query zo:

1
2
3
4
5
6
$weekday = date("w");

$serviceTime = $this->User->ServiceTime->find('all', array(
    'conditions' => array('user_id' => $user['User']['user_id'], 'day' => array(($weekday - 1) % 7, $weekday, ($weekday + 1) % 7)),
    'recursive' => -1                
));
MichielPHmaandag 28 oktober 2013 @ 16:21
quote:
0s.gif Op maandag 28 oktober 2013 16:10 schreef vallisarosa het volgende:

[ code verwijderd ]

Of gebruik een soort van decode functie als dat kan in je sql.
Kan ik wat mee!
Crutchmaandag 4 november 2013 @ 18:13
Wat is het rustig hier..
Zijn we ineens goed in PHP geworden?
pascal08donderdag 7 november 2013 @ 01:45
Hoe kan ik ervoor zorgen dat de mappenstructuur met XAMPP hetzelfde werkt als met een webserver? Het lijkt zo simpel, maar ik kom er niet uit.

Als ik een website upload op een server dan zorg ik ervoor dat alles wat niet voor jan-en-alleman beschikbaar mag zijn buiten de 'public' folder komt. Als ik dan bijvoorbeeld een URL in een CSS file definieer dan is de root gelijk aan de 'public' folder.


Voorbeeld:
1
2
3
4
5
6
application
system
public_html
---assets
-----css
-------styles.css

Ik zou styles.css includen met het pad: "/assets/css/styles.css"

Als ik echter lokaal wil testen met XAMPP dan wordt deze URL: "localhost/assets/css/styles.css", omdat XAMPP localhost als root ziet.

Hoe zorg ik ervoor dat ik niet alle URL's steeds hoef te veranderen of de configuratie XAMPP hoef te veranderen voor verschillende projecten?
pascal08donderdag 7 november 2013 @ 02:45
quote:
0s.gif Op donderdag 7 november 2013 01:45 schreef pascal08 het volgende:
Hoe kan ik ervoor zorgen dat de mappenstructuur met XAMPP hetzelfde werkt als met een webserver? Het lijkt zo simpel, maar ik kom er niet uit.

Als ik een website upload op een server dan zorg ik ervoor dat alles wat niet voor jan-en-alleman beschikbaar mag zijn buiten de 'public' folder komt. Als ik dan bijvoorbeeld een URL in een CSS file definieer dan is de root gelijk aan de 'public' folder.

Voorbeeld:
[ code verwijderd ]

Ik zou styles.css includen met het pad: "/assets/css/styles.css"

Als ik echter lokaal wil testen met XAMPP dan wordt deze URL: "localhost/assets/css/styles.css", omdat XAMPP localhost als root ziet.

Hoe zorg ik ervoor dat ik niet alle URL's steeds hoef te veranderen of de configuratie XAMPP hoef te veranderen voor verschillende projecten?
Ik heb het antwoord al gevonden: http://www.codingcereal.c(...)calhost-using-xampp/
KomtTijd...donderdag 7 november 2013 @ 09:33
xamp werkt niets anders dan een online host, het is allebei gewoon apache.

zet gewoon een base url in je config bestand, dan heb je nooit gezeik meer als je je website verplaatst.
urseldonderdag 7 november 2013 @ 10:04
quote:
0s.gif Op maandag 4 november 2013 18:13 schreef Crutch het volgende:
Wat is het rustig hier..
Zijn we ineens goed in PHP geworden?
Bezoek tegenwoordig ook wel eens een PHP gebruikersgroep hier in de buurt waar ik ook mijn vragen kwijt kan. :7
Juicyhildonderdag 7 november 2013 @ 14:01
Ik zit vandaag de dag meer op .NET :@
pascal08donderdag 7 november 2013 @ 14:15
quote:
14s.gif Op donderdag 7 november 2013 09:33 schreef KomtTijd... het volgende:
xamp werkt niets anders dan een online host, het is allebei gewoon apache.

zet gewoon een base url in je config bestand, dan heb je nooit gezeik meer als je je website verplaatst.
Maar dan zal ik toch al die duizenden URL's moeten bewerken met dat stukje base url.
papernotedonderdag 7 november 2013 @ 21:52
quote:
0s.gif Op donderdag 7 november 2013 14:15 schreef pascal08 het volgende:

[..]

Maar dan zal ik toch al die duizenden URL's moeten bewerken met dat stukje base url.
Gewoon een find-and-replace met "localhost" en "$config->baseUrl()"?
Pakspuldonderdag 7 november 2013 @ 22:33
quote:
0s.gif Op donderdag 7 november 2013 14:15 schreef pascal08 het volgende:

[..]

Maar dan zal ik toch al die duizenden URL's moeten bewerken met dat stukje base url.
Laat het een les zijn, je kan zelfs een php script er voor schrijven.
slacker_nldonderdag 7 november 2013 @ 22:36
Daarvoor heb je toch gewoon relatieve paden..?
Maringodonderdag 7 november 2013 @ 23:21
quote:
0s.gif Op donderdag 7 november 2013 14:15 schreef pascal08 het volgende:

[..]

Maar dan zal ik toch al die duizenden URL's moeten bewerken met dat stukje base url.
Als het er duizenden zijn, vraag ik me toch af of er niet nog ergens wat fout gaat..
pascal08donderdag 7 november 2013 @ 23:26
quote:
1s.gif Op donderdag 7 november 2013 23:21 schreef Maringo het volgende:

[..]

Als het er duizenden zijn, vraag ik me toch af of er niet nog ergens wat fout gaat..
Dat vraag ik me ook altijd of als ik de reactie zo lees. :P Ik ondervind nu in ieder geval geen problemen meer met een virtual host.
KomtTijd...donderdag 7 november 2013 @ 23:32
quote:
0s.gif Op donderdag 7 november 2013 14:15 schreef pascal08 het volgende:

[..]

Maar dan zal ik toch al die duizenden URL's moeten bewerken met dat stukje base url.
als het goed is alleen de base url in je template. Als de rest nu goed gaat met relatieve paden, zal dat ook goed blijven gaan.

Voordeel van ditsoort server-specifieke dingen in een config bestand zetten is dat je heel gemakkelijk kunt kopiëren van de ene naar de andere host, door gewoon al je bestanden behalve de config.php te kopiëren.
pascal08donderdag 7 november 2013 @ 23:47
quote:
14s.gif Op donderdag 7 november 2013 23:32 schreef KomtTijd... het volgende:

[..]

als het goed is alleen de base url in je template. Als de rest nu goed gaat met relatieve paden, zal dat ook goed blijven gaan.

Voordeel van ditsoort server-specifieke dingen in een config bestand zetten is dat je heel gemakkelijk kunt kopiëren van de ene naar de andere host, door gewoon al je bestanden behalve de config.php te kopiëren.
Ook de URL's van sprites, afbeeldingen, ajax-url's etc.

Wat je zegt over config files is iets dat steeds beter tot me door begint te dringen.

Ik ben nu Laravel aan het ontdekken en ik vind het eigenlijk best een goed framework. CodeIgniter is dood aan het gaan toch?
Swetseneggervrijdag 8 november 2013 @ 16:18
Ik ben bezig front-end editting te bouwen in een webshopje wat ik ooit geknutseld heb. Daarin komt nu dit prachtige stukje proza voor

1<span onclick="var input = document.createElement('input'); input.setAttribute('value', this.firstChild.nodeValue); input.setAttribute('name', 'ac'); input.setAttribute('onblur', 'document.getElementById(\'front11\').submit();'); this.parentNode.replaceChild(input, this);">2015104015</span>

Feitelijk veranderd dit een span met een nummertje in een input veld met het nummertje in de value van dat input veld:

1<input value="2014102016" name="ac" onblur="document.getElementById('front11').submit();">

En onblur moet hij dan het form submitten. Het form ziet er NA de DOM wijziging als volgt uit

1
2
3
4
<form id="front11" action="/index.php" method="post">
<input type="hidden" name="id" value="3394" />
<input value="2014102016" name="AC" onblur="document.getElementById('front11').submit();">
</form>

Het form submit ook keurig, maar... alleen de id value wordt gesubmit en ac value niet.

Iemand een idee?
Rockfirevrijdag 8 november 2013 @ 16:22
quote:
7s.gif Op vrijdag 8 november 2013 16:18 schreef Swetsenegger het volgende:
Ik ben bezig front-end editting te bouwen in een webshopje wat ik ooit geknutseld heb. Daarin komt nu dit prachtige stukje proza voor
[ code verwijderd ]

Feitelijk veranderd dit een span met een nummertje in een input veld met het nummertje in de value van dat input veld:
[ code verwijderd ]

En onblur moet hij dan het form submitten. Het form ziet er NA de DOM wijziging als volgt uit
[ code verwijderd ]

Het form submit ook keurig, maar... alleen de id value wordt gesubmit en ac value niet.

Iemand een idee?
Zo een eerste snelle blik: het input veld van ac heeft geen type.
KomtTijd...vrijdag 8 november 2013 @ 16:31
type default naar text, zou geen probleem mogen zijn.

misschien wordt de onblur getriggerd vóór de change ofzo?
Swetseneggervrijdag 8 november 2013 @ 16:50
quote:
14s.gif Op vrijdag 8 november 2013 16:31 schreef KomtTijd... het volgende:
type default naar text, zou geen probleem mogen zijn.
Klopt, maar ik heb hem voor de zekerheid ook een type toegevoegd met hetzelfde resultaat :)
quote:
misschien wordt de onblur getriggerd vóór de change ofzo?
Nee, onclick word de span input, dat zie ik ook als ik het element inspecteer. En pas daarna wordt de onblur getriggerd. Dus in de DOM is het element aangepast voor het form gesubmit wordt. De submit zit ook in de input, dus kan uberhaupt niet onblur getriggerd worden als de input er nog niet is denk ik?
papernotezaterdag 9 november 2013 @ 11:39
quote:
7s.gif Op vrijdag 8 november 2013 16:18 schreef Swetsenegger het volgende:
Ik ben bezig front-end editting te bouwen in een webshopje wat ik ooit geknutseld heb. Daarin komt nu dit prachtige stukje proza voor
[ code verwijderd ]

Feitelijk veranderd dit een span met een nummertje in een input veld met het nummertje in de value van dat input veld:
[ code verwijderd ]

En onblur moet hij dan het form submitten. Het form ziet er NA de DOM wijziging als volgt uit
[ code verwijderd ]

Het form submit ook keurig, maar... alleen de id value wordt gesubmit en ac value niet.

Iemand een idee?
Weet je zeker dat het formulier er na de DOM-wijziging zo uit ziet als je hier plaatst? Valt het gegenereerde input-element niet per ongeluk buiten het formulier?

Als je de inhoud van de onblur nu eens vervangt door iets als alert(this.parent), zit je dan echt in het formulier?
Swetseneggerzaterdag 9 november 2013 @ 11:50
quote:
5s.gif Op zaterdag 9 november 2013 11:39 schreef papernote het volgende:

[..]

Weet je zeker dat het formulier er na de DOM-wijziging zo uit ziet als je hier plaatst? Valt het gegenereerde input-element niet per ongeluk buiten het formulier?

Als je de inhoud van de onblur nu eens vervangt door iets als alert(this.parent), zit je dan echt in het formulier?
Ik ben er al uit. Het form werd gestart in de ene TR en geëindigd in de ander. En dat vinden browsers blijkbaar niet leuk.
papernotezaterdag 9 november 2013 @ 12:49
quote:
4s.gif Op zaterdag 9 november 2013 11:50 schreef Swetsenegger het volgende:

[..]

Ik ben er al uit. Het form werd gestart in de ene TR en geëindigd in de ander. En dat vinden browsers blijkbaar niet leuk.
Dat lijkt me inderdaad geen valide HTML. Ik zou de form om je hele tabel heen gooien en/of om de tr-tags heen.
Swetseneggerzaterdag 9 november 2013 @ 12:55
quote:
3s.gif Op zaterdag 9 november 2013 12:49 schreef papernote het volgende:

[..]

Dat lijkt me inderdaad geen valide HTML. Ik zou de form om je hele tabel heen gooien en/of om de tr-tags heen.
Dat gaat niet aangezien er in de tabel nog wat forms staan voor het winkelmandje en wishlist. :)
Dus ik heb nu per item blok (artikelcode + naam, omschrijving, prijs) een form. Ik submit toch per onderdeel onBlur, dus dat is sowieso geen probleem.

Deze edit mogelijkheid is natuurlijk alleen beschikbaar voor admins die zijn ingelogged. Dus deze wat messy code staat niet in de gebruikers front-end.
papernotezaterdag 9 november 2013 @ 13:14
quote:
7s.gif Op zaterdag 9 november 2013 12:55 schreef Swetsenegger het volgende:

[..]

Dat gaat niet aangezien er in de tabel nog wat forms staan voor het winkelmandje en wishlist. :)
Dus ik heb nu per item blok (artikelcode + naam, omschrijving, prijs) een form. Ik submit toch per onderdeel onBlur, dus dat is sowieso geen probleem.

Deze edit mogelijkheid is natuurlijk alleen beschikbaar voor admins die zijn ingelogged. Dus deze wat messy code staat niet in de gebruikers front-end.
Kun je niet één groot formulier maken met meerdere submit-opties (met dezelfde name en een verschillende value) en dan op de server bepalen wat je wilt doen?
Swetseneggerzaterdag 9 november 2013 @ 13:34
quote:
5s.gif Op zaterdag 9 november 2013 13:14 schreef papernote het volgende:

[..]

Kun je niet één groot formulier maken met meerdere submit-opties (met dezelfde name en een verschillende value) en dan op de server bepalen wat je wilt doen?
Heb ik ook heel even naar gekeken. Vereist wel een compleet andere opbouw en dat valt wel een beetje buiten de scope eigenlijk. Op zich werkt het nu goed. En ik heb het goed commented :P
TwenteFCzaterdag 9 november 2013 @ 17:59
quote:
0s.gif Op donderdag 24 oktober 2013 14:47 schreef Pakspul het volgende:

[..]

Nou, best aardig van Google om de waarschuwing te geven.

Het is irritant aangezien je de manual nodig hebt :P http://devdocs.io/php/
:o Prachtige site man, een bookmarkje waard.
Skunk-mmaandag 11 november 2013 @ 15:41
Ik heb bij een verse installatie van phpbb3 de config tabel van mn oude phpbb3 in mysql gezet, maar die instellingen worden helemaal niet gebruikt..

Er staan gewoon alle standaard dingen.. als bijv:

yourdomain.com
A short text to describe your forum

en de rest is ook allemaal standaard.

Weet iemand hoe dat kan?
Devolutionmaandag 11 november 2013 @ 16:08
En je hebt gecheckt dat in de config table van je website database jouw waarden staan (dat de default config table dus overschreven is)? En weet je ook zeker dat phpBB3 zijn configuratie-instellingen daar ook vandaan haalt?
Skunk-mmaandag 11 november 2013 @ 16:44
hij staat goed in mysql ja..

Toen ik hier op mijn lokale pc die tabel gekoppeld had aan een verse install (zelfde versie als de oude was.. nou weet ik dit niet zeker maar volgens mij liet ie het toen ook niet zien totdat ik em geupdate had.. maarja nou is ie volledig up to date dus dat schiet niet op.
Chandlerwoensdag 13 november 2013 @ 08:38
--

[ Bericht 100% gewijzigd door Chandler op 13-11-2013 08:42:58 ]
boem-dikkiewoensdag 13 november 2013 @ 13:43
quote:
0s.gif Op maandag 11 november 2013 16:44 schreef Skunk-m het volgende:
hij staat goed in mysql ja..

Toen ik hier op mijn lokale pc die tabel gekoppeld had aan een verse install (zelfde versie als de oude was.. nou weet ik dit niet zeker maar volgens mij liet ie het toen ook niet zien totdat ik em geupdate had.. maarja nou is ie volledig up to date dus dat schiet niet op.
Heet de database ook hetzelfde?
Chandlerwoensdag 13 november 2013 @ 19:42
Wat vinden jullie van me scrippie? :D

http://pastebin.com/g2xTLLtP
Lightwoensdag 13 november 2013 @ 21:19
quote:
6s.gif Op woensdag 13 november 2013 19:42 schreef Chandler het volgende:
Wat vinden jullie van me scrippie? :D

http://pastebin.com/g2xTLLtP
Onleesbaar.
Pakspulwoensdag 13 november 2013 @ 21:39
quote:
6s.gif Op woensdag 13 november 2013 19:42 schreef Chandler het volgende:
Wat vinden jullie van me scrippie? :D

http://pastebin.com/g2xTLLtP
Bagger
Juicyhilwoensdag 13 november 2013 @ 21:40
quote:
6s.gif Op woensdag 13 november 2013 19:42 schreef Chandler het volgende:
Wat vinden jullie van me scrippie? :D

http://pastebin.com/g2xTLLtP
Lekker vatbaar voor SQL Injection
Juicyhilwoensdag 13 november 2013 @ 21:40
en wat de twee heren boven mij zeiden
Lightwoensdag 13 november 2013 @ 22:39
quote:
6s.gif Op woensdag 13 november 2013 19:42 schreef Chandler het volgende:
Wat vinden jullie van me scrippie? :D

http://pastebin.com/g2xTLLtP
Niet uitvoerbaar. Als ik de code copy-paste vanaf pastebin, krijg ik de melding "This archive is broken, get a good version". Dat blijkt dan over table structure, table data en file data te gaan.
Crutchwoensdag 13 november 2013 @ 22:41
quote:
6s.gif Op woensdag 13 november 2013 19:42 schreef Chandler het volgende:
Wat vinden jullie van me scrippie? :D

http://pastebin.com/g2xTLLtP
dafuq is this?
GIdonderdag 14 november 2013 @ 07:44
quote:
6s.gif Op woensdag 13 november 2013 19:42 schreef Chandler het volgende:
Wat vinden jullie van me scrippie? :D

http://pastebin.com/g2xTLLtP
What did I just read ?
Chandlerdonderdag 14 november 2013 @ 08:08
@Light: Klopt, dat de data onleesbaar is, moet zo zijn.
@Pakspul; bedankt voor je zeer nuttige reactie van 1 woord..
Juicyhil: Klopt, maar het script heeft ook niet als doel beschikbaar te zijn voor de 'hele' wereld... maar opbouwende tips kan ik altijd wat mee ;)
@Light: Het klopt inderdaad dat het om bestands en mysql data te gaan, en daaromheen zit een installer verwerkt, het rare is alleen dat het bestand bij mij deze melding niet geeft en bij jullie wel...
@Crutch: Versleutelde 'data' met een installer er aan vast geknoopt.
@GI: Read above :P

Het is vreemd dat de data op jullie systemen als 'broken' wordt weergegeven terwijl hier de code uitgevoerd kan worden, snap niet geheel waar het probleem zit maar daar moet ik dus nog mee spelen..
Lightdonderdag 14 november 2013 @ 08:26
Alvast een tip dan:
Magic constants horen te worden geschreven met hoofdletters, dus __DIR__ en __FILE__.
Chandlerdonderdag 14 november 2013 @ 08:39
Thanks, kleine vraag; jullie testen vast allemaal in een linux omgeving?

het probleem zit hem in PHP_EOL die in windows omgeving anders is dan in de linux omgeving....

[ Bericht 44% gewijzigd door Chandler op 14-11-2013 08:46:32 ]
mstxdonderdag 14 november 2013 @ 08:48
quote:
0s.gif Op donderdag 14 november 2013 08:39 schreef Chandler het volgende:
Thanks, kleine vraag; jullie testen vast allemaal in een linux omgeving?

het probleem zit hem in PHP_EOL die in windows omgeving anders is dan in de linux omgeving....
Op Debian werkt het niet.
Chandlerdonderdag 14 november 2013 @ 08:50
quote:
0s.gif Op donderdag 14 november 2013 08:48 schreef mstx het volgende:

[..]

Op Debian werkt het niet.
Daar ging ik al vanuit, alles anders dan Windows servers zal deze archive als broken betitelen... komt door PHP_EOL in PHP die onder windows anders is dan linux .....
KomtTijd...donderdag 14 november 2013 @ 09:32
PHP_EOL gedraagt zich op ieder platform hetzelfde, namelijk: geef de line-ending van dit platform.

Als je specifiek een windows line-ending nodig hebt, slaat het dus nergens op om PHP_EOL te gebruiken.
Chandlerdonderdag 14 november 2013 @ 09:59
KomtTijd; Klopt! daar ben ik dan nu ook achter gekomen, dus ga ik daar mee aan de slag!
HalveZwaredonderdag 14 november 2013 @ 10:35
quote:
6s.gif Op woensdag 13 november 2013 19:42 schreef Chandler het volgende:
jullie
Het doet pijn aan m'n ogen....
Pakspuldonderdag 14 november 2013 @ 10:40
quote:
4s.gif Op donderdag 14 november 2013 08:08 schreef Chandler het volgende:
@Light: Klopt, dat de data onleesbaar is, moet zo zijn.
@Pakspul; bedankt voor je zeer nuttige reactie van 1 woord..
Juicyhil: Klopt, maar het script heeft ook niet als doel beschikbaar te zijn voor de 'hele' wereld... maar opbouwende tips kan ik altijd wat mee ;)
@Light: Het klopt inderdaad dat het om bestands en mysql data te gaan, en daaromheen zit een installer verwerkt, het rare is alleen dat het bestand bij mij deze melding niet geeft en bij jullie wel...
@Crutch: Versleutelde 'data' met een installer er aan vast geknoopt.
@GI: Read above :P

Het is vreemd dat de data op jullie systemen als 'broken' wordt weergegeven terwijl hier de code uitgevoerd kan worden, snap niet geheel waar het probleem zit maar daar moet ik dus nog mee spelen..
Ok, reactie in één woord: MVC
rekenwonderdonderdag 14 november 2013 @ 17:02
quote:
0s.gif Op donderdag 14 november 2013 10:40 schreef Pakspul het volgende:

[..]

Ok, reactie in één woord: MVC
Now you have two problems? Als in: hoe is MVC een oplossing voor de problemen van Chandler? :-)
KomtTijd...donderdag 14 november 2013 @ 17:07
quote:
0s.gif Op donderdag 14 november 2013 17:02 schreef rekenwonder het volgende:

[..]

Now you have two problems? Als in: hoe is MVC een oplossing voor de problemen van Chandler? :-)
Je mag toch op zijn minst wel je templates en je code gescheiden houden, niets problematisch aan hoor.
Skunk-mdonderdag 14 november 2013 @ 17:28
quote:
14s.gif Op woensdag 13 november 2013 13:43 schreef boem-dikkie het volgende:

[..]

Heet de database ook hetzelfde?
Ik moest de cache legen in phpbb en daarna deed ie het..

Maar nu is mijn vraag waarom phpbb ./ voor de links zet voor smilies, ranks etc.

dus als mn smilie path is ingesteld als images/smilies (gewoon standaard dus)
dan maakt ie er ./images/smilies van waardoor de afbeelding niet word weergegeven.

??
ViPeRIIdonderdag 14 november 2013 @ 18:08
quote:
0s.gif Op donderdag 14 november 2013 17:28 schreef Skunk-m het volgende:

[..]

Ik moest de cache legen in phpbb en daarna deed ie het..

Maar nu is mijn vraag waarom phpbb ./ voor de links zet voor smilies, ranks etc.

dus als mn smilie path is ingesteld als images/smilies (gewoon standaard dus)
dan maakt ie er ./images/smilies van waardoor de afbeelding niet word weergegeven.

??
Dat is opzich handig, aangezien je dan geen "harde" paden hoeft te gebruiken...
Chandlerdonderdag 14 november 2013 @ 20:15
quote:
0s.gif Op donderdag 14 november 2013 17:02 schreef rekenwonder het volgende:

[..]

Now you have two problems? Als in: hoe is MVC een oplossing voor de problemen van Chandler? :-)
Ja? slaat in mijn ogen compleet de plank mis :P want het enige wat het script moet doen is steeds het zelfde maar dan voor andere 'data' pakketten. Maar goed, MVC is gewoon een geil woord dat je overal voor moet gebruiken... voor countertjes, voor simpele contact formulieren, voor alles eigenlijk :+

quote:
14s.gif Op donderdag 14 november 2013 17:07 schreef KomtTijd... het volgende:
Je mag toch op zijn minst wel je templates en je code gescheiden houden, niets problematisch aan hoor.
Niet als het doel 1 bestand is, zonder includes! of wat voor externe bestanden dan ook ;) zelfs de afbeeldingen staan in CSS in base64 :@ ennuh op zich heb ik mijn html toch grotendeels gescheiden van php, alleen zit het wel verwerkt in het php bestand :+ als 1 lap tekst...

Maar goed, heb het probleem reeds 'denk ik' opgelost, nog even op een paar externe servers testen plus weer de nodige veranderingen (verbeteringen)...

Oh en kan natuurlijk altijd de nodige suggesties gebruiken, het kan altijd mooier, gemakkelijker of logischer :+

[ Bericht 4% gewijzigd door Chandler op 14-11-2013 20:25:41 ]
rekenwonderdonderdag 14 november 2013 @ 20:18
MVC is zo 2012. MVP, MVVM, noem het maar op!
Chandlerzaterdag 16 november 2013 @ 11:39
LOL wat is dan 2013? :P gewoon weer ouderwets? :P

Maaruh een update: http://pastebin.com/VtwXQHur voor diegene die het leuk vind om dingen te testen en opbouwend kritiek wil geven ;)

Oh pass is password123 :+
ViPeRIIzondag 17 november 2013 @ 00:58
quote:
15s.gif Op zaterdag 16 november 2013 11:39 schreef Chandler het volgende:
LOL wat is dan 2013? :P gewoon weer ouderwets? :P

Maaruh een update: http://pastebin.com/VtwXQHur voor diegene die het leuk vind om dingen te testen en opbouwend kritiek wil geven ;)

Oh pass is password123 :+
T werkt, op je quit knop na. deze brengt alles terug naar de 1e stap van je script.

Vervolgens zou het mooi zijn als je je script ook op andere "gebruikelijke" database systemen zou kunnen installeren, welke makkelijk te scripten zijn via PDO; Dus: mssql, postgres en sqlite, om de gebruiker wat meer opties te geven.

Daarnaast wil ik je ten zeerste aanraden het script netjes te maken, oftewel alles netjes in OOP schrijven in plaats van de procedural code die je nu geschreven hebt. Dat lijkt nu onzin, maar naar mate dat je script groeit, heb je daar altijd wat aan.

Ook dien je je unsets te testen om te kijken of ze wel dan niet geset zijn, je weet maar nooit wat er in je script gebeurd...Dat ben je bijvoorbeeld vergeten bij stap 7;

Ook heb ik nog de vraag waarom je de set_time_limit gebruikt..
Voor het mooie zou ik ook het aantal stappen wat proberen te verminderen.
Lightzondag 17 november 2013 @ 13:12
quote:
15s.gif Op zaterdag 16 november 2013 11:39 schreef Chandler het volgende:

Maaruh een update: http://pastebin.com/VtwXQHur voor diegene die het leuk vind om dingen te testen en opbouwend kritiek wil geven ;)
Je gebruikt twee keer "case 7:". Dat werkt niet, iedere case moet uniek zijn.

En $_SESSION unsetten is ook niet netjes. Da's een PHP superglobal, die moet je niet willen unsetten. Je kunt er wel een andere waarde aan geven, bijvoorbeeld null.
Chandlerzondag 17 november 2013 @ 13:30
Thanks voor jullie inhoudelijke reacties, de installer heeft een datablock en een script onderdeel, het script onderdeel ga ik niet oop maken, zou kunnen maar zie daar zelf het nut niet van in. Een keuze in database systemen ben ik zeker voor en gaat ook zeker verwerkt worden in het script en qua unset moet ik inderdaad nog wel het een en ander aanpassen... oh 2x case 7 had ik blijkbaar over het hoofd gezien... ooeps.. zelfde als set_time_limit, die heb ik gebruikt om te testen, iets wat bij kleine 'installers' echt niet nodig is maar bij installers van 30mb misschien wel, daar moet ik het allemaal nog op testen.

Paar vragen:
- Waarom stappen verminderen? zoveel stapjes zijn het niet? kijk eens naar programma's die je onder windows installeert? die hebben vaak ook vele stappen..
- Waarom OOP? zoveel code zit er niet in zeg maar... op zich zou't wel gemakkelijk zijn als ik er een ander ontwerp omheen wil gooien!
- Andere tips?

Oh de quit button is domweg bedoeld om de installer te resetten... je begint weer bij het begin want echt 'afsluiten' van het script zoals een programma gaat niet werken... tenzij ik window.close() ga gebruiken :+

thanks voor inhoudelijk feedback, maar hoe voelde de installer verder aan?
slacker_nlzondag 17 november 2013 @ 13:36
quote:
0s.gif Op zondag 17 november 2013 13:30 schreef Chandler het volgende:
Thanks voor jullie inhoudelijke reacties, de installer heeft een datablock en een script onderdeel, het script onderdeel ga ik niet oop maken, zou kunnen maar zie daar zelf het nut niet van in. Een keuze in database systemen ben ik zeker voor en gaat ook zeker verwerkt worden in het script en qua unset moet ik inderdaad nog wel het een en ander aanpassen... oh 2x case 7 had ik blijkbaar over het hoofd gezien... ooeps.. zelfde als set_time_limit, die heb ik gebruikt om te testen, iets wat bij kleine 'installers' echt niet nodig is maar bij installers van 30mb misschien wel, daar moet ik het allemaal nog op testen.

Paar vragen:
- Waarom stappen verminderen? zoveel stapjes zijn het niet? kijk eens naar programma's die je onder windows installeert? die hebben vaak ook vele stappen..
- Waarom OOP? zoveel code zit er niet in zeg maar... op zich zou't wel gemakkelijk zijn als ik er een ander ontwerp omheen wil gooien!
- Andere tips?

Oh de quit button is domweg bedoeld om de installer te resetten... je begint weer bij het begin want echt 'afsluiten' van het script zoals een programma gaat niet werken... tenzij ik window.close() ga gebruiken :+

thanks voor inhoudelijk feedback, maar hoe voelde de installer verder aan?
Je hoeft er m.i. niet per se OOP van te maken, maar het helpt wel (ik ben er wel een voorstander van). Maar je zou wel aparte functies kunnen maken, dat maakt je script makkelijker testbaar. Je kan dan elke functie testen op de werking. Dat lukt niet in je huidige model.

Verder zou ik wel iets aan je code conventies gaan doen:

1
2
3
4
5
6
7
8
9
$array = array ( 'ding' => .. , 'dat' => .. , 'zus' => .. , 'zo' => .. ); 
# zou ik herschrijven naar:

$array = array( 
    ding => .., 
    dat  => ..,
    zus  => ..,
    zo   => ..,
);

Dat leest en edit prettiger.
Chandlerzondag 17 november 2013 @ 14:19
quote:
0s.gif Op zondag 17 november 2013 13:36 schreef slacker_nl het volgende:
Je hoeft er m.i. niet per se OOP van te maken, maar het helpt wel (ik ben er wel een voorstander van). Maar je zou wel aparte functies kunnen maken, dat maakt je script makkelijker testbaar. Je kan dan elke functie testen op de werking. Dat lukt niet in je huidige model.
Mijn OOP is extreem brak, maak daarin vaak fouten en leer daar pas van als iemand er wat over zegt (mijn manier van leren). Ik zal eens kijken wat ik allemaal in functies kan stoppen wat er nu nog niet inzit...

quote:
Verder zou ik wel iets aan je code conventies gaan doen:

Dat leest en edit prettiger.
Klopt, daarin heb je totaal gelijk alleen hoeft een gemiddelde gebruiker van dit script niets met de data, zelfde als jij niets moet met de inhoudt van een installer anders dan de installer zijn werk laten doen... dus de data hoeft er niet mooi uit te zien (data block) maar qua scripten werkt het zeker beter...

verder nog grote php fouten gezien? nee toch? :D
slacker_nlzondag 17 november 2013 @ 14:29
quote:
0s.gif Op zondag 17 november 2013 14:19 schreef Chandler het volgende:

[..]

Mijn OOP is extreem brak, maak daarin vaak fouten en leer daar pas van als iemand er wat over zegt (mijn manier van leren). Ik zal eens kijken wat ik allemaal in functies kan stoppen wat er nu nog niet inzit...

[..]

Klopt, daarin heb je totaal gelijk alleen hoeft een gemiddelde gebruiker van dit script niets met de data, zelfde als jij niets moet met de inhoudt van een installer anders dan de installer zijn werk laten doen... dus de data hoeft er niet mooi uit te zien (data block) maar qua scripten werkt het zeker beter...

verder nog grote php fouten gezien? nee toch? :D
Het gaat me erom dat als je later in dat script kijkt dat het makkelijk edit en leest. Dat de gebruiker er niet in hoeft te lezen.. maar andere coders wel en die wil je wel helpen met schone, zelf-gedocumenteerde code.

Je kan toch heel makkelijk een class maken met functies en dan

1
2
3
4
$installer = new InstallerClass(
# named arguments
); 
$installer->run(); 
Chandlerzondag 17 november 2013 @ 14:49
Ook met OOP moet je je inlezen in code want ->run() zegt ook compleet niets, want wat gebeurd er in al die functies? dus denk dat documentatie van het script zelf stukken belangrijker is.. Al zou ik het wel leuk vinden om er een OOP versie van maken maken dat ik zo de schil (layout/vormgeving) on the fly kan aanpassen! *)
slacker_nlzondag 17 november 2013 @ 15:02
quote:
14s.gif Op zondag 17 november 2013 14:49 schreef Chandler het volgende:
Ook met OOP moet je je inlezen in code want ->run() zegt ook compleet niets, want wat gebeurd er in al die functies? dus denk dat documentatie van het script zelf stukken belangrijker is.. Al zou ik het wel leuk vinden om er een OOP versie van maken maken dat ik zo de schil (layout/vormgeving) on the fly kan aanpassen! *)
Je moet altijd je documentatie goed op orde hebben. Maar dat staat los van de manier van code. Al helpt het ook dat je code zichzelf uitlegt. Maar je functies moeten gewoon gedocumenteerd zijn.
Chandlerzondag 17 november 2013 @ 16:19
moeten is onzin, handig true; zal ik ook zeker gaan doen, maar blijkbaar vinden jullie het idee toch best leuk *) is een vervolg op een heel oud projectje (php2hex ;))
slacker_nlzondag 17 november 2013 @ 16:21
quote:
0s.gif Op zondag 17 november 2013 16:19 schreef Chandler het volgende:
moeten is onzin, handig true; zal ik ook zeker gaan doen, maar blijkbaar vinden jullie het idee toch best leuk *) is een vervolg op een heel oud projectje (php2hex ;))
Op m'n werk is het moeten. Want anders zegt de testsuite: je hebt de pod niet op orde en dan falen de tests.

Overigens zeg ik niks over je idee, want ik zou je script en je installer in aparte files frotten, maar dat is mijn mening.
Chandlerzondag 17 november 2013 @ 18:10
Waarom in aparte files? leg dat eens uit?
slacker_nlzondag 17 november 2013 @ 18:43
quote:
5s.gif Op zondag 17 november 2013 18:10 schreef Chandler het volgende:
Waarom in aparte files? leg dat eens uit?
Testbaarheid.
Chandlerzondag 17 november 2013 @ 18:46
Ik snap je nog steeds niet, want ook met een 'iets' groter bestand is testen allemaal geen probleem hoor :? of doel je op het feit dat ik deze modules dan apart kan testen? zo ja; dat doe (deed) ik al voordat ik ze in de installer verwerkte...
slacker_nlzondag 17 november 2013 @ 19:06
Do one thing and do it well. En ik doel inderdaad dat je 1 module per keer test. Waarom zou je allemaal modules/klasses laden als je er maar eentje wilt hebben?
Chandlermaandag 18 november 2013 @ 01:09
Zo werk ik inderdaad ook al, alle code is gewoon al getest (toen nog niet op meerdere platformen maar goed) met de losse modules die ik toen werkend met elkaar heb verbonden in het huidige script. Ik zal vannacht nog eens naar wat puntjes van het script kijken (heb toch nachtdienst, dus alle tijd)
Lightmaandag 18 november 2013 @ 07:54
quote:
14s.gif Op maandag 18 november 2013 01:09 schreef Chandler het volgende:
Zo werk ik inderdaad ook al, alle code is gewoon al getest (toen nog niet op meerdere platformen maar goed) met de losse modules die ik toen werkend met elkaar heb verbonden in het huidige script. Ik zal vannacht nog eens naar wat puntjes van het script kijken (heb toch nachtdienst, dus alle tijd)
Hoe heb je die code getest?
Chandlermaandag 18 november 2013 @ 10:18
Gewoon 1 scriptje met daarin de class/functie en daaronder het test gedeelte?
HalveZwaremaandag 18 november 2013 @ 13:16
quote:
0s.gif Op zondag 17 november 2013 16:21 schreef slacker_nl het volgende:

[..]

Op m'n werk is het moeten. Want anders zegt de testsuite: je hebt de pod niet op orde en dan falen de tests.

Overigens zeg ik niks over je idee, want ik zou je script en je installer in aparte files frotten, maar dat is mijn mening.
Nog goede suggesties voor een test-suite?
zoemmaandag 18 november 2013 @ 13:20
Wat betreft php: PHPUnit icm een CI-omgeving.
slacker_nlmaandag 18 november 2013 @ 13:21
quote:
0s.gif Op maandag 18 november 2013 13:16 schreef HalveZware het volgende:

[..]

Nog goede suggesties voor een test-suite?
Onder PHP, ik ken er geen. Onder Perl heb je prove.
#ANONIEMmaandag 18 november 2013 @ 13:52
Sjooooooooooow ik was aan het kloten met dat MongoDB gebeuren, ik heb dus een Auth template voor mijzelf gemaakt, is wel een beetje rommelig en comments heb ik in het Engels gezet btw...
Voor de liefhebbers...
https://anonfiles.com/file/9e49f9c2059cdd78233e284435781ffa

En dat MongoLab remote hosting is gewoon gratis tot 500MB _O_
GWIwbEA.png

Overigens heb ik het lokaal werkend gehad met alleen Ampps te installeren en daarvandaan MongoDB starten.
Er is wel echt belachelijk weinig documentatie over MongoDB met de PHP driver te vinden zeg...
En wat er te vinden valt is verouderd of niet noob-friendly...

[ Bericht 10% gewijzigd door #ANONIEM op 18-11-2013 14:54:46 ]
KomtTijd...maandag 18 november 2013 @ 14:35
quote:
0s.gif Op maandag 18 november 2013 13:52 schreef RetRy32 het volgende:
Sjooooooooooow ik was aan het kloten met dat MongoDB gebeuren, ik heb dus een Auth template voor mijzelf gemaakt, is wel een beetje rommelig en comments heb ik in het Engels gezet btw...
Voor de liefhebbers...
https://anonfiles.com/file/9e49f9c2059cdd78233e284435781ffa

En dat MongoLab remote hosting is gewoon gratis tot 500MB _O_
[ afbeelding ]
Waarom in hemelsnaam een NoSQL database voor een loginsysteem :?
...en zie ik daar MD5 password hashes? ;(, ;(, ;(!!!!!!!!!
#ANONIEMmaandag 18 november 2013 @ 14:48
quote:
14s.gif Op maandag 18 november 2013 14:35 schreef KomtTijd... het volgende:
Waarom in hemelsnaam een NoSQL database voor een loginsysteem
Waarom niet?
quote:
14s.gif Op maandag 18 november 2013 14:35 schreef KomtTijd... het volgende:

[..]
...en zie ik daar MD5 password hashes? ;(, ;(, ;(!!!!!!!!!
Het is een template, en er staat ook nog een comment erover erbij man :')

[ Bericht 3% gewijzigd door #ANONIEM op 18-11-2013 14:50:40 ]
Sitethiefmaandag 18 november 2013 @ 14:52
Ik heb zelf goede ervaringen met CouchDB :).
KomtTijd...maandag 18 november 2013 @ 15:16
quote:
0s.gif Op maandag 18 november 2013 14:48 schreef RetRy32 het volgende:

[..]

Waarom niet?
Normaliter wil je behoorlijk joinen met je users
quote:
[..]

Het is een template, en er staat ook nog een comment erover erbij man :')
Daar heb ik niet naar gekeken. Maar MD5 gebruiken voor passwordhashes zou gewoon bij wet verboden moeten zijn.
raptorixmaandag 18 november 2013 @ 15:22
quote:
14s.gif Op maandag 18 november 2013 15:16 schreef KomtTijd... het volgende:

[..]

Normaliter wil je behoorlijk joinen met je users

Want met no SQL databases zou je niet kunnen joinen? Ik bel gelijk even Twitter en Facebook dat hun architectuur niet klopt!
KomtTijd...maandag 18 november 2013 @ 15:24
quote:
0s.gif Op maandag 18 november 2013 15:22 schreef raptorix het volgende:

[..]

Want met no SQL databases zou je niet kunnen joinen? Ik bel gelijk even Twitter en Facebook dat hun architectuur niet klopt!
Het kan, maar er is geen reden om het jezelf extra moeilijk te maken.
raptorixmaandag 18 november 2013 @ 15:26
quote:
14s.gif Op maandag 18 november 2013 15:24 schreef KomtTijd... het volgende:

[..]

Het kan, maar er is geen reden om het jezelf extra moeilijk te maken.
Waarom zou het moeilijk zijn? Zo moeilijk is het niet om een simpele join te maken in MongoDb

Edit: ik bedoel dit zul je wel buiten MonngoDB moeten doen met een extra actie.

Overigens niet echt nodig, in no Sql hoef je je niet aan relationele principes te houden, sterker nog het is zelfs erg niet de bedoeling :+

[ Bericht 21% gewijzigd door raptorix op 18-11-2013 15:41:07 ]
Lightmaandag 18 november 2013 @ 19:35
quote:
0s.gif Op maandag 18 november 2013 10:18 schreef Chandler het volgende:
Gewoon 1 scriptje met daarin de class/functie en daaronder het test gedeelte?
En vervolgens heb je die classes en functies naar een ander bestand gekopieerd en dat is je installer? Da's dus niet de code die je getest hebt, da's een kopie van die code. Dat maakt in zoverre verschil dat je aanpassingen twee keer moet doen als je ze ook wilt testen.

Daarom dus classes en functies in 1 bestand, je tests in een ander bestand (en dan kun je gewoon met require de juiste bestanden laden). En als je dan toch bezig bent, kijk ook eens naar PHPUnit. Dan heb je ook mogelijkheden om excepties en dergelijke te testen zonder dat je daar zelf nog veel code voor moet schrijven.

Overigens wel goed dat je al aparte functies maakt om code te testen :)
Chandlermaandag 18 november 2013 @ 19:52
Ja en nee, de installer is een 'front' voor de data... de data en 'front' worden samen gevoegd in het script dat de installer (aan) maakt.

Qua testen heb je gelijk, maar vaak maak ik bv een class/functie en die test ik ook gewoon in het zelfde bestand van de class/functie waarbij ik dan gewoon andere classes/functies include (voor mijn mvc heb ik per functie een apart php bestand, altijd gemakkelijk met debuggen). Dus bijna het zelfde.. In dit project specifiek moet ik inderdaad dan zaken twee keer moet herhalen.

Ik zal eens naar PHPUnit kijken!

Maar heb je voor dit projectje nog suggesties? ideeën? verbeter punten? B-)
#ANONIEMmaandag 18 november 2013 @ 19:54
quote:
0s.gif Op maandag 18 november 2013 19:52 schreef Chandler het volgende:
Ja en nee, de installer is een 'front' voor de data... de data en 'front' worden samen gevoegd in het script dat de installer (aan) maakt.

Qua testen heb je gelijk, maar vaak maak ik bv een class/functie en die test ik ook gewoon in het zelfde bestand van de class/functie waarbij ik dan gewoon andere classes/functies include (voor mijn mvc heb ik per functie een apart php bestand, altijd gemakkelijk met debuggen). Dus bijna het zelfde.. In dit project specifiek moet ik inderdaad dan zaken twee keer moet herhalen.

Ik zal eens naar PHPUnit kijken!

Maar heb je voor dit projectje nog suggesties? ideeën? verbeter punten? B-)
Heb je al iets aan je formatting gedaan?
Protip: PHPStorm, werkt geweldig met PHPunit trouwens.
Crutchmaandag 18 november 2013 @ 20:05
PHPStorm is sowieso überbaas _O_
#ANONIEMmaandag 18 november 2013 @ 20:51
quote:
0s.gif Op maandag 18 november 2013 20:05 schreef Crutch het volgende:
PHPStorm is sowieso überbaas _O_
Alleen het typen in Sublime vind ik toch ietsiepietsie prettiger :@
//Feit: ietsiepietsie is een Nederlands woord//

[ Bericht 3% gewijzigd door #ANONIEM op 18-11-2013 20:51:43 ]
Crutchmaandag 18 november 2013 @ 21:19
quote:
0s.gif Op maandag 18 november 2013 20:51 schreef RetRy32 het volgende:

[..]

Alleen het typen in Sublime vind ik toch ietsiepietsie prettiger :@
//Feit: ietsiepietsie is een Nederlands woord//
Waar ligt het aan dat het daarin fijner is?
#ANONIEMmaandag 18 november 2013 @ 21:21
quote:
0s.gif Op maandag 18 november 2013 21:19 schreef Crutch het volgende:

[..]

Waar ligt het aan dat het daarin fijner is?
Ik vind die autofill echt tof en voor de rest is het denk ik gewenning.
Chandlerdinsdag 19 november 2013 @ 08:55
quote:
1s.gif Op maandag 18 november 2013 19:54 schreef RetRy32 het volgende:

[..]

Heb je al iets aan je formatting gedaan?
Protip: PHPStorm, werkt geweldig met PHPunit trouwens.
Hoe bedoel je met formatting? de stijl waarop ik mijn code schrijf? pear style?

gelijk een andere vraag; is dit netjes? of moet/kan het anders?

1
2
3
4
5
6
7
8
9
10
11
<?php
foreach (array("tables""tableData""files" => "files") AS $block => $bTest) {
    if (isset(${
"$block"}, ${"$block"CRC"})) {
        
$tested++;
        if (!
testHash(${"$block"CRC"}, ${"$block"}, $bTest)) {
            
$_SESSION['installer']['errors'][] = $block ' block damaged';
            
$errors++;
        }
    }
}
?>


[ Bericht 71% gewijzigd door Chandler op 19-11-2013 15:36:06 ]
#ANONIEMdinsdag 19 november 2013 @ 16:21
quote:
0s.gif Op dinsdag 19 november 2013 08:55 schreef Chandler het volgende:

[..]

Hoe bedoel je met formatting? de stijl waarop ik mijn code schrijf? pear style?

gelijk een andere vraag; is dit netjes? of moet/kan het anders?
[ code verwijderd ]

Da's perfect imo, nu ik je code eigenlijk bekijk is er niks mis met de netheid.
Was een illusie :P
urseldinsdag 19 november 2013 @ 16:41
Ik schrijf de 'as' in een foreach altijd met kleine letters. Eigenlijk nog nooit met hoofdletters gezien, bhelave in Queries. :@
zoemdinsdag 19 november 2013 @ 16:45
quote:
0s.gif Op dinsdag 19 november 2013 16:41 schreef ursel het volgende:
Ik schrijf de 'as' in een foreach altijd met kleine letters.
Boze_Appeldinsdag 19 november 2013 @ 16:51
quote:
0s.gif Op dinsdag 19 november 2013 08:55 schreef Chandler het volgende:

[..]

Hoe bedoel je met formatting? de stijl waarop ik mijn code schrijf? pear style?

gelijk een andere vraag; is dit netjes? of moet/kan het anders?
[ code verwijderd ]

Je mixt een indexed met een associative array. Alhoewel het technisch kan is zoiets meestal een recept voor gezeik. Kies het een of het ander, niet mengen.
Chandlerdinsdag 19 november 2013 @ 17:25
quote:
0s.gif Op dinsdag 19 november 2013 16:21 schreef RetRy32 het volgende:

[..]

Da's perfect imo, nu ik je code eigenlijk bekijk is er niks mis met de netheid.
Was een illusie :P
Hahaha, zal ongetwijfeld mede mogelijk gemaakt zijn door mijn schrijf style! :+

quote:
0s.gif Op dinsdag 19 november 2013 16:41 schreef ursel het volgende:
Ik schrijf de 'as' in een foreach altijd met kleine letters. Eigenlijk nog nooit met hoofdletters gezien, bhelave in Queries. :@
SUPER LOL, eigenlijk moet AS ook met kleine letters, maar schrijf het al jaren als AS (zal wel uit mijn basic tijd komen...) oh nu ik het mij bedenk is het waarschijnlijker dat ik het van SQL heb overgenomen (daar schrijf ik functies altijd in hoofdletters en variabelen/tabellen/velden etc in kleine... ) maar goed... het verduidelijkt wel de leesbaarheid ($vars as $var1 => $var2) is minder leesbaar als ($vars AS $var1 => $var2) ofzo.
quote:
7s.gif Op dinsdag 19 november 2013 16:51 schreef Boze_Appel het volgende:
Je mixt een indexed met een associative array. Alhoewel het technisch kan is zoiets meestal een recept voor gezeik. Kies het een of het ander, niet mengen.
Ik heb dit vandaag even in elkaar geflanst van een groter stukje if else statements... scheelt maar 3/4 aan regels.

Vooral het gedeelte ${"$iets" . "CRC"} was leuk, om mee te spelen.. weinig mogelijkheden, erg strikt!

Maar zou jij kiezen voor meerdere if elses? of hoe anders?

[ Bericht 0% gewijzigd door Chandler op 19-11-2013 17:36:02 ]
KomtTijd...dinsdag 19 november 2013 @ 17:28
Ik snap sowieso niet hoezo je een array van variablenamen nodig hebt om te checken of die variables geset zijn? Ik vind het gewoon een bizarre constructie.

En die isset(${"$iets"."CRC"}) enzo maakt je code inderdaad flink onleesbaar, als je dat op een andere manier op kan lossen is het haast bij voorbaat al netter.
Chandlerdinsdag 19 november 2013 @ 17:33
Wat is er bizar aan? wees een specifiek wil je ;)

Persoonlijk vind ik het niet onleesbaar, het is nu in mijn ogen in 1 oog opslag duidelijk wat daar gedaan wordt, maar goed misschien kijk ik met een andere bril naar m'n code dan dat jij doet?

Oplossen kan, kost me 2 regels extra code
$var1 = ${"$var" . "var");
$var2 = ${"$var" . "varx");

maar of dat voor het voor het gebruik ook logisch is, is een tweede lijkt mij....
KomtTijd...dinsdag 19 november 2013 @ 17:36
Ik moest er 5 keer naar kijken voordat ik begreep wat er nu gebeurde.

En ik zou zeggen dat je die vars direct in een object zet waar je doorheen fietst, mocht je ze stuk voor stuk willen checken. Of je checkt ze op het moment van aanmaken.
Chandlerdinsdag 19 november 2013 @ 17:40
quote:
14s.gif Op dinsdag 19 november 2013 17:36 schreef KomtTijd... het volgende:
Ik moest er 5 keer naar kijken voordat ik begreep wat er nu gebeurde.

En ik zou zeggen dat je die vars direct in een object zet waar je doorheen fietst, mocht je ze stuk voor stuk willen checken. Of je checkt ze op het moment van aanmaken.
Wat je zegt is logisch, maar niet voor mijn code.

De data is het ene gedeelte, het script is de 2e.
Het script moet logisch gezien voordat het kan werken wel checken of de data juist is... (data bestaat, niet beschadigd is).. de inhoudt (dirs, files, database data, etc) kan namelijk verschillen per 'installer'. Daarvoor is dit stukje, deze controleert of de data die (mogelijk) aanwezig is ook juist is. En idd is 30 regels ifstatements duidelijker dan 1x 9 regels code :+ maar dit vind ik leuker! ;)
Devolutionwoensdag 20 november 2013 @ 10:08
1
2
3
4
<?php
foreach (array("tables""tableData""files" => "files") AS $block => $bTest) {
}
?>
Persoonlijk zou ik die array los definiëren, zodat de for loop er wat netter uit ziet. Zo dus:

1
2
3
4
5
<?php
$array 
= array("tables"=>"tableData""files"=>"files");
foreach(
$array AS $block => $bTest){
}
?>
Michaelvanbwoensdag 20 november 2013 @ 12:01
Iemand interesse om een voetbal transfer nieuws website (engelstalig) op te starten?

Ik heb een heel mooi plan liggen, alleen ik heb onderschat hoe moeilijk het is om een team/speler database te maken als je nog nooit met php/mysql hebt gewerkt en alleen wordpress kennis hebt. 8)7

50/50 split waarbij ik zorg voor content, seo, 't plan etc en de evt. partner helpt mee met technische gedeelte. theme of psd zijn al redelijk klaar. EMD domeinnaam met 200k exact search

DM voor meer info ;)
wobbelwoensdag 20 november 2013 @ 13:45
Oke, long2ip ( ip2long ( "185.002.241.100") ) werkt niet, maar ik zit nog wel met een probleem.

Ik heb "185.002.241.100" aangeleverd gekregen (wel 1503025325 keer) en ik moet alle voorloopnullen verwijderen, in dit geval moet het dus 185.2.241.100 worden. Is daar een manier voor zonder eerst alles te exploden enzo? :P
KomtTijd...woensdag 20 november 2013 @ 13:47
Ik zou gewoon exploden, en evt. als integers weer imploden. Lijkt me efficiënter dan een regex replace.
wobbelwoensdag 20 november 2013 @ 13:53
Ik heb het nu zo gedaan:

1
2
3
4
<?php
$explodeIp 
explode ".""185.002.241.100" );
$bierentieten ltrim $explodeIp[0], "0" ) . "." ltrim $explodeIp[1], "0" ) . "." ltrim $explodeIp[2], "0" ) . "." ltrim $explodeIp[3], "0" );
?>

Werkt ook ;)
mstxwoensdag 20 november 2013 @ 13:56
-

[ Bericht 99% gewijzigd door mstx op 20-11-2013 13:57:00 ]
wobbelwoensdag 20 november 2013 @ 13:57
quote:
0s.gif Op woensdag 20 november 2013 13:56 schreef mstx het volgende:

[ code verwijderd ]

[ code verwijderd ]

:P
Het scriptje draait maar 1 keer, het wordt in de database gestopt en daarna zien we de data nooit meer terug :P
mstxwoensdag 20 november 2013 @ 13:57
quote:
0s.gif Op woensdag 20 november 2013 13:57 schreef wobbel het volgende:

[..]

Het scriptje draait maar 1 keer, het wordt in de database gestopt en daarna zien we de data nooit meer terug :P
O oke. :) Er zat ook een foutje in m'n script. :@
wobbelwoensdag 20 november 2013 @ 13:59
quote:
0s.gif Op woensdag 20 november 2013 13:57 schreef mstx het volgende:

[..]

O oke. :) Er zat ook een foutje in m'n script. :@
Beunhaas :P
KomtTijd...woensdag 20 november 2013 @ 14:42
1
2
3
4
5
<?php
$arr 
explode('.',$ip);
$arr array_map(function($a){return (int) $a;}, $arr);
$ip implode('.',$arr);
?>
Niet IPv6 proof uiteraard.
mstxwoensdag 20 november 2013 @ 14:56
quote:
14s.gif Op woensdag 20 november 2013 14:42 schreef KomtTijd... het volgende:

[ code verwijderd ]

Niet IPv6 proof uiteraard.
Wat is er mis met array_map('intval', $arr); ? :P
KomtTijd...woensdag 20 november 2013 @ 14:57
Werkt dat ook? Dan alleen maar beter ja.
slacker_nlwoensdag 20 november 2013 @ 18:26
quote:
0s.gif Op woensdag 20 november 2013 13:45 schreef wobbel het volgende:
Oke, long2ip ( ip2long ( "185.002.241.100") ) werkt niet, maar ik zit nog wel met een probleem.

Ik heb "185.002.241.100" aangeleverd gekregen (wel 1503025325 keer) en ik moet alle voorloopnullen verwijderen, in dit geval moet het dus 185.2.241.100 worden. Is daar een manier voor zonder eerst alles te exploden enzo? :P
Dat moet je gewoon weigeren, dat voldoet niet aan de IPv4 syntax.

'127.000.000.001' is not a valid ipv4 address.# Tests were run but no plan was declared and done_testing() was not seen.


Dit is de Perl-code om IPv4/IPv6 syntax te valideren:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
{   # Stolen from Regexp::IPv6 (to prevent adding a dependency for BSD machines)                                                                                                   
    my $sub = '([0-9]|[1-9][0-9]|1[0-9][0-9]|2([0-4][0-9]|5[0-5]))';
    my $IPv4 = "$sub\\.$sub\\.$sub\\.$sub";
    my $G = "[0-9a-fA-F]{1,4}";

    my @tail = ( ":", 
             "(:($G)?|$IPv4)",
                 ":($IPv4|$G(:$G)?|)",
                 "(:$IPv4|:$G(:$IPv4|(:$G){0,2})|:)",
             "((:$G){0,2}(:$IPv4|(:$G){1,2})|:)",
             "((:$G){0,3}(:$IPv4|(:$G){1,2})|:)",
             "((:$G){0,4}(:$IPv4|(:$G){1,2})|:)" );

    my $IPv6 = $G;
    $IPv6 = "$G:($IPv6|$_)" for @tail;
    $IPv6 = qq/:(:$G){0,5}((:$G){1,2}|:$IPv4)|$IPv6/;
    $IPv6 =~ s/\(/(?:/g;
    $IPv6 = qr/\A(?:$IPv6|::)\Z/;
    $IPv4 = qr/\A$IPv4\Z/;

    use constant CHECK_IP => sub {
        my $ip = shift;

        # End with / we are not a valid IP
        return 0 if ($ip =~ /\/\s*$/);

        my $mask;

        ($ip, $mask) = split(/\//, $ip);

        # If you supply a /32 you supply a single ip, we allow this
        if (defined $mask && ( $mask !~ /^\d+$/ || $mask != 32))  {
            return 0 ;
        }    

        return ($ip =~ m/$IPv4/) ? 1 : 0; 
    };   

    use constant CHECK_IPV6 => sub {
        my $range = shift;

        ($range) = split(/\//, $range);
        return ($range =~ m/$IPv6/) ? 1 : 0; 
    };   

}


[ Bericht 46% gewijzigd door slacker_nl op 20-11-2013 18:33:13 ]
Crutchwoensdag 20 november 2013 @ 18:42
quote:
0s.gif Op woensdag 20 november 2013 12:01 schreef Michaelvanb het volgende:
Iemand interesse om een voetbal transfer nieuws website (engelstalig) op te starten?

Ik heb een heel mooi plan liggen, alleen ik heb onderschat hoe moeilijk het is om een team/speler database te maken als je nog nooit met php/mysql hebt gewerkt en alleen wordpress kennis hebt. 8)7

50/50 split waarbij ik zorg voor content, seo, 't plan etc en de evt. partner helpt mee met technische gedeelte. theme of psd zijn al redelijk klaar. EMD domeinnaam met 200k exact search

DM voor meer info ;)
Voetbal :r
TwenteFCdonderdag 21 november 2013 @ 02:37
quote:
0s.gif Op maandag 18 november 2013 15:26 schreef raptorix het volgende:

[..]

Waarom zou het moeilijk zijn? Zo moeilijk is het niet om een simpele join te maken in MongoDb

Edit: ik bedoel dit zul je wel buiten MonngoDB moeten doen met een extra actie.

Overigens niet echt nodig, in no Sql hoef je je niet aan relationele principes te houden, sterker nog het is zelfs erg niet de bedoeling :+
Ondanks je edit moet ik toch een beetje huilen van binnen.
raptorixdonderdag 21 november 2013 @ 09:47
quote:
19s.gif Op donderdag 21 november 2013 02:37 schreef TwenteFC het volgende:

[..]

Ondanks je edit moet ik toch een beetje huilen van binnen.
Omdat?
boem-dikkiedonderdag 21 november 2013 @ 10:03
quote:
0s.gif Op woensdag 20 november 2013 12:01 schreef Michaelvanb het volgende:
Iemand interesse om een voetbal transfer nieuws website (engelstalig) op te starten?

Ik heb een heel mooi plan liggen, alleen ik heb onderschat hoe moeilijk het is om een team/speler database te maken als je nog nooit met php/mysql hebt gewerkt en alleen wordpress kennis hebt. 8)7

50/50 split waarbij ik zorg voor content, seo, 't plan etc en de evt. partner helpt mee met technische gedeelte. theme of psd zijn al redelijk klaar. EMD domeinnaam met 200k exact search

DM voor meer info ;)
Als je Wordpress kennis hebt kun je dat daar toch realiseren.
wobbelvrijdag 22 november 2013 @ 10:52
quote:
0s.gif Op woensdag 20 november 2013 18:26 schreef slacker_nl het volgende:

[..]

Dat moet je gewoon weigeren, dat voldoet niet aan de IPv4 syntax.

'127.000.000.001' is not a valid ipv4 address.# Tests were run but no plan was declared and done_testing() was not seen.

Dit is de Perl-code om IPv4/IPv6 syntax te valideren:
[ code verwijderd ]

Ach, het is slechts 1 keer ;)
TwenteFCdonderdag 28 november 2013 @ 18:25
Iemand hier die gebruik maakt van Laravel?

Ik wil een child toevoegen aan de parent model en deze opslaan, alleen pakt hij de parentId niet omdat die waarde na het opslaan van de parent verspringt naar 1.

Code:

http://paste.laravel.com/1aMv
xaban06donderdag 28 november 2013 @ 19:54
Ik heb een tabel met producten, voorbeeld:
- producten
|- id
|- category
|- subcategory
|- product_naam

Ik wil de product_naam vinden van product id 25. Ik weet al wat de category en subcategory is van product 25.

Wat is sneller/efficienter:
SELECT id, product_naam FROM producten WHERE id = '25'
SELECT id, category, subcategory, product_naam FROM producten WHERE id = '25' AND category = 'boeken' AND subcategory = 'engels'
KomtTijd...donderdag 28 november 2013 @ 20:06
Aangezien WHERE id = 25 al 100% selectief is zal de rest alleen maar ballast zijn en waarschijnlijk genegeerd worden of anders de query vertragen.

run beide queries 10000 keer ofzo en je weet het.
TwenteFCdonderdag 28 november 2013 @ 20:20
quote:
14s.gif Op donderdag 28 november 2013 20:06 schreef KomtTijd... het volgende:
Aangezien WHERE id = 25 al 100% selectief is zal de rest alleen maar ballast zijn en waarschijnlijk genegeerd worden of anders de query vertragen.

run beide queries 10000 keer ofzo en je weet het.
Dit, en je kan altijd even "EXPLAIN" uitvoeren om te kijken wat er allemaal gebeurt.
xaban06donderdag 28 november 2013 @ 20:31
quote:
14s.gif Op donderdag 28 november 2013 20:06 schreef KomtTijd... het volgende:
Aangezien WHERE id = 25 al 100% selectief is zal de rest alleen maar ballast zijn en waarschijnlijk genegeerd worden of anders de query vertragen.

run beide queries 10000 keer ofzo en je weet het.
Database is nog niet gevuld (lees: leeg), script is nog niet af. Maar wat je zegt kan wel inderdaad met demo data. Anyways, thanks!

LIMIT 1 lijkt mij ook handig, niet? id is namelijk uniek.
Crutchdonderdag 28 november 2013 @ 20:31
quote:
19s.gif Op donderdag 28 november 2013 18:25 schreef TwenteFC het volgende:
Iemand hier die gebruik maakt van Laravel?

Ik wil een child toevoegen aan de parent model en deze opslaan, alleen pakt hij de parentId niet omdat die waarde na het opslaan van de parent verspringt naar 1.

Code:

http://paste.laravel.com/1aMv
Heb je in de database gekeken of je model überhaupt wordt opgeslagen?
En relationships sla je op met ->push()
KomtTijd...donderdag 28 november 2013 @ 20:38
quote:
0s.gif Op donderdag 28 november 2013 20:31 schreef xaban06 het volgende:

[..]

Database is nog niet gevuld (lees: leeg), script is nog niet af. Maar wat je zegt kan wel inderdaad met demo data. Anyways, thanks!

LIMIT 1 lijkt mij ook handig, niet? id is namelijk uniek.
Het lijkt je handig met als reden dat het niets toevoegt :?
TwenteFCdonderdag 28 november 2013 @ 20:39
quote:
0s.gif Op donderdag 28 november 2013 20:31 schreef Crutch het volgende:

[..]

Heb je in de database gekeken of je model überhaupt wordt opgeslagen?
En relationships sla je op met ->push()

->push is voor bestaande objecten, heb het ondertussen al opgelost door heel lelijk een AI veld toe te voegen en daar op te koppelen.

Eloquent vind het niet leuk als je geen AI id veld hebt.

Het model werd wel correct opgeslagen.
TwenteFCdonderdag 28 november 2013 @ 20:40
quote:
0s.gif Op donderdag 28 november 2013 20:31 schreef xaban06 het volgende:

[..]

Database is nog niet gevuld (lees: leeg), script is nog niet af. Maar wat je zegt kan wel inderdaad met demo data. Anyways, thanks!

LIMIT 1 lijkt mij ook handig, niet? id is namelijk uniek.
Je kan ook even een grote batch insert doen om er mee te testen natuurlijk.
#ANONIEMdonderdag 28 november 2013 @ 20:41
Uhm, hey guys wat vinden jullie het beste framework voor PHP?
Ik heb nou al tering veel artikelen gelezen, maar ben nog niet echt wijzer...
TwenteFCdonderdag 28 november 2013 @ 20:44
quote:
0s.gif Op donderdag 28 november 2013 20:41 schreef RetRy32 het volgende:
Uhm, hey guys wat vinden jullie het beste framework voor PHP?
Ik heb nou al tering veel artikelen gelezen, maar ben nog niet echt wijzer...
"het beste", mijn inziens is het vrij persoonlijk wat voor jou het beste is.

Ligt er maar net aan wat je wil bereiken, persoonlijk ben ik wel een fan van Laravel het programmeert lekker snel weg en er is een redelijk grote supportbase aanwezig.
xaban06donderdag 28 november 2013 @ 20:50
quote:
14s.gif Op donderdag 28 november 2013 20:38 schreef KomtTijd... het volgende:

[..]

Het lijkt je handig met als reden dat het niets toevoegt :?
Ik dacht dat het wel meerwaarde had, dat het namelijk stopt met verder zoeken wanneer er een match gevonden is. Zonder LIMIT doorzoekt hij alle records dacht ik.
KomtTijd...donderdag 28 november 2013 @ 20:53
quote:
0s.gif Op donderdag 28 november 2013 20:50 schreef xaban06 het volgende:

[..]

Ik dacht dat het wel meerwaarde had, dat het namelijk stopt met verder zoeken wanneer er een match gevonden is. Zonder LIMIT doorzoekt hij alle records dacht ik.
Niet als je id Unique is, waar ik wel even vanuit ging natuurlijk.
xaban06donderdag 28 november 2013 @ 20:54
quote:
14s.gif Op donderdag 28 november 2013 20:53 schreef KomtTijd... het volgende:

[..]

Niet als je id Unique is, waar ik wel even vanuit ging natuurlijk.
Is het niet :)
TwenteFCdonderdag 28 november 2013 @ 20:56
quote:
0s.gif Op donderdag 28 november 2013 20:54 schreef xaban06 het volgende:

[..]

Is het niet :)
Maar hoe weet je dan dat de eerste het juiste resultaat is? Als het onderscheid gemaakt wordt op category,subcategory dan zou je sowieso de 2e query moeten gebruiken even terug te komen op je eerste vraag.

Behalve dat je ze dan weg kan laten in de select, omdat je die waardes al hebt.
xaban06donderdag 28 november 2013 @ 21:00
quote:
19s.gif Op donderdag 28 november 2013 20:56 schreef TwenteFC het volgende:

[..]

Maar hoe weet je dan dat de eerste het juiste resultaat is? Als het onderscheid gemaakt wordt op category,subcategory dan zou je sowieso de 2e query moeten gebruiken even terug te komen op je eerste vraag.

Behalve dat je ze dan weg kan laten in de select, omdat je die waardes al hebt.
Ik bedoel, id is altijd uniek, geen duplicates, maar ik heb het niet als unique gedefineerd omdat ik nog niet weet wat unique, primary key, index etc allemaal doen.
TwenteFCdonderdag 28 november 2013 @ 21:01
quote:
0s.gif Op donderdag 28 november 2013 21:00 schreef xaban06 het volgende:

[..]

Ik bedoel, id is altijd uniek, geen duplicates, maar ik heb het niet als unique gedefineerd omdat ik nog niet weet wat unique, primary key, index etc allemaal doen.
Wordt jouw id automatisch opgehoogd wanneer je een nieuwe toevoegt? zoja; dan is het al je PK, en uniek.
xaban06donderdag 28 november 2013 @ 21:02
quote:
19s.gif Op donderdag 28 november 2013 21:01 schreef TwenteFC het volgende:

[..]

Wordt jouw id automatisch opgehoogd wanneer je een nieuwe toevoegt? zoja; dan is het al je PK, en uniek.
Is een auto_increment veld. Wat is PK?
KomtTijd...donderdag 28 november 2013 @ 21:04
De primary key is altijd unique.
TwenteFCdonderdag 28 november 2013 @ 21:05
quote:
0s.gif Op donderdag 28 november 2013 21:02 schreef xaban06 het volgende:

[..]

Is een auto_increment veld. Wat is PK?
Primary key, en een auto_increment veld is per definitie uniek en onderdeel v/d PK.

edit: Je kan het ook heel makkelijk testen, om eens kijken wat er dan gebeurt; Voeg maar eens een product toe met een ID dat al bestaat.
xaban06donderdag 28 november 2013 @ 21:25
Nog een vraag, ik sla prijzen op als:
199,99

In MySQL doe ik in een SELECT, price+shipmentCost as totalPrice. Dit werkt niet. Het werkt wel wanneer ik de prijzen opsla als:
199.99

Dus een punt in plaats van een komma. Is hier omheen te werken op een nette manier?
KomtTijd...donderdag 28 november 2013 @ 21:50
Al zou het kunnen, dat is toch iets wat je absoluut nooit aan wilt beginnen?

Sowieso, sla gewoon de prijs in centen op als int.
HalveZwaredonderdag 28 november 2013 @ 21:50
quote:
0s.gif Op donderdag 28 november 2013 21:25 schreef xaban06 het volgende:
Nog een vraag, ik sla prijzen op als:
199,99

In MySQL doe ik in een SELECT, price+shipmentCost as totalPrice. Dit werkt niet. Het werkt wel wanneer ik de prijzen opsla als:
199.99

Dus een punt in plaats van een komma. Is hier omheen te werken op een nette manier?
Waarom niet gewoon de Price en shipmentCost ( Let even op met dit soort CamelCasing overigens !! ) uit DB trekken en PHP het op laten tellen? dan kun je er ook nog variabele kortingen en dergelijke in mee rekenen als je dit nodig hebt?

quote:
14s.gif Op donderdag 28 november 2013 21:50 schreef KomtTijd... het volgende:
Al zou het kunnen, dat is toch iets wat je absoluut nooit aan wilt beginnen?

Sowieso, sla gewoon de prijs in centen op als int.
Dit inderdaad, dat vind je backend ook stuk toffer! :-)
comma getallen ( Floats etc ) gaan gewoon net effe minder lekker door je database heen
Crutchdonderdag 28 november 2013 @ 21:51
quote:
0s.gif Op donderdag 28 november 2013 21:25 schreef xaban06 het volgende:
Nog een vraag, ik sla prijzen op als:
199,99

In MySQL doe ik in een SELECT, price+shipmentCost as totalPrice. Dit werkt niet. Het werkt wel wanneer ik de prijzen opsla als:
199.99

Dus een punt in plaats van een komma. Is hier omheen te werken op een nette manier?
Ja, je waarde altijd opslaan als float of decimal en pas converteren naar #,## wanner je het output naar je template.

Of centen inderdaad.
slacker_nldonderdag 28 november 2013 @ 21:56
quote:
0s.gif Op donderdag 28 november 2013 21:25 schreef xaban06 het volgende:
Nog een vraag, ik sla prijzen op als:
199,99

In MySQL doe ik in een SELECT, price+shipmentCost as totalPrice. Dit werkt niet. Het werkt wel wanneer ik de prijzen opsla als:
199.99

Dus een punt in plaats van een komma. Is hier omheen te werken op een nette manier?
1
2
3
4
5
$price = 1999.99;
$price = number_format($price, 2, ',', '.');
print $price . "\n";

# geeft 1.999,99

Zo kan je het in je weergave aanpassen, ik zou het gewoon goed als float/double opslaan in je DB. En als centen opslaan in je DB.. mja, ik snap die redenatie niet. Alsof floats/doubles zo moeilijk zijn voor een database...

Je kan overigens ook..

1
2
3
4
5
6
7
8
setlocale(LC_ALL, array(
    'nl_NL.utf8',
    'nl_NL@euro',
    'nl_NL.iso885915@euro',
    'nl_NL.iso88591',
    'nl_NL',
    'POSIX',
));

proberen te gebruiken. Maar dat kan eventueel misgaan bij de input naar de database. Dan moet je binnen je transactie wellicht even de locale terugzetten naar iets Engelsachtig (LC_MONETARY en/of LC_NUMERIC aanpassen helpt al).

[ Bericht 9% gewijzigd door slacker_nl op 28-11-2013 22:11:41 ]
TwenteFCdonderdag 28 november 2013 @ 22:19
1
2
3
4
5
6
7
8
9
10
<?php
SELECT 
*
FROM productoffers AS po
WHERE po
.id IN (
    
SELECT id
    FROM productoffers
    WHERE sellerId 
=1
)
AND 
po.sellerId 2
?>

Ik wil de productprijzen op halen van producten die zowel bij shop A als bij shop B zijn, waar ga ik de fout in met deze query? Had het ook al met EXISTS geprobeerd maar ik loop even flink te kutten nu :o
slacker_nldonderdag 28 november 2013 @ 22:22
quote:
19s.gif Op donderdag 28 november 2013 22:19 schreef TwenteFC het volgende:

[ code verwijderd ]

Ik wil de productprijzen op halen van producten die zowel bij shop A als bij shop B zijn, waar ga ik de fout in met deze query? Had het ook al met EXISTS geprobeerd maar ik loop even flink te kutten nu :o
where po.sellerid = 1 and po.sellerid =2?
TwenteFCdonderdag 28 november 2013 @ 22:24
quote:
0s.gif Op donderdag 28 november 2013 22:22 schreef slacker_nl het volgende:

[..]

where po.sellerid = 1 and po.sellerid =2?
Dan krijg ik alle producten seller 1 en 2, ongeacht of seller 1 en 2 het beide product hebben.
TwenteFCdonderdag 28 november 2013 @ 22:25
:P En nu ik dat typ bedenk ik me op eens iets |:(
xaban06donderdag 28 november 2013 @ 22:28
quote:
0s.gif Op donderdag 28 november 2013 21:56 schreef slacker_nl het volgende:

[..]
[ code verwijderd ]

Zo kan je het in je weergave aanpassen, ik zou het gewoon goed als float/double opslaan in je DB. En als centen opslaan in je DB.. mja, ik snap die redenatie niet. Alsof floats/doubles zo moeilijk zijn voor een database...

Je kan overigens ook..
[ code verwijderd ]

proberen te gebruiken. Maar dat kan eventueel misgaan bij de input naar de database. Dan moet je binnen je transactie wellicht even de locale terugzetten naar iets Engelsachtig (LC_MONETARY en/of LC_NUMERIC aanpassen helpt al).
Thanks, zal daar eens naar kijken. Het is allemaal read, ik doe verder zo goed als geen input/insert :)
slacker_nldonderdag 28 november 2013 @ 22:29
quote:
19s.gif Op donderdag 28 november 2013 22:24 schreef TwenteFC het volgende:

[..]

Dan krijg ik alle producten seller 1 en 2, ongeacht of seller 1 en 2 het beide product hebben.
hoezo, tis geen or toch? where (po.sellerid = 1 and po.sellerid = 2) and .. zou m.i. moeten werken.
TwenteFCdonderdag 28 november 2013 @ 22:32
quote:
0s.gif Op donderdag 28 november 2013 22:29 schreef slacker_nl het volgende:

[..]

hoezo, tis geen or toch? where (po.sellerid = 1 and po.sellerid = 2) and .. zou m.i. moeten werken.
:P hoe kan één sellerId 1 en 2 zijn dan?

:@ Maar heb het al opgelost, er was simpelweg geen product dat zowel bij 1 als 2 beschikbaar was :@ :@ Het wordt hoogtijd dat ik ga slapen.
slacker_nldonderdag 28 november 2013 @ 22:37
quote:
19s.gif Op donderdag 28 november 2013 22:32 schreef TwenteFC het volgende:

[..]

:P hoe kan één sellerId 1 en 2 zijn dan?

:@ Maar heb het al opgelost, er was simpelweg geen product dat zowel bij 1 als 2 beschikbaar was :@ :@ Het wordt hoogtijd dat ik ga slapen.
Owja, das waar, maar je kan ook joinen met jezelf volgens mij.

dan krijg je iets als

1
2
3
4
5
6
7
8
SELECT 
    *   
FROM 
    productoffer AS po
JOIN 
    productoffer AS po2 on po2.id = po.id AND po.reseller_id = 1 
WHERE                                                                                                                                              
    po2.reseller_id = 2;

Al kan die AND in de JOIN ook een WHERE zijn, over die syntax twijfel ik even..
TwenteFCdonderdag 28 november 2013 @ 23:07
quote:
0s.gif Op donderdag 28 november 2013 22:37 schreef slacker_nl het volgende:

[..]

Owja, das waar, maar je kan ook joinen met jezelf volgens mij.

dan krijg je iets als
[ code verwijderd ]

Al kan die AND in de JOIN ook een WHERE zijn, over die syntax twijfel ik even..
Heb het nu werkend maar je kan inderdaad gewoon een query in de ON gooien.
Wel tussen ( ) volgens mij. Toch bedankt voor de hulp ^O^
TwenteFCvrijdag 29 november 2013 @ 01:02
Net een verneukte query uitgevoerd, doet hij toch nog aardig :P
Weergave van records 0 - 29 ( 74,554,590 totaal, query duurde 0.0055 sec)
TwenteFCvrijdag 29 november 2013 @ 21:15
Ik wil in SQL met MATCH de overeenkomsten van een zoekopdracht vergelijk met een kolom en daar een percentage uit berekenen, dit werkt nu al goed.

Maar hoe kan ik woorden uitsluiten van deze match?
xaban06vrijdag 29 november 2013 @ 21:48
quote:
0s.gif Op donderdag 28 november 2013 21:56 schreef slacker_nl het volgende:

[..]
[ code verwijderd ]

Zo kan je het in je weergave aanpassen, ik zou het gewoon goed als float/double opslaan in je DB. En als centen opslaan in je DB.. mja, ik snap die redenatie niet. Alsof floats/doubles zo moeilijk zijn voor een database...

Je kan overigens ook..
[ code verwijderd ]

proberen te gebruiken. Maar dat kan eventueel misgaan bij de input naar de database. Dan moet je binnen je transactie wellicht even de locale terugzetten naar iets Engelsachtig (LC_MONETARY en/of LC_NUMERIC aanpassen helpt al).
setlocale lijkt geen verandering er in te brengen.
bondagevrijdag 29 november 2013 @ 22:09
quote:
19s.gif Op vrijdag 29 november 2013 21:15 schreef TwenteFC het volgende:
Ik wil in SQL met MATCH de overeenkomsten van een zoekopdracht vergelijk met een kolom en daar een percentage uit berekenen, dit werkt nu al goed.

Maar hoe kan ik woorden uitsluiten van deze match?
NOT MATCH(...)
Lightvrijdag 29 november 2013 @ 22:33
quote:
0s.gif Op donderdag 28 november 2013 21:56 schreef slacker_nl het volgende:

Zo kan je het in je weergave aanpassen, ik zou het gewoon goed als float/double opslaan in je DB. En als centen opslaan in je DB.. mja, ik snap die redenatie niet. Alsof floats/doubles zo moeilijk zijn voor een database...
Een database kan prima floats en doubles opslaan, maar de exacte waarde die je opslaat is niet de waarde die je terugkrijgt. Floats en doubles kunnen namelijk niet ieder getal exact weergeven. 1,99 wordt dan misschien 1,9899999999. En dat gaat vroeg of laat afrondingsproblemen geven die ook nog eens best lastig te vinden zijn. Bij financiele informatie is dat niet wenselijk, dus kun je beter met centen rekenen en pas bij weergave afronden.
slacker_nlvrijdag 29 november 2013 @ 22:35
quote:
0s.gif Op vrijdag 29 november 2013 22:33 schreef Light het volgende:

[..]

Een database kan prima floats en doubles opslaan, maar de exacte waarde die je opslaat is niet de waarde die je terugkrijgt. Floats en doubles kunnen namelijk niet ieder getal exact weergeven. 1,99 wordt dan misschien 1,9899999999. En dat gaat vroeg of laat afrondingsproblemen geven die ook nog eens best lastig te vinden zijn. Bij financiele informatie is dat niet wenselijk, dus kun je beter met centen rekenen en pas bij weergave afronden.
Jij wilt zeggen dat een postgres of mysql or oracle 1,99 als 1,98999 of als 1,97 teruggeeft? Ik geloof daar geen drol van.
rekenwondervrijdag 29 november 2013 @ 22:41
quote:
0s.gif Op vrijdag 29 november 2013 22:35 schreef slacker_nl het volgende:

[..]

Jij wilt zeggen dat een postgres of mysql or oracle 1,99 als 1,98999 of als 1,97 teruggeeft? Ik geloof daar geen drol van.
Light overdrijft een beetje, maar heeft wel een puntje.

What Every Computer Scientist Should Know About Floating-Point Arithmetic
Lightvrijdag 29 november 2013 @ 22:43
quote:
0s.gif Op vrijdag 29 november 2013 22:35 schreef slacker_nl het volgende:

[..]

Jij wilt zeggen dat een postgres of mysql or oracle 1,99 als 1,98999 of als 1,97 teruggeeft? Ik geloof daar geen drol van.
Zie bijvoorbeeld ook hier:
http://stackoverflow.com/(...)ion-problem-in-mysql
TwenteFCvrijdag 29 november 2013 @ 22:43
quote:
0s.gif Op vrijdag 29 november 2013 22:35 schreef slacker_nl het volgende:

[..]

Jij wilt zeggen dat een postgres of mysql or oracle 1,99 als 1,98999 of als 1,97 teruggeeft? Ik geloof daar geen drol van.
Het is gewoon opletten met wat je doet, bijv round(1.4545,2) geeft 1.45 terug.
Lightvrijdag 29 november 2013 @ 22:48
quote:
19s.gif Op vrijdag 29 november 2013 22:43 schreef TwenteFC het volgende:

[..]

Het is gewoon opletten met wat je doet, bijv round(1.4545,2) geeft 1.45 terug.
Het probleem is niet round(), het probleem is die 1.4545 en de nauwkeurigheid daarvan. Als je alleen dat getal hebt, zal het wel goed gaan. Als je spannende berekeningen doet en verschillende getallen gebruikt, kun je een afwijking krijgen.
xaban06vrijdag 29 november 2013 @ 23:02
Ik maak in ieder geval geen berekeningen, ik krijg een lijst aangeleverd met producten + prijzen, deze insert ik gewoon in een database, maar moet tijdens het showen de prijs + verzendkosten bij elkaar optellen.

Maar laat ook maar, ik zie net dat de prijzen worden aangeleverd in #.##, met punt dus en niet met komma, stom stom stom :)
slacker_nlzaterdag 30 november 2013 @ 00:11
quote:
0s.gif Op vrijdag 29 november 2013 21:48 schreef xaban06 het volgende:

[..]

setlocale lijkt geen verandering er in te brengen.
Vreemd, hier wel. Wat is de return value van setlocale? Zie de docs even, daar staan wat nuttige dingen in..
Alfjezondag 1 december 2013 @ 12:29
Vraagje over mijn database design:

Ik heb een locatie die onderdeel is van een groep en de locatie bevat meerdere ruimtes.
Nu wil ik openingstijden toevoegen en wel op een manier dat de groep de standaard openingstijden bevat voor elke locatie binnen de groep. Een locatie kan afwijkende openingstijden hebben die specifiek aan de locatie gekoppeld moeten worden. En tot slot kan het zijn dat een ruimte nog eigen openingstijden heeft die dan voorgaan.

Ik heb dus de tabellen:
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
CREATE TABLE `group` (
  `id` TINYINT NULL AUTO_INCREMENT DEFAULT NULL,
  `name` TINYINT NULL DEFAULT NULL,
  PRIMARY KEY (`id`)
);

CREATE TABLE `location` (
  `id` TINYINT NULL AUTO_INCREMENT DEFAULT NULL,
  `group_id` TINYINT NULL DEFAULT NULL,
  PRIMARY KEY (`id`)
);

CREATE TABLE `room` (
  `id` TINYINT NULL AUTO_INCREMENT DEFAULT NULL,
  `location_id` TINYINT NULL DEFAULT NULL,
  PRIMARY KEY (`id`)
);

CREATE TABLE `opening_hours` (
  `id` TINYINT NULL AUTO_INCREMENT DEFAULT NULL,
  `open_time` TIME NULL DEFAULT NULL,
  `close_time` TIME NULL DEFAULT NULL,
  `weekday` TINYINT NULL DEFAULT NULL,
  PRIMARY KEY (`id`)
);

Wat is nu de beste manier om de opening_hours aan de betreffende tabellen te koppelen. Ik zie zelf twee opties:
- twee velden toevoegen aan de opening hours, één voor het type tabel waar hij naar linkt (related_type) en één voor het bijbehorende id (related_id). Nadeel hiervan is dat je geen foreign keys kunt gebruiken omdat je niet weet naar welke tabel het related_id veld verwijst.
- Voor elk type een koppelingstabel maken. Dan kan je wel met foreign keys werken, maar krijg je misschien een wildgroei aan tabellen.

Welke van de twee opties is "beter" en waarom?
En zijn er nog andere opties?
papernotezondag 1 december 2013 @ 13:41
Derde optie: een opening_hours_id toevoegen aan group, location en room welke ook NULL kan zijn.
Alfjezondag 1 december 2013 @ 13:53
quote:
3s.gif Op zondag 1 december 2013 13:41 schreef papernote het volgende:
Derde optie: een opening_hours_id toevoegen aan group, location en room welke ook NULL kan zijn.
Opzich ook een mooie oplossing inderdaad, alleen heb ik hier een ander probleem, namelijk dat de openingstijden per dag verschillend kunnen zijn (het weekday veld in opening_hours) Dat betekent dat ieder eigenlijk 7 "openingstijden" heeft. Om nou aan elke tabel zeven velden toe te voegen lijkt me ook niet erg mooi.
Lightzondag 1 december 2013 @ 14:01
quote:
0s.gif Op zondag 1 december 2013 13:53 schreef Alfje het volgende:

[..]

Opzich ook een mooie oplossing inderdaad, alleen heb ik hier een ander probleem, namelijk dat de openingstijden per dag verschillend kunnen zijn (het weekday veld in opening_hours) Dat betekent dat ieder eigenlijk 7 "openingstijden" heeft. Om nou aan elke tabel zeven velden toe te voegen lijkt me ook niet erg mooi.
Dan kun je beter aan de tabel opening_hours een kolom location_id (of room_id) toevoegen, om aan te geven voor welke locatie die openingstijden gelden. Dan weet je ook zeker dat je voor iedere lokatie de tijden apart kunt aanpassen zonder dat je tijden van andere lokaties verandert.
raptorixdinsdag 3 december 2013 @ 18:20
quote:
0s.gif Op zondag 1 december 2013 13:53 schreef Alfje het volgende:

[..]

Opzich ook een mooie oplossing inderdaad, alleen heb ik hier een ander probleem, namelijk dat de openingstijden per dag verschillend kunnen zijn (het weekday veld in opening_hours) Dat betekent dat ieder eigenlijk 7 "openingstijden" heeft. Om nou aan elke tabel zeven velden toe te voegen lijkt me ook niet erg mooi.
Als je het echt wilt normaliseren ontkomt je daar niet aan, anders gaat het botsen met je business rules. Wat je nog wel zou kunnen doen is een table "opening schema's" maken waarin je dus verschillende sets van openingstijden kunt definieren, eventueel zou je dat ook weer naar 2 tables kunnen normaliseren met weer een opsplitsing per dag.

Overigens zou ik in dit geval helemaal niet zo ver gaan met normaliseren, wanneer performance niet een groot probleem is, en er bijvoorbeeld geen belangrijke transacties plaatsvinden zou ik de openingstijden gewoon op extra columns zetten zoals dat met NoSQL databases ook gangbaar is.
xaban06donderdag 5 december 2013 @ 15:55
Ik loop alweer tegen een probleem op.
1PHP Fatal error:  Cannot use object of type mysqli_result as array in file.php

1
2
3
4
5
6
7
8
9
10
11
12
13
<?php
$productQuery     
"SELECT ean, name FROM products WHERE category = '$category'";
$productResult    $mysqli->query($productQuery);

while (
$productRow $productResult->fetch_assoc()) {
    
$productPriceQuery     "SELECT ean, price+shipmentCost AS totalPrice FROM prices WHERE ean = $productRow[ean] ORDER BY totalPrice ASC";
    
$productPriceResult    $mysqli->query($productPriceQuery);
    
    
$totalPrice            $productPriceResult->fetch_assoc();

    echo 
$productPriceResult["productURL"];
}
?>

Ik krijg de melding op regel 11.
zoemdonderdag 5 december 2013 @ 16:00
Beste oplossing (vziw ik uit de context kan halen): gebruik een (LEFT) JOIN.

Oplossing voor jouw snippet: sla de documentatie erop na ;)
quote:
Return Values

Returns FALSE on failure. For successful SELECT, SHOW, DESCRIBE or EXPLAIN queries mysqli_query() will return a mysqli_result object. For other successful queries mysqli_query() will return TRUE.


[ Bericht 3% gewijzigd door zoem op 05-12-2013 16:14:03 ]
xaban06donderdag 5 december 2013 @ 16:05
quote:
0s.gif Op donderdag 5 december 2013 16:00 schreef zoem het volgende:
Beste oplossing (vziw ik uit de context kan halen): gebruik een JOIN.

Oplossing voor jouw snippet: sla de documentatie erop na ;)

[..]

Ik weet dat het efficienter kan dmv een 1 langere query, maar voor nu wil ik het doen zoals ik het heb, moet ook gewoon kunnen toch?
zoemdonderdag 5 december 2013 @ 16:08
quote:
0s.gif Op donderdag 5 december 2013 16:05 schreef xaban06 het volgende:

[..]

Ik weet dat het efficienter kan dmv een 1 langere query, maar voor nu wil ik het doen zoals ik het heb, moet ook gewoon kunnen toch?
Natuurlijk, dat gaat ook werken. Alleen kan het aantal queries dan gigantisch oplopen als je een hele reeks aan producten hebt, waardoor de pagina traag wordt en/of de server het (onnodig) druk kan krijgen bij veel bezoekers.
xaban06donderdag 5 december 2013 @ 16:09
quote:
0s.gif Op donderdag 5 december 2013 16:08 schreef zoem het volgende:

[..]

Natuurlijk, dat gaat ook werken. Alleen kan het aantal queries dan gigantisch oplopen als je een hele reeks aan producten hebt, waardoor de pagina traag wordt en/of de server het (onnodig) druk kan krijgen bij veel bezoekers.
Klopt, maar dat is het geval niet :) En ik wil het liever nu werkend hebben dan dat ik me weer moet inlezen, proberen, repareren, proberen, etc etc. Kost erg veel tijd voor nu :)

Wat is er precies fout in mijn script?
bondagedonderdag 5 december 2013 @ 16:10
quote:
0s.gif Op donderdag 5 december 2013 16:08 schreef zoem het volgende:

[..]

Natuurlijk, dat gaat ook werken. Alleen kan het aantal queries dan gigantisch oplopen als je een hele reeks aan producten hebt, waardoor de pagina traag wordt en/of de server het (onnodig) druk kan krijgen bij veel bezoekers.
En daarbij nog de overhead welke wordt veroorzaakt door het verkeer tussen het script en de MySQL server... Ik zou zelf niet zo snel query's in een loop gaan zetten als dat niet nodig is.
zoemdonderdag 5 december 2013 @ 16:11
quote:
0s.gif Op donderdag 5 december 2013 16:09 schreef xaban06 het volgende:

[..]

Klopt, maar dat is het geval niet :) En ik wil het liever nu werkend hebben dan dat ik me weer moet inlezen, proberen, repareren, proberen, etc etc. Kost erg veel tijd voor nu :)

Wat is er precies fout in mijn script?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<?php
$productQuery     
"SELECT ean, name FROM products WHERE category = '$category'";
$productResult    $mysqli->query($productQuery);

while (
$productRow $productResult->fetch_assoc()) {
    
$productPriceQuery     "SELECT ean, price+shipmentCost AS totalPrice FROM prices WHERE ean = $productRow[ean] ORDER BY totalPrice ASC";
    
$productPriceResult    $mysqli->query($productPriceQuery);
    
    
$totalPrice            $productPriceResult->fetch_assoc();

    echo 
$productPriceResult["productURL"]; // productPriceResult is dus een mysqli object, geen array
    
echo $totalPrice["productURL"]; // totalPrice moet je hebben, want die had je al omgezet naar een assoc array
    
}
?>
xaban06donderdag 5 december 2013 @ 16:15
quote:
0s.gif Op donderdag 5 december 2013 16:11 schreef zoem het volgende:

[..]
[ code verwijderd ]

Ik zie geen verschil tussen jouw en mijn code, of wel? :@
bondagedonderdag 5 december 2013 @ 16:15
quote:
0s.gif Op donderdag 5 december 2013 16:09 schreef xaban06 het volgende:

[..]

Klopt, maar dat is het geval niet :) En ik wil het liever nu werkend hebben dan dat ik me weer moet inlezen, proberen, repareren, proberen, etc etc. Kost erg veel tijd voor nu :)

Wat is er precies fout in mijn script?
Je kunt je query simpelweg aanpassen naar:

1
2
3
4
$productQuery     = "SELECT products.ean, products.name, prices.price+prices.shipmentCost AS totalPrice, products.productURL
                     FROM products
                     JOIN prices ON products.ean = prices.ean
                     WHERE category = '$category'";
xaban06donderdag 5 december 2013 @ 16:17
quote:
0s.gif Op donderdag 5 december 2013 16:15 schreef bondage het volgende:

[..]

Je kunt je query simpelweg aanpassen naar:
[ code verwijderd ]

Hartstikke bedankt voor de query, wordt gewaardeerd, maar mijn query wordt straks nog langer en dan weet ik dat ik er niet meer uit zal komen, vandaar hield ik het simpel :)

Zal het straks eens uitproberen.
zoemdonderdag 5 december 2013 @ 16:17
quote:
0s.gif Op donderdag 5 december 2013 16:15 schreef xaban06 het volgende:

[..]

Ik zie geen verschil tussen jouw en mijn code, of wel? :@
De laatste regel in de loop is de verbetering, de voorlaatste regel is foutief.
quote:
0s.gif Op donderdag 5 december 2013 16:15 schreef bondage het volgende:

[..]

Je kunt je query simpelweg aanpassen naar:
[ code verwijderd ]

De vraag is of er meerdere prijzen zijn per artikel, want dan moet de code iets aangepast worden. Anders was dit een prima drop-in replacement geweest :)
xaban06donderdag 5 december 2013 @ 16:18
quote:
0s.gif Op donderdag 5 december 2013 16:17 schreef zoem het volgende:

[..]

De laatste regel in de loop is de verbetering, de voorlaatste regel is foutief.

[..]

De vraag is of er meerdere prijzen zijn per artikel, want dan moet de php code iets aangepast worden.
Per product zijn er meerdere prijzen, ik haal de goedkoopste eruit per product.
bondagedonderdag 5 december 2013 @ 16:30
quote:
0s.gif Op donderdag 5 december 2013 16:18 schreef xaban06 het volgende:

[..]

Per product zijn er meerdere prijzen, ik haal de goedkoopste eruit per product.
Deze query zou die data moeten teruggeven. Kan echter niet testen en weet niet zeker of het zo klopt... Misschien dat zoem hier eventueel een aanvulling op kan geven.

1
2
3
4
5
6
7
8
SELECT * FROM (
    SELECT products.ean, products.name, prices.price+prices.shipmentCost AS totalPrice, products.productURL
    FROM products
    JOIN prices ON products.ean = prices.ean
    WHERE category = '$category'
) AS t
GROUP BY t.ean
HAVING t.totalPrice = MIN(t.totalPrice)


[ Bericht 0% gewijzigd door bondage op 05-12-2013 17:48:45 ("; weggehaald na de variable) ]
zoemdonderdag 5 december 2013 @ 16:32
Dat is het bekende groupwise maximum (of minimum) probleem. Via de bekende zoekmachine zijn daar tal voorbeelden en oplossingen over te vinden.
raptorixdonderdag 5 december 2013 @ 17:42
quote:
0s.gif Op donderdag 5 december 2013 16:30 schreef bondage het volgende:

[..]

Deze query zou die data moeten teruggeven. Kan echter niet testen en weet niet zeker of het zo klopt... Misschien dat zoem hier eventueel een aanvulling op kan geven.
[ code verwijderd ]

Dit is inderdaad de juiste manier, en juist op deze manier hou je je queries ook redelijk leesbaar vind ik.
xaban06donderdag 5 december 2013 @ 23:51
quote:
0s.gif Op donderdag 5 december 2013 16:32 schreef zoem het volgende:
Dat is het bekende groupwise maximum (of minimum) probleem. Via de bekende zoekmachine zijn daar tal voorbeelden en oplossingen over te vinden.
Thanks voor deze reactie.

Volgens mij moet dit werken:
1
2
3
SELECT products.ean, prices.ean, prices.price
FROM products, prices
WHERE prices.price=(SELECT MIN(prices.price) FROM prices WHERE products.ean = prices.ean);

/edit
het lijkt te werken, echter wil ik price+shipmentCost bijelkaar optellen, dan veranderd de WHERE, maar snap m niet helemaal :@
bondagevrijdag 6 december 2013 @ 00:04
quote:
0s.gif Op donderdag 5 december 2013 23:51 schreef xaban06 het volgende:

[..]

Thanks voor deze reactie.

Volgens mij moet dit werken:
[ code verwijderd ]

/edit
het lijkt te werken, echter wil ik price+shipmentCost bijelkaar optellen, dan veranderd de WHERE, maar snap m niet helemaal :@
prices.price+prices.shipmentCost AS totalPrice in de select werkt niet? Als het niet werkt zou je je query in een andere query kunnen zetten en dan in de buitenste query de waarden optellen.
slacker_nlvrijdag 6 december 2013 @ 10:06
Kennen jullie PDO? Ga het gebruiken!! Die sql die "SELECT * FROM meuk where iets = $bla"; is jakkes. Maak een prepared statement en execute die:

1
2
3
# De syntax zal wellicht iets anders zijn, maar gebruik het!
$stm = $PDO_object->prepare("SELECT * FROM meuk WHERE iets = ?");
$stm->execute($bla);
Boze_Appelvrijdag 6 december 2013 @ 11:00
quote:
0s.gif Op vrijdag 6 december 2013 10:06 schreef slacker_nl het volgende:
Kennen jullie PDO? Ga het gebruiken!! Die sql die "SELECT * FROM meuk where iets = $bla"; is jakkes. Maak een prepared statement en execute die:
[ code verwijderd ]

Als je toch PDO gaat gebruiken, gebruikt dan BindParams. Dan je meteen typecasten en andere restricties op je input zetten.
Onnomanzondag 8 december 2013 @ 18:28
Rij1: |1| |2| |3|
Rij2: |1| |2| |3|
Rij3: |1| |3| |4|
Rij4: |1| |5| |6|

Met bovenstaande tabel wil ik graag het resultaat van de bovenste 2 rijen terug krijgen omdat rij 2 de waarde 2 heeft en rij 3 de waarde 3.

welke query moet ik hiervoor uitvoeren?

alvast bedankt
#ANONIEMzondag 8 december 2013 @ 18:40
quote:
0s.gif Op zondag 8 december 2013 18:28 schreef Onnoman het volgende:
Rij1: |1| |2| |3|
Rij2: |1| |2| |3|
Rij3: |1| |3| |4|
Rij4: |1| |5| |6|

Met bovenstaande tabel wil ik graag het resultaat van de bovenste 2 rijen terug krijgen omdat rij 2 de waarde 2 heeft en rij 3 de waarde 3.

welke query moet ik hiervoor uitvoeren?

alvast bedankt
Hoe heet je tabel en kolomnamen?

Is namelijk iets van Select * from tabel where kolom2 = 2
Maringozondag 8 december 2013 @ 18:43
quote:
0s.gif Op zondag 8 december 2013 18:28 schreef Onnoman het volgende:
Rij1: |1| |2| |3|
Rij2: |1| |2| |3|
Rij3: |1| |3| |4|
Rij4: |1| |5| |6|

Met bovenstaande tabel wil ik graag het resultaat van de bovenste 2 rijen terug krijgen omdat rij 2 de waarde 2 heeft en rij 3 de waarde 3.

welke query moet ik hiervoor uitvoeren?

alvast bedankt
Wat heb je al geprobeerd?
Onnomanzondag 8 december 2013 @ 18:56
ik wil eigenlijk een count doen op het aantal rijen met de zelfde kolom waardes

dus hoeveel rijen uit mijn tabel heeft een overeenkomstige waarde in kolom 2 en 3

ik dacht iets van

Select kolom2, kolom3, count(*) from table
group by kolom2, kolom3
having count(*) > 3;

maar dit gaat niet helemaal goed
#ANONIEMzondag 8 december 2013 @ 18:59
quote:
0s.gif Op zondag 8 december 2013 18:56 schreef Onnoman het volgende:
ik wil eigenlijk een count doen op het aantal rijen met de zelfde kolom waardes

dus hoeveel rijen uit mijn tabel heeft een overeenkomstige waarde in kolom 2 en 3

ik dacht iets van

Select kolom2, kolom3, count(*) from table
group by kolom2, kolom3
having count(*) > 3;

maar dit gaat niet helemaal goed
Leg eens uit waarom je dit doet. Wat is het echt probleem. Je echte kolomnamen. Dit is namelijk niet erg duidelijk.
Robuustheidzondag 8 december 2013 @ 19:00
quote:
0s.gif Op vrijdag 27 september 2013 23:28 schreef Light het volgende:

[..]
[ code verwijderd ]

;)
Waarom toont de exit-functie de parameter? :o
Onnomanzondag 8 december 2013 @ 19:00
quote:
1s.gif Op zondag 8 december 2013 18:59 schreef totalvamp het volgende:

[..]

Leg eens uit waarom je dit doet. Wat is het echt probleem. Je echte kolomnamen. Dit is namelijk niet erg duidelijk.
is ook niet relevant.. het gaat mij puur om een voorbeeld query volgens mijn omschrijving

ik wil namelijk de relatie met andere tabellen achterhalen
#ANONIEMzondag 8 december 2013 @ 19:02
quote:
0s.gif Op zondag 8 december 2013 19:00 schreef Onnoman het volgende:

[..]

is ook niet relevant.. het gaat mij puur om een voorbeeld query volgens mijn omschrijving

ik wil namelijk de relatie met andere tabellen achterhalen
Misschien is je tabel opzet wel verkeerd en ben je op de verkeerde wijze bezig.

Daarom is het relevant zodat ik een algemeen idee kan krijgen wat je wilt met je query
Onnomanzondag 8 december 2013 @ 19:10
quote:
1s.gif Op zondag 8 december 2013 19:02 schreef totalvamp het volgende:

[..]

Misschien is je tabel opzet wel verkeerd en ben je op de verkeerde wijze bezig.

Daarom is het relevant zodat ik een algemeen idee kan krijgen wat je wilt met je query
nou ik heb een kolom met de naam: straatnaam, huisnummer, en kamernummer
ik wil een count doen op alle rijen die dezelfde straatnaam en huisnummer hebben
#ANONIEMzondag 8 december 2013 @ 19:17
quote:
0s.gif Op zondag 8 december 2013 19:10 schreef Onnoman het volgende:

[..]

nou ik heb een kolom met de naam: straatnaam, huisnummer, en kamernummer
ik wil een count doen op alle rijen die dezelfde straatnaam en huisnummer hebben
Geen manier om het te testen maar zoiets zou kunnen werken.

Select count(t1.*)
from
tabel as t1,
Tabel as t2
Where t1.straatnaam = t2.straatnaam AND
t1.num = t2.num
Group by t1.num
#ANONIEMzondag 8 december 2013 @ 19:18
... Foutje

[ Bericht 98% gewijzigd door #ANONIEM op 08-12-2013 19:18:30 ]
Onnomanzondag 8 december 2013 @ 19:20
heb het trouwens al gevonden
mijn eerste query was toch goed
#ANONIEMzondag 8 december 2013 @ 19:26
quote:
0s.gif Op zondag 8 december 2013 19:20 schreef Onnoman het volgende:
heb het trouwens al gevonden
mijn eerste query was toch goed
Dat is mooi!
slacker_nlzondag 8 december 2013 @ 20:30
quote:
7s.gif Op vrijdag 6 december 2013 11:00 schreef Boze_Appel het volgende:

[..]

Als je toch PDO gaat gebruiken, gebruikt dan BindParams. Dan je meteen typecasten en andere restricties op je input zetten.
Ook goed! :)
Lightzondag 8 december 2013 @ 22:13
quote:
0s.gif Op zondag 8 december 2013 19:00 schreef Robuustheid het volgende:

[..]

Waarom toont de exit-functie de parameter? :o
Standaardgedrag van exit() en (die(), want dat is een alias voor exit() ) als de parameter een string is. Als je een integer als parameter geeft, wordt dat de exit code. Maar daar heb je niets aan bij webpagina's.
raptorixmaandag 9 december 2013 @ 14:54
quote:
0s.gif Op zondag 8 december 2013 19:00 schreef Onnoman het volgende:

[..]

is ook niet relevant.. het gaat mij puur om een voorbeeld query volgens mijn omschrijving

ik wil namelijk de relatie met andere tabellen achterhalen
Edit, laat maar.
raptorixmaandag 9 december 2013 @ 14:54
quote:
1s.gif Op zondag 8 december 2013 20:30 schreef slacker_nl het volgende:

[..]

Ook goed! :)
Of stored procedures, zijn ook nog eens makkelijker te testen.
Onnomandonderdag 12 december 2013 @ 14:35
Kent iemand een tooltje waarmee je van een sql of xml bestand een database diagram kan genereren?
Dus met relatie lijntjes enzo?

alvast bedankt!
Aetherdonderdag 12 december 2013 @ 15:31
quote:
0s.gif Op donderdag 12 december 2013 14:35 schreef Onnoman het volgende:
Kent iemand een tooltje waarmee je van een sql of xml bestand een database diagram kan genereren?
Dus met relatie lijntjes enzo?

alvast bedankt!
http://www.mysql.com/products/workbench/
http://www.fabforce.net/dbdesigner4/
#ANONIEMmaandag 16 december 2013 @ 15:13
quote: