FOK!forum / Digital Corner / [PHP/(My)SQL] voor dummies #102
Crutchvrijdag 18 mei 2012 @ 12:28
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
Lightvrijdag 18 mei 2012 @ 12:48
quote:
0s.gif Op vrijdag 18 mei 2012 06:50 schreef xaban06 het volgende:
Hoi :)

Ik heb een datum + tijd formaat, een voorbeeld is: 2012-05-02T21:00:00 (2 mei 2012, 21:00). Welk functie kan ik het beste gebruiken om hiermee te werken? Volgens mij is het geen standaard format?
DateTime gaat dat gewoon snappen, daar hoef je niets moeilijks voor te doen.
xaban06vrijdag 18 mei 2012 @ 13:50
quote:
0s.gif Op vrijdag 18 mei 2012 12:48 schreef Light het volgende:

[..]

DateTime gaat dat gewoon snappen, daar hoef je niets moeilijks voor te doen.
Is dat niet vanaf PHP 5.3.0? Tenminste een boel functies ervan. Ik draai 5.2.x
Lightvrijdag 18 mei 2012 @ 13:55
quote:
0s.gif Op vrijdag 18 mei 2012 13:50 schreef xaban06 het volgende:

[..]

Is dat niet vanaf PHP 5.3.0? Tenminste een boel functies ervan. Ik draai 5.2.x
Bijna alles werkt vanaf 5.2.0, volgens mij alleen DateTime::diff() niet. Maar die heb je niet nodig in dit geval :)
xaban06zaterdag 19 mei 2012 @ 08:16
Cool!
1$now = strtotime("now");

1
2
3
$date = new DateTime('2012-05-19T07:56:00');
$date2 = $date->format('Y-m-d H:i:s');
$date3 = strtotime($date2);
Dit weergeeft de tijd terug in unixtime.

Unixtime 'nu+30 minuten' doe ik met:
1$future = strtotime("+30 minutes");

Vervolgens vergelijk ik of $date3 valt tussen $now en $future:
1if ($date3 > $now && $date3 < $future) { echo "date3 binnen 30 min"; } else { echo "niet binnen 30 min"; }

Ik ben totaal noob met tijd/data. Dus het zal vast wel makkelijk/sneller/beter kunnen. Of doe ik het toch correct? :)

[ Bericht 14% gewijzigd door xaban06 op 19-05-2012 08:23:03 ]
raptorixzaterdag 19 mei 2012 @ 08:39
Geen idee, maar weet wel dat ik blij ben met datetime functies in .net ;)
Lightzaterdag 19 mei 2012 @ 09:02
quote:
0s.gif Op zaterdag 19 mei 2012 08:16 schreef xaban06 het volgende:
Cool!
[ code verwijderd ]

[ code verwijderd ]

Dit weergeeft de tijd terug in unixtime.

Unixtime 'nu+30 minuten' doe ik met:
[ code verwijderd ]

Vervolgens vergelijk ik of $date3 valt tussen $now en $future:
[ code verwijderd ]

Ik ben totaal noob met tijd/data. Dus het zal vast wel makkelijk/sneller/beter kunnen. Of doe ik het toch correct? :)
Je kunt ook DateTime objecten met elkaar vergelijken :)

1
2
3
4
5
6
7
8
9
10
11
12
13
<?php
date_default_timezone_set
('Europe/Amsterdam'); // Voor het geval er geen tijdzone is ingesteld

$now = new DateTime(); // of met 'now' als parameter
$future = new DateTime('+30 minutes');

$date = new DateTime('2012-05-19T07:56:00');
if(
$now $date && $date $future) {
    echo 
'$date ligt in de aankomende 30 minuten.';
} else {
    echo 
'$date ligt niet in de aankomende 30 minuten.';
}
?>

Ik heb hier geen PHP 5.2 om te testen of het daar ook werkt. Ik vermoed van wel :)
xaban06zaterdag 19 mei 2012 @ 09:58
quote:
0s.gif Op zaterdag 19 mei 2012 09:02 schreef Light het volgende:

[..]

Je kunt ook DateTime objecten met elkaar vergelijken :)
[ code verwijderd ]

Ik heb hier geen PHP 5.2 om te testen of het daar ook werkt. Ik vermoed van wel :)
Ik zie dat dat ook werkt, thanks! had je ook eerder mee kunnen komen, had ik het gelijk al :P
xaban06zaterdag 19 mei 2012 @ 18:05
Het volgende werkt niet:
1
2
$exp_time = '2012-05-23T02:00:00';
$tstamp = new DateTime($exp_time);

Foutmelding:
1Catchable fatal error: Object of class DateTime could not be converted to string in..

Hoe moet het wel?
Scorpiezaterdag 19 mei 2012 @ 20:02
quote:
0s.gif Op zaterdag 19 mei 2012 18:05 schreef xaban06 het volgende:
Het volgende werkt niet:
[ code verwijderd ]

Foutmelding:
[ code verwijderd ]

Hoe moet het wel?
Jouw code werkt bij mij gewoon:

1
2
3
4
5
<?php
$exp_time 
'2012-05-23T02:00:00';
$tstamp = new DateTime($exp_time);
debug($tstamp);
?>

Geeft als output:

1
2
3
4
5
6
7
8
<?php
DateTime Object
(
    [
date] => 2012-05-23 02:00:00
    
[timezone_type] => 3
    
[timezone] => Europe/Amsterdam
)
?>
xaban06zaterdag 19 mei 2012 @ 21:39
quote:
0s.gif Op zaterdag 19 mei 2012 20:02 schreef Scorpie het volgende:

[..]

Jouw code werkt bij mij gewoon:
[ code verwijderd ]

Geeft als output:
[ code verwijderd ]

Pff, wat doe ik dan verkeerd :(

1
2
3
<?php
echo $exp_time2[0];
?>
output:
12012-05-23T02:00:00

1
2
3
4
<?php
$tstamp 
= new DateTime($exp_time2[0]);
echo 
$tstamp;
?>
output:
1Catchable fatal error: Object of class DateTime could not be converted to string in...
Devvzaterdag 19 mei 2012 @ 22:00
quote:
0s.gif Op zaterdag 19 mei 2012 21:39 schreef xaban06 het volgende:

[..]

Pff, wat doe ik dan verkeerd :(
[ code verwijderd ]

output:
[ code verwijderd ]

[ code verwijderd ]

output:
[ code verwijderd ]

Probeer eens print_r() in plaats van echo().
Scorpiezaterdag 19 mei 2012 @ 22:01
Doe eens print_r ipv echo.
xaban06zaterdag 19 mei 2012 @ 22:04
DateTime Object
(
)
xaban06zondag 20 mei 2012 @ 14:44
1
2
3
4
5
6
7
<?php
$tijd
[] = '2012-05-23T02:00:00';

$date = new DateTime($tijd[0]);

echo 
$date;
?>

output:
1
2
3
# php time3.php

Catchable fatal error: Object of class DateTime could not be converted to string in /root/time3.php on line 8

Ik moet het volgens mij dus omzetten naar een string, echter is dat wel mogelijk en is dat wel juist?
Dalandozondag 20 mei 2012 @ 16:41
quote:
0s.gif Op zondag 20 mei 2012 14:44 schreef xaban06 het volgende:

[ code verwijderd ]

output:
[ code verwijderd ]

Ik moet het volgens mij dus omzetten naar een string, echter is dat wel mogelijk en is dat wel juist?
Je kan niet de class weergeven, je moet aangeven dat je het wil weergeven in de class, en in DateTime is dat format:

1
2
3
4
5
6
7
<?php
$tijd
[] = '2012-05-23T02:00:00';

$date = new DateTime($tijd[0]);

echo 
$date->format('d-m-Y H:i:s');
?>
xaban06zondag 20 mei 2012 @ 16:56
quote:
2s.gif Op zondag 20 mei 2012 16:41 schreef Dalando het volgende:

[..]

Je kan niet de class weergeven, je moet aangeven dat je het wil weergeven in de class, en in DateTime is dat format:
[ code verwijderd ]

Klopt, had het al opgelost, thanks voor je post!
Schepseltjezondag 20 mei 2012 @ 21:19
Ik heb het eindelijk voor elkaar dat ik wildcards kan gebruiken voor mijn wamp-server

Als ik in de browser typ "mijnproject.local" krijg ik d:\projects\mijnproject te zien

Dus zonder httpd.conf en de host file aan te passen... heb het voor elkaar gekregen met deze en deze tip.
boem-dikkiezondag 20 mei 2012 @ 21:39
Kun je die files niet aanpassen met Windows? Heb op OSX gewoon een paar regeltjes toegevoegd en website.dev e.d. werkt nu prima.
Schepseltjezondag 20 mei 2012 @ 21:54
quote:
14s.gif Op zondag 20 mei 2012 21:39 schreef boem-dikkie het volgende:
Kun je die files niet aanpassen met Windows? Heb op OSX gewoon een paar regeltjes toegevoegd en website.dev e.d. werkt nu prima.
Ja kan, net als elke keer een nieuwe virtualhost toevoegen, maar het wordt al snel vervelend om dat bij elk project te doen.. en bij een format ben je weer al je instellingen kwijt.. nu werkt het automatisch zonder nadenken, ik creeer een app of ik doe een git clone, en gelijk doet ie het onder z'n eigen subdomein

[ Bericht 2% gewijzigd door Schepseltje op 20-05-2012 22:05:15 ]
boem-dikkiemaandag 21 mei 2012 @ 11:08
Hebben jullie tips voor een multiple file upload? Script van Uploadify werkt bijzonder brak.

Ik wil eigenlijk dat de gebruiker met 1 uploadvenster meerdere files kan selecteren en dat deze in een /uploads/ map komen en met hun naam in de database.
xaban06maandag 21 mei 2012 @ 11:33
quote:
14s.gif Op maandag 21 mei 2012 11:08 schreef boem-dikkie het volgende:
Hebben jullie tips voor een multiple file upload? Script van Uploadify werkt bijzonder brak.

Ik wil eigenlijk dat de gebruiker met 1 uploadvenster meerdere files kan selecteren en dat deze in een /uploads/ map komen en met hun naam in de database.
Is makkelijk zelf te maken, probleem is een upload/progress bar. Heb jij misschien tips voor kant en klare systemen? Hoeft geen multiple files te ondersteunen.
boem-dikkiemaandag 21 mei 2012 @ 11:51
Hoe moet ik dat 'makkelijk' zelf maken dan? Met een loop elke file die geselecteerd wordt in de database plempen en naar de goede map zetten?
Scorpiemaandag 21 mei 2012 @ 11:59
quote:
0s.gif Op maandag 21 mei 2012 11:33 schreef xaban06 het volgende:

[..]

Is makkelijk zelf te maken, probleem is een upload/progress bar. Heb jij misschien tips voor kant en klare systemen? Hoeft geen multiple files te ondersteunen.
plupload.com
urselmaandag 21 mei 2012 @ 12:01
quote:
14s.gif Op maandag 21 mei 2012 11:59 schreef Scorpie het volgende:

[..]

plupload.com
Ik wou hem net posten. :')
http://www.plupload.com/example_all_runtimes.php
Schepseltjemaandag 21 mei 2012 @ 12:48
Ik vind uploadify erg fijn werken.. alleen in IE is ie brak
boem-dikkiemaandag 21 mei 2012 @ 13:24
Ik heb een mySQL query in mijn upload.php en die pakt hij helemaal niet... hij echo't ook niks maar hij upload alles wel netjes naar /uploads/. Geen idee waarom die query niet werkt. :')

Heb ook ge'echo't en ge'alert' bij dat stukje code en dat laat hij ook niet zien. Terwijl hij overduidelijk wél dat stukje code uitvoert.
Schepseltjemaandag 21 mei 2012 @ 14:49
Kan komen omdat ie de fallback gebruikt waardoor het niet via ajax gaat maar via een standaard iframe.

Bij het uploaden via een iframe komen de files binnen via $_FILES ipv $_POST..

De laatste keer heb ik het zo gedaan
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
    public function actionHandleUpload()
    {
        header("Content-type: text/html");

        $output_filename = "src-" . uniqid() . ".jpg";
        $output_file = Yii::getPathOfAlias('webroot') . '/var/tmp/' . $output_filename;
        if (isset($_FILES['qqfile'])) {
            move_uploaded_file($_FILES['qqfile']['tmp_name'], $output_file);
        }
        else {
            $input = fopen("php://input", "r");
            $temp = tmpfile();
            $realSize = stream_copy_to_stream($input, $temp);
            fclose($input);
            if ($realSize != $this->getSize()) return false;
            $target = fopen($output_file, "w");
            fseek($temp, 0, SEEK_SET);
            stream_copy_to_stream($temp, $target);
            fclose($target);
        }

        echo "{success:false}";
        return true;
    }


[ Bericht 24% gewijzigd door Schepseltje op 21-05-2012 14:57:43 ]
Cue_woensdag 23 mei 2012 @ 10:46
Ik wil in een SQL query een select doen van een veld, maar daarvan wil ik de laatste teken weghalen. Wat in PHP dus een substr($veld, 0,-1) zou zijn, werkt niet in SQL.
De waardes in de kolom hebben ook geen vaste lengte, dus daar kan ik ook niets mee doen.

Iemand een idee?
Scorpiewoensdag 23 mei 2012 @ 10:47
quote:
5s.gif Op woensdag 23 mei 2012 10:46 schreef Cue_ het volgende:
Ik wil in een SQL query een select doen van een veld, maar daarvan wil ik de laatste teken weghalen. Wat in PHP dus een substr($veld, 0,-1) zou zijn, werkt niet in SQL.
De waardes in de kolom hebben ook geen vaste lengte, dus daar kan ik ook niets mee doen.

Iemand een idee?
LETTERLIJK de eerste hint bij google "SQL substring":

http://www.1keydata.com/sql/sql-substring.html
stefanhaanwoensdag 23 mei 2012 @ 10:50
quote:
5s.gif Op woensdag 23 mei 2012 10:46 schreef Cue_ het volgende:
Ik wil in een SQL query een select doen van een veld, maar daarvan wil ik de laatste teken weghalen. Wat in PHP dus een substr($veld, 0,-1) zou zijn, werkt niet in SQL.
De waardes in de kolom hebben ook geen vaste lengte, dus daar kan ik ook niets mee doen.

Iemand een idee?
via SUBSTR(

http://dev.mysql.com/doc/refman/5.5/en/string-functions.html
Cue_woensdag 23 mei 2012 @ 10:50
quote:
8s.gif Op woensdag 23 mei 2012 10:47 schreef Scorpie het volgende:

[..]

LETTERLIJK de eerste hint bij google "SQL substring":

http://www.1keydata.com/sql/sql-substring.html
Die had ik gezien jah
Maar dan zit ik dus met het feit dat een -1 niet werkt om de laatste cijfer weg te halen ;)
En ik niet kan opgeven wat de lengte is. omdat deze variabel is
stefanhaanwoensdag 23 mei 2012 @ 10:51
quote:
0s.gif Op woensdag 23 mei 2012 10:50 schreef Cue_ het volgende:

[..]

Die had ik gezien jah
Maar dan zit ik dus met het feit dat een -1 niet werkt om de laatste cijfer weg te halen ;)
En ik niet kan opgeven wat de lengte is. omdat deze variabel is
daar is ook een functie voor om die op te vragen.
Scorpiewoensdag 23 mei 2012 @ 10:52
quote:
0s.gif Op woensdag 23 mei 2012 10:50 schreef Cue_ het volgende:

[..]

Die had ik gezien jah
Maar dan zit ik dus met het feit dat een -1 niet werkt om de laatste cijfer weg te halen ;)
En ik niet kan opgeven wat de lengte is. omdat deze variabel is
Dan haal je het resultaat op en haal je er met substr() in PHP 1 vanaf? Waarom wil je dat uberhaupt in SQL oplossen? Klinkt alsof je weer zit te kloten met je datamodel meid.

Wil je toch doorgaan dan kan je http://www.1keydata.com/sql/sql-length.html gebruiken.
stefanhaanwoensdag 23 mei 2012 @ 10:53
Voor de variabele lengte gebruik je dan CHAR_LENGTH
Cue_woensdag 23 mei 2012 @ 10:53
Volgens mij wordt dit hem dan :D
select substr(id, 1, (length(id) -1)) from
Cue_woensdag 23 mei 2012 @ 10:54
quote:
0s.gif Op woensdag 23 mei 2012 10:52 schreef Scorpie het volgende:

Dan haal je het resultaat op en haal je er met substr() in PHP 1 vanaf? Waarom wil je dat uberhaupt in SQL oplossen? Klinkt alsof je weer zit te kloten met je datamodel meid.

Omdat ik even wat moet opschonen, een import functie van mij was wat verkeerd.
stefanhaanwoensdag 23 mei 2012 @ 10:54
quote:
0s.gif Op woensdag 23 mei 2012 10:52 schreef Scorpie het volgende:

[..]

Dan haal je het resultaat op en haal je er met substr() in PHP 1 vanaf? Waarom wil je dat uberhaupt in SQL oplossen? Klinkt alsof je weer zit te kloten met je datamodel meid.

Wil je toch doorgaan dan kan je http://www.1keydata.com/sql/sql-length.html gebruiken.
en dit. Zoiets doe je normaal niet via SQL.
stefanhaanwoensdag 23 mei 2012 @ 10:54
quote:
0s.gif Op woensdag 23 mei 2012 10:54 schreef Cue_ het volgende:

[..]

Omdat ik even wat moet opschonen, een import functie van mij was wat verkeerd.
ah dan is het een ander verhaal
Scorpiewoensdag 23 mei 2012 @ 10:57
quote:
0s.gif Op woensdag 23 mei 2012 10:54 schreef Cue_ het volgende:

[..]

Omdat ik even wat moet opschonen, een import functie van mij was wat verkeerd.
Hoeveel records moet je opschonen?

Laat me raden, er staat een spatie teveel achter elk ID?
Catch22-woensdag 23 mei 2012 @ 10:58
als je uberhaupt een spatie in een ID veld kan krijgen is je database al niet lekker
Cue_woensdag 23 mei 2012 @ 11:00
quote:
11s.gif Op woensdag 23 mei 2012 10:57 schreef Scorpie het volgende:

Hoeveel records moet je opschonen?

Laat me raden, er staat een spatie teveel achter elk ID?
Uhm er zitten nu bijna 3000 records in, maar denk een kwart ervan.

Heb dubbele records met een ander id (laatste getal anders). Dus moet het even opschonen die nog niet zijn gekoppeld met andere data maar wel dubbel zijn.
En even importfunctie veranderen natuurlijk :)

Zeg maar van die leuke beginners importfoutjes. :+
Scorpiewoensdag 23 mei 2012 @ 11:02
quote:
0s.gif Op woensdag 23 mei 2012 11:00 schreef Cue_ het volgende:

[..]

Uhm er zitten nu bijna 3000 records in, maar denk een kwart ervan.

Heb dubbele records met een ander id (laatste getal anders). Dus moet het even opschonen die nog niet zijn gekoppeld met andere data maar wel dubbel zijn.
En even importfunctie veranderen natuurlijk :)

Zeg maar van die leuke beginners importfoutjes. :+
En daarom is het principe OTAP uitgevonden.
Cue_woensdag 23 mei 2012 @ 11:03
quote:
14s.gif Op woensdag 23 mei 2012 11:02 schreef Scorpie het volgende:

En daarom is het principe OTAP uitgevonden.
Het is ook niet goed genoeg getest.
Scorpiewoensdag 23 mei 2012 @ 11:04
quote:
0s.gif Op woensdag 23 mei 2012 11:03 schreef Cue_ het volgende:

[..]

Het is ook niet goed genoeg getest.
Lekker dan, zit je met je zooitje.
Cue_woensdag 23 mei 2012 @ 11:05
quote:
11s.gif Op woensdag 23 mei 2012 11:04 schreef Scorpie het volgende:

Lekker dan, zit je met je zooitje.
Ook eigen schuld. Maar daar leren we van ^O^
Scorpiewoensdag 23 mei 2012 @ 11:06
quote:
0s.gif Op woensdag 23 mei 2012 11:05 schreef Cue_ het volgende:

[..]

Ook eigen schuld. Maar daar leren we van ^O^
Wacht even, je test je eigen werk?
Catch22-woensdag 23 mei 2012 @ 11:06
je hebt je tabel ook niet goed ingericht als zulke fouten kunnen ontstaan.
Cue_woensdag 23 mei 2012 @ 11:07
quote:
11s.gif Op woensdag 23 mei 2012 11:06 schreef Scorpie het volgende:

Wacht even, je test je eigen werk?
Je test je werk tijdens het maken natuurlijk ook. En daar zitten wat verbeterpuntjes voor mij in.
Cue_woensdag 23 mei 2012 @ 11:08
quote:
11s.gif Op woensdag 23 mei 2012 11:06 schreef Catch22- het volgende:
je hebt je tabel ook niet goed ingericht als zulke fouten kunnen ontstaan.
Klopt
Scorpiewoensdag 23 mei 2012 @ 11:08
quote:
0s.gif Op woensdag 23 mei 2012 11:07 schreef Cue_ het volgende:

[..]

Je test je werk tijdens het maken natuurlijk ook. En daar zitten wat verbeterpuntjes voor mij in.
Ja leuk, maar daarna moet het getest worden door een collega, en als je een OTAP straat hebt ook nog eens door een tester, en dan nog een keer op Acceptatie, voordat het uberhaupt op Productie komt.
Catch22-woensdag 23 mei 2012 @ 11:09
ben jij net als RenRen- zo'n pruster die iets moet doen voor haar opleiding en er verder nooit wat mee gaat doen?
Cue_woensdag 23 mei 2012 @ 11:10
quote:
0s.gif Op woensdag 23 mei 2012 11:08 schreef Scorpie het volgende:

Ja leuk, maar daarna moet het getest worden door een collega, en als je een OTAP straat hebt ook nog eens door een tester, en dan nog een keer op Acceptatie, voordat het uberhaupt op Productie komt.
OTAP hebben we niet. Wel een collega die het vervolgens test. Maar hebben daar geen hele procedures voor ofzo. Tja en daar is dit niet in opgevallen. Zoals ik zeg, letten we de volgende keer weer op.
Catch22-woensdag 23 mei 2012 @ 11:11
Je moet gewoon accurater en gestructureerder werken, dan voorkom je al een hoop fouten.
Scorpiewoensdag 23 mei 2012 @ 11:11
quote:
0s.gif Op woensdag 23 mei 2012 11:10 schreef Cue_ het volgende:

[..]

OTAP hebben we niet. Wel een collega die het vervolgens test. Maar hebben daar geen hele procedures voor ofzo. Tja en daar is dit niet in opgevallen. Zoals ik zeg, letten we de volgende keer weer op.
Zo kan je toch niet werken meid?
Cue_woensdag 23 mei 2012 @ 11:12
quote:
11s.gif Op woensdag 23 mei 2012 11:09 schreef Catch22- het volgende:
ben jij net als RenRen- zo'n pruster die iets moet doen voor haar opleiding en er verder nooit wat mee gaat doen?
Nee, tis m'n werk, en ik probeer wel te verbeteren. Ben hier binnengekomen zonder gedegen kennis. En de begeleiding is altijd geweest van 'probeer maar wat uit', 'knip en plakwerk'.. En daar kan je mee redden, maar is niet wat ik wil.

Dus begin binnenkort een cursus webdevolopment om op dat gebied wat meer basisstructuur op te doen. En mbt databases zal er ook zeker wel wat komen.
Catch22-woensdag 23 mei 2012 @ 11:14
Ja dat snap ik wel, ik ben ook onopgeleid begonnen, dus je gaat mijn pad bewandelen. Alleen moet je gewoon duidelijk beredeneren wat je doet en wat er mis zou kunnen gaan.

En een import doe je niet met 3000 tegelijk testen, je doet 1 of 10 rijen en dan kijk je of het goed gaat.
Scorpiewoensdag 23 mei 2012 @ 11:14
quote:
0s.gif Op woensdag 23 mei 2012 11:12 schreef Cue_ het volgende:

[..]

Nee, tis m'n werk, en ik probeer wel te verbeteren. Ben hier binnengekomen zonder gedegen kennis. En de begeleiding is altijd geweest van 'probeer maar wat uit', 'knip en plakwerk'.. En daar kan je mee redden, maar is niet wat ik wil.

Dus begin binnenkort een cursus webdevolopment om op dat gebied wat meer basisstructuur op te doen. En mbt databases zal er ook zeker wel wat komen.
Loop anders maar even een maand of twee met mij mee.
Cue_woensdag 23 mei 2012 @ 11:16
quote:
11s.gif Op woensdag 23 mei 2012 11:14 schreef Catch22- het volgende:
Ja dat snap ik wel, ik ben ook onopgeleid begonnen, dus je gaat mijn pad bewandelen. Alleen moet je gewoon duidelijk beredeneren wat je doet en wat er mis zou kunnen gaan.

En een import doe je niet met 3000 tegelijk testen, je doet 1 of 10 rijen en dan kijk je of het goed gaat.
Klopt, ik moet ook meer structuur erin krijgen en gewoon eens wat beter nadenken ipv gewoon doen en maar zien. Dat leer ik juist van dit soort fouten.

De manier van waarop ik dat getest heb was gewoon verkeerd. Simpel.
Dus het was al in productie gegaan, vandaar dat de database nu wat voller zit.
Catch22-woensdag 23 mei 2012 @ 11:17
"Een fout is pas een fout als je er niet van leert"
Cue_woensdag 23 mei 2012 @ 11:40
Maargoed nu we toch bezig zijn en er nog wel een goede oplossing moet komen.. Ik zit met het volgende. Ik krijg van een bedrijf data binnen mbt tankingen die er gedaan zijn.

Nu moet dat bestand dus geimporteerd worden in een database.
Probleem is alleen het volgende, ik krijg dubbele regels aangeboden:
1geknipte data
Maar dit zijn wel twee verschillende records.

Nu dacht ik dat opgelost te hebben, door zelf een ID samen te stellen van diverse velden die hem zo goed al uniek maken + een extra getal op t einde.

Doordat het bovengenoemde bestand dagelijks wordt aangevuld met nieuwe tankingen, moet ik dus bij de import kijken of het record reeds bestaat. Nu is dus gebleken dat de volgorde van de records in dat bestand gewijzigd worden door die aanvulling. En dat extra getal in mijn ID dus niet werkt..

Hebben jullie nog geniale ingevingen waar ik wat mee kan?

[ Bericht 34% gewijzigd door Cue_ op 23-05-2012 11:45:58 ]
Scorpiewoensdag 23 mei 2012 @ 11:42
Als ik dit soort zaken moet berekenen werk ik meestal met hash vergelijkingen. Dat wil zeggen; hash een record voordat je hem opslaat, sla de hash apart op en elke nieuwe record vergelijk je met de hashes die je apart hebt opgeslagen. Hash bestaat al? Record is duplicaat -> niks doen.
urselwoensdag 23 mei 2012 @ 11:44
Daarnaast zou ik ook niet dit soort "persoonlijke" zaken op een forum zetten. :@
Cue_woensdag 23 mei 2012 @ 11:46
quote:
0s.gif Op woensdag 23 mei 2012 11:44 schreef ursel het volgende:
Daarnaast zou ik ook niet dit soort "persoonlijke" zaken op een forum zetten. :@
Heb je een punt :Y
urselwoensdag 23 mei 2012 @ 11:48
quote:
0s.gif Op woensdag 23 mei 2012 11:46 schreef Cue_ het volgende:

[..]

Heb je een punt :Y
Hier, heb jij er ook een

.
Scorpiewoensdag 23 mei 2012 @ 11:48
quote:
6s.gif Op woensdag 23 mei 2012 11:48 schreef ursel het volgende:

[..]

Hier, heb jij er ook een

.
:')
Cue_woensdag 23 mei 2012 @ 11:54
quote:
0s.gif Op woensdag 23 mei 2012 11:42 schreef Scorpie het volgende:
Als ik dit soort zaken moet berekenen werk ik meestal met hash vergelijkingen. Dat wil zeggen; hash een record voordat je hem opslaat, sla de hash apart op en elke nieuwe record vergelijk je met de hashes die je apart hebt opgeslagen. Hash bestaat al? Record is duplicaat -> niks doen.
Ik zal hier eens induiken.
Pizzaluchtwoensdag 23 mei 2012 @ 12:11
Inderdaad gewoon de kolommen die samen uniek moeten zijn combineren tot een hash en dan vergelijken.

md5( $naam . '.' . $telefoonnummer )

Simpel zat, en het werkt :)
Cue_woensdag 23 mei 2012 @ 12:13
quote:
0s.gif Op woensdag 23 mei 2012 12:11 schreef Pizzalucht het volgende:
Inderdaad gewoon de kolommen die samen uniek moeten zijn combineren tot een hash en dan vergelijken.

md5( $naam . '.' . $telefoonnummer )

Simpel zat, en het werkt :)
Maar de kolommen zelf zijn dus samengevoegd niet uniek ;(
Scorpiewoensdag 23 mei 2012 @ 12:22
quote:
0s.gif Op woensdag 23 mei 2012 12:13 schreef Cue_ het volgende:

[..]

Maar de kolommen zelf zijn dus samengevoegd niet uniek ;(
Hm?
Cue_woensdag 23 mei 2012 @ 12:25
quote:
0s.gif Op woensdag 23 mei 2012 12:22 schreef Scorpie het volgende:
Hm?
Er kunnen twee/drie identieke regels in het bestand staan (ja snap ook niet waarom) . En moet ze dan ook alle twee hebben. Maar bij de volgende import, het aangevulde bestand, kom ik ze dus weer tegen, maar dan wil ik ze niet.

Hmm, dus misschien met counts in de definitieve tabel gaan werken en een count in de importtabel.. en dat moet gelijk zijn aan elkaar?
Scorpiewoensdag 23 mei 2012 @ 12:30
Ik snap het niet.

Je hebt een record die word in de database gezet bij een import actie. Dat is record A.

Vervolgens bij een volgende import actie komt record A weer langs maar nu als record B. Je weet dat record B stiekem record A is, want je hebt alle eigenschappen van record A in een hash gestopt en die opgeslagen. Je vergelijkt de hash van record A met die van record B, en ze komen overeen. Op dat moment weet je dus dat record B stiekem record A is, en doe je niks.

Ik snap niet helemaal wat je nu over wel/niet identieke regels bazelt, of over samenvoegen van dingen, of over counts van records.
Cue_woensdag 23 mei 2012 @ 12:39
Ik heb een CSV bestand met data die ik van een bedrijf krijg. In dat bestand komt het voor dat er identieke regels in staan.
Dus bijvoorbeeld
regel 1: ab ; 43 ; ds ; 565
regel 2: ab ; 43 ; ds ; 565
regel 3: sz ; 43 ; ss ; 454

Hoe je de gegevens ook samenvoegt, je krijgt dus geen unieke ID
Deze regels importeer ik in een tabel. alle drie de regels dus.

een paar dagen later krijgen we een nieuw CSV bestand die bovenstaande drie regels bevat + extra data:
Dus regel 1,2,3 + regel 4,5,6

De vraag is nu. Als ik dus dat CSV bestand, die t/m regel 6 bevat, importeer, ik zie dat regel 1 /tm 3 reeds aanwezig zijn in de tabel en dat ik dus alleen regel 4 t/m 6 daadwerkelijk naar de tabel moet schrijven.
stefanhaanwoensdag 23 mei 2012 @ 12:53
quote:
0s.gif Op woensdag 23 mei 2012 12:39 schreef Cue_ het volgende:
Ik heb een CSV bestand met data die ik van een bedrijf krijg. In dat bestand komt het voor dat er identieke regels in staan.
Dus bijvoorbeeld
regel 1: ab ; 43 ; ds ; 565
regel 2: ab ; 43 ; ds ; 565
regel 3: sz ; 43 ; ss ; 454

Hoe je de gegevens ook samenvoegt, je krijgt dus geen unieke ID
Deze regels importeer ik in een tabel. alle drie de regels dus.

een paar dagen later krijgen we een nieuw CSV bestand die bovenstaande drie regels bevat + extra data:
Dus regel 1,2,3 + regel 4,5,6

De vraag is nu. Als ik dus dat CSV bestand, die t/m regel 6 bevat, importeer, ik zie dat regel 1 /tm 3 reeds aanwezig zijn in de tabel en dat ik dus alleen regel 4 t/m 6 daadwerkelijk naar de tabel moet schrijven.
Waarom parse je dat csv bestand dan niet eerst met PHP om dubbele regels eruit te halen? :{
Cue_woensdag 23 mei 2012 @ 12:53
quote:
7s.gif Op woensdag 23 mei 2012 12:53 schreef stefanhaan het volgende:

Waarom parse je dat csv bestand dan niet eerst met PHP om dubbele regels eruit te halen? :{
Omdat ik die dubbele regels wel moet hebben. Dus in mijn voorbeeld heb ik regel 1 en 2 ook echt nodig.
stefanhaanwoensdag 23 mei 2012 @ 12:55
quote:
0s.gif Op woensdag 23 mei 2012 12:53 schreef Cue_ het volgende:

[..]

Omdat ik die dubbele regels wel moet hebben. Dus in mijn voorbeeld heb ik regel 1 en 2 ook echt nodig.
/Gebruik gewoon een programma om beide CSV files naast elkaar te zetten om de verschillen te zien, dan kun je de oude data uit het nieuwe CSV bestand halen.

Zo moeilijk is het niet :')
Cue_woensdag 23 mei 2012 @ 12:57
quote:
7s.gif Op woensdag 23 mei 2012 12:55 schreef stefanhaan het volgende:

/Gebruik gewoon een programma om beide CSV files naast elkaar te zetten om de verschillen te zien, dan kun je de oude data uit het nieuwe CSV bestand halen.

Zo moeilijk is het niet :')
Dergelijke imports zal 2x in de week gedaan worden door computerleken. Die gaan dat soort dingen nog niet echt ernaast doen.
stefanhaanwoensdag 23 mei 2012 @ 12:58
quote:
0s.gif Op woensdag 23 mei 2012 12:57 schreef Cue_ het volgende:

[..]

Dergelijke imports zal 2x in de week gedaan worden door computerleken. Die gaan dat soort dingen nog niet echt ernaast doen.
Dan parse je eerst de oude CSV samen met de nieuwe en strip je die data uit de nieuwe CSV en dat doe je dan importen.

Kun je gewoon via PHP een leuk scriptje voor schrijven
Cue_woensdag 23 mei 2012 @ 13:11
Tnx, ga ik eens mee aan de slag :)
Scorpiewoensdag 23 mei 2012 @ 13:13
quote:
0s.gif Op woensdag 23 mei 2012 12:39 schreef Cue_ het volgende:
Ik heb een CSV bestand met data die ik van een bedrijf krijg. In dat bestand komt het voor dat er identieke regels in staan.
Dus bijvoorbeeld
regel 1: ab ; 43 ; ds ; 565
regel 2: ab ; 43 ; ds ; 565
regel 3: sz ; 43 ; ss ; 454

Hoe je de gegevens ook samenvoegt, je krijgt dus geen unieke ID
Deze regels importeer ik in een tabel. alle drie de regels dus.

een paar dagen later krijgen we een nieuw CSV bestand die bovenstaande drie regels bevat + extra data:
Dus regel 1,2,3 + regel 4,5,6

De vraag is nu. Als ik dus dat CSV bestand, die t/m regel 6 bevat, importeer, ik zie dat regel 1 /tm 3 reeds aanwezig zijn in de tabel en dat ik dus alleen regel 4 t/m 6 daadwerkelijk naar de tabel moet schrijven.
De data van regel 1 en regel 2 zijn identiek. Er is dus geen enkele reden om mijn oplossing niet te gebruiken.

Edit; wat stefan zegt. Of je pakt het structureel aan en eist dat het CSV bestand dat wordt aangeleverd alleen nieuwe data bevat.
stefanhaanwoensdag 23 mei 2012 @ 13:13
quote:
14s.gif Op woensdag 23 mei 2012 13:11 schreef Cue_ het volgende:
Tnx, ga ik eens mee aan de slag :)
Tis dat mijn internet hier op school zo kut is. Ben een voorbeeld aant maken.
Cue_woensdag 23 mei 2012 @ 13:20
quote:
7s.gif Op woensdag 23 mei 2012 13:13 schreef stefanhaan het volgende:

Tis dat mijn internet hier op school zo kut is. Ben een voorbeeld aant maken.
tnx O+
stefanhaanwoensdag 23 mei 2012 @ 13:21
Mijn internet is hier zo waardeloos dat ik niks kan uploaden naar mijn server via FTP :')

Klote nerds die aant gamen zijn :r
stefanhaanwoensdag 23 mei 2012 @ 13:51
Simpele code om alle oude regels die overeen komen in de nieuwe CSV te verwijderen:
Even heel snel gemaakt met snel internet alles. Je zou dit veel beter uit moeten werken in een professionele situatie:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
$old = file_get_contents("csvold.csv");
$new = file_get_contents("csvnew.csv");

echo "Old:<br/>".$old."<br/><br/>New:<br/>".$new;

echo "<br/><br/>Old csv parsed:<br/>";
if (($handle = fopen("csvold.csv", "r")) !== FALSE) {
    while (($data = fgetcsv($handle, 1000, ",")) !== FALSE) {
        $num = count($data);

        for ($c=0; $c < $num; $c++) {
            echo $data[$c] . "<br/>";
            
            $new = str_replace($data[$c], "", $new);
        }
    }
    fclose($handle);
}

echo "<br/><br/>Combined new + old:<br/>".preg_replace("/\s+/", "<br/>",$new);


[ Bericht 1% gewijzigd door stefanhaan op 23-05-2012 13:59:02 ]
GlowMousewoensdag 23 mei 2012 @ 13:53
str_replace met een regexp?
stefanhaanwoensdag 23 mei 2012 @ 13:57
quote:
11s.gif Op woensdag 23 mei 2012 13:53 schreef GlowMouse het volgende:
str_replace met een regexp?
Whoops die hoorde er niet bij :9
Typo alles :')
_O-
Schepseltjedonderdag 24 mei 2012 @ 12:23
Zijn hier nog Magento gurus? Ik probeer het volgende te bereiken, stel ik heb een product "Adidas Sneaker", deze staat zowel onder de categorie "Sale" als de categorie "Sneakers". Als je vanuit de categorie Sneakers op de schoen klikt wordt de url /sneakers/adidas-sneaker.html en als je vanuit Sale op de schoen klikt wordt de URL /sale/adidas-sneaker.html. (verder is de schoen altijd ook nog bereikbaar via /adidas-sneaker.html)
Wat is de netste manier om Magento te vertellen dat elk product één hoofdcategorie heeft die moet terugkomen in de URL en breadcrumbs?

Ik weet dat er zoiets bestaat als canonical URL, maar daarmee los je alleen het SEO-aspect op, de gebruiker ziet nog steeds verschillende categorieen in de URL en breadcrumbs.
KomtTijd...donderdag 24 mei 2012 @ 15:07
Zijn hier mensen die ervaring hebben met CRM software?

Ik werk sinds kort met VtigerCRM (een fork van SugarCRM), maar word hier af en toe een beetje droevig van...
Ofyles2donderdag 24 mei 2012 @ 15:12
quote:
11s.gif Op woensdag 23 mei 2012 11:09 schreef Catch22- het volgende:
ben jij net als RenRen- zo'n pruster die iets moet doen voor haar opleiding en er verder nooit wat mee gaat doen?
Daar snijd je een punt aan.

Ik beschouw webdevelopment net als radio-DJ worden. Het komt aan op fingerspitzengefühl en liefde voor het vak. Het maakt niet uit of je kan programmeren vanaf je 6e of 18e.
Ofyles2donderdag 24 mei 2012 @ 15:12
quote:
7s.gif Op woensdag 23 mei 2012 13:21 schreef stefanhaan het volgende:
Mijn internet is hier zo waardeloos dat ik niks kan uploaden naar mijn server via FTP :')

Klote nerds die aant gamen zijn :r
Geef ze aan zou ik zeggen.
cablegunmasterdonderdag 24 mei 2012 @ 15:17
quote:
0s.gif Op donderdag 24 mei 2012 15:12 schreef Ofyles2 het volgende:

[..]

Daar snijd je een punt aan.

Ik beschouw webdevelopment net als radio-DJ worden. Het komt aan op fingerspitzengefühl en liefde voor het vak. Het maakt niet uit of je kan programmeren vanaf je 6e of 18e.
Webdevelopment kan je ook applicaties maken zoals een eigen CMS of een uitgebreide webapplicatie. Hierin kan je zo klein / groot bezig gaan als je wil ^O^ . Statisch of Dynamisch.
Civiliandonderdag 24 mei 2012 @ 15:47
quote:
0s.gif Op donderdag 24 mei 2012 12:23 schreef Schepseltje het volgende:
Zijn hier nog Magento gurus? Ik probeer het volgende te bereiken, stel ik heb een product "Adidas Sneaker", deze staat zowel onder de categorie "Sale" als de categorie "Sneakers". Als je vanuit de categorie Sneakers op de schoen klikt wordt de url /sneakers/adidas-sneaker.html en als je vanuit Sale op de schoen klikt wordt de URL /sale/adidas-sneaker.html. (verder is de schoen altijd ook nog bereikbaar via /adidas-sneaker.html)
Wat is de netste manier om Magento te vertellen dat elk product één hoofdcategorie heeft die moet terugkomen in de URL en breadcrumbs?

Ik weet dat er zoiets bestaat als canonical URL, maar daarmee los je alleen het SEO-aspect op, de gebruiker ziet nog steeds verschillende categorieen in de URL en breadcrumbs.
Daarvoor zou je de functie getUrl() aan kunnen passen en zorgen dat je altijd de hoofdcategorie gebruikt. Mage_Catalog_Model_Product extenden en daarin de functie getUrl() plaatsen en dan de originele waarde manipuleren.
Schepseltjevrijdag 25 mei 2012 @ 13:01
quote:
7s.gif Op donderdag 24 mei 2012 15:47 schreef Civilian het volgende:

[..]

Daarvoor zou je de functie getUrl() aan kunnen passen en zorgen dat je altijd de hoofdcategorie gebruikt. Mage_Catalog_Model_Product extenden en daarin de functie getUrl() plaatsen en dan de originele waarde manipuleren.
getUrl bestaat niet volgens mij, getProductUrl() wel, maar dat is geen standaardmethode maar een magic getter, in feite is het gewoon een attribuut.

Ik heb het nu volgens de lelijke manier opgelost, een nieuw attribuut gemaakt bij elk product, en dan met een cronjob de juiste URL genereren en in dat attribuut zetten. Vervolgens getProductUrl() vervangen door m'n eigen helper functie..
Schepseltjevrijdag 25 mei 2012 @ 13:05
quote:
0s.gif Op donderdag 24 mei 2012 15:17 schreef cablegunmaster het volgende:

[..]

Webdevelopment kan je ook applicaties maken zoals een eigen CMS of een uitgebreide webapplicatie. Hierin kan je zo klein / groot bezig gaan als je wil ^O^ . Statisch of Dynamisch.
Ja ik ken hele grote bureaus die alleen maar Drupal doen.. op een kleine hack/instelling na komt er geen code bij kijken.. maargoed bij mij is de lol van drupal er wel een beetje af.. zodra je dingen wil doen die Drupal niet standaard ondersteund heb je een probleem.. . zelfde verhaal met wordpress/joomla/magento/etc

Gewoon een degelijk framework bevalt me het beste, dan ben je tenminste echt iets aan het maken in plaats van een kant en klaar ding configureren..
KomtTijd...vrijdag 25 mei 2012 @ 13:07
Je kunt toch zelf modules maken? Nog altijd een stuk makkelijker dan een compleet eigen CMS maken.
Scorpievrijdag 25 mei 2012 @ 13:29
quote:
14s.gif Op vrijdag 25 mei 2012 13:07 schreef KomtTijd... het volgende:
Je kunt toch zelf modules maken? Nog altijd een stuk makkelijker dan een compleet eigen CMS maken.
En minder kostbaar, wat klanten ook wel op prijs stellen. Letterlijk en figuurlijk.
Devvvrijdag 25 mei 2012 @ 15:28
quote:
5s.gif Op donderdag 24 mei 2012 15:07 schreef KomtTijd... het volgende:
Zijn hier mensen die ervaring hebben met CRM software?

Ik werk sinds kort met VtigerCRM (een fork van SugarCRM), maar word hier af en toe een beetje droevig van...
Microsoft Dynamics CRM. Werkt als een zonnetje.
Civilianvrijdag 25 mei 2012 @ 15:57
quote:
0s.gif Op vrijdag 25 mei 2012 13:01 schreef Schepseltje het volgende:

[..]

getUrl bestaat niet volgens mij, getProductUrl() wel, maar dat is geen standaardmethode maar een magic getter, in feite is het gewoon een attribuut.

Ik heb het nu volgens de lelijke manier opgelost, een nieuw attribuut gemaakt bij elk product, en dan met een cronjob de juiste URL genereren en in dat attribuut zetten. Vervolgens getProductUrl() vervangen door m'n eigen helper functie..
Ja, het is een Magic getter. Maar die kan je heel makkelijk als functie in het productmodel zetten en dan behandelt hij het gewoon als een functie.
Dat is ook het hele punt van die magic functie, dat is een soort van fallback wanneer er een functie wordt aangeroepen die niet bestaat.
Schepseltjevrijdag 25 mei 2012 @ 16:40
quote:
7s.gif Op vrijdag 25 mei 2012 15:57 schreef Civilian het volgende:

[..]

Ja, het is een Magic getter. Maar die kan je heel makkelijk als functie in het productmodel zetten en dan behandelt hij het gewoon als een functie.
Dat is ook het hele punt van die magic functie, dat is een soort van fallback wanneer er een functie wordt aangeroepen die niet bestaat.
Ah ok das nog wel te proberen ;)
Pizzaluchtvrijdag 25 mei 2012 @ 17:04
quote:
0s.gif Op vrijdag 25 mei 2012 13:05 schreef Schepseltje het volgende:

[..]

Ja ik ken hele grote bureaus die alleen maar Drupal doen.. op een kleine hack/instelling na komt er geen code bij kijken.. maargoed bij mij is de lol van drupal er wel een beetje af.. zodra je dingen wil doen die Drupal niet standaard ondersteund heb je een probleem.. . zelfde verhaal met wordpress/joomla/magento/etc

Gewoon een degelijk framework bevalt me het beste, dan ben je tenminste echt iets aan het maken in plaats van een kant en klaar ding configureren..
Dat ligt meer aan ervaring. Met Drupal kan je eigenlijk alles aanpassen, als je weet hoe.
De documentatie van Drupal is over het algemeen ook erg goed.

Maar als je niet verder komt dan een module installeren, aanzetten en er dan achterkomen dat het niet precies is wat je zoekt, en dan stopt met proberen, dan is Drupal inderdaad niks voor je.

Ik werk ook bij een bedrijf waar we bijna alleen maar Drupal doen, en het is veel meer dan alleen "een kleine hack/aanpassing".
cablegunmastervrijdag 25 mei 2012 @ 18:55
Ik vraag me af , ik zit nu heel erg in OO Php te verdiepen en nu is mij de vraag hoe ik het volgende idee moet uitvoeren, ik zit nu met een idee om al mijn Producten in klasses te maken zodat het makkelijker is om het uit te voeren / aan te passen.

Kan een Object zichzelf vernietigen? , tweede vraag als ik een klasse heb genaamd $db en die wil ik overal gebruiken is Global $db; voldoende? of kan ik in de $db klasse iets doen zodat ik het niet perse in elke functie opnieuw hoef te definiëren.

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
<?php
Class Product {

Global 
$db;

   function 
__construct() {
      
setProductInfo($_GET['id']);
   }

/**
 * Idee hiervan is dat hij de product info opslaat ,
 * het ID en als er geen ID is van het product dat hij zichzelf vernietigd.
 */
function setProductInfo($id){
  
$this->product_info $db->fetchAssoc($db->query("Select * from products_ where id = ' ".$id." ' "));
 if(!empty(
$this->product_info['id'])){
  return 
true;
}else{
 
destroy();
}

function 
destroy(){
 unset(
$this);
 return 
true;
}

}
?>

Ik zat ook al met namespaces te kijken alleen dat is alleen als je php 5.3.0 en daarboven hebt.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
<?php
namespace DatabaseEntitiesKeuken
;
class 
Product
{
    
//inhoud
    
function getName()
    {
        return 
"Test1";
    }
};

namespace DatabaseEntitiesStofruimte;
class 
Product
{
     
// inhoud
     
function getName()
     {
        return 
"Test2";
     }
};


use 
DatabaseEntitiesKeukenProduct;
$product = new Product();
echo 
$product->getName();
use 
DatabaseEntitiesStofruimteProduct;
$product_stof = new Product();
echo 
$product_stof->getName();
?>
Idee is dat hij dan maar een paar classes inlaad ipv het hele bestand. en dubbelop namen kan laden.
Resultaat hoort "Test1Test2" uit te komen ongv. :P

[ Bericht 17% gewijzigd door cablegunmaster op 25-05-2012 19:39:18 ]
Schepseltjevrijdag 25 mei 2012 @ 20:10
quote:
0s.gif Op vrijdag 25 mei 2012 17:04 schreef Pizzalucht het volgende:

[..]

Dat ligt meer aan ervaring. Met Drupal kan je eigenlijk alles aanpassen, als je weet hoe.
De documentatie van Drupal is over het algemeen ook erg goed.

Maar als je niet verder komt dan een module installeren, aanzetten en er dan achterkomen dat het niet precies is wat je zoekt, en dan stopt met proberen, dan is Drupal inderdaad niks voor je.

Ik werk ook bij een bedrijf waar we bijna alleen maar Drupal doen, en het is veel meer dan alleen "een kleine hack/aanpassing".
Ja ik heb ook meerdere drupal sites gemaakt, en inderdaad je kunt het zo aanpassen als je wilt, net als elk opensource pakket, maar het is absoluut niet ideaal. De code is niet OOP en erg rommelig en inefficient (maar daarmee wel weer flexibel).
Ik moest laatst een drupal site uitbreiden en in m'n template folder zat een waslijst aan view templates die allemaal weer losse stukjes content bevatten die werd aangesuurd door views. Oftewel een deel van je logica zit in de database (modules), een deel van je logica zit in templates (functies, config), een deel van je content zit in de database (nodes) en een deel van je content zit in templates (statische tekst). Verder zit er soms ook nog php code in je database om net iets verder te kunnen gaan dan er wordt aangeboden. Dan heb je nog de logica die nodig is om blocks/content op de juiste plaats te krijgen, dit is in het begin met taxonomy/context te doen, maar ook dit wordt een chaos als er meer pagina's, views, permissies, etc bijkomen...

Ik zie het zo; een framework als Zend of Yii is als een verzameling bouwmaterialen (bakstenen, balken, gereedschap, etc) waarmee je zelf alles kan maken wat je wilt. Drupal is als een complete caravan waar je zo een prefab bed- of keukenblokje kan bijprikken. Maar wil je een extra verdieping of serre, dan heb je een probleem (het 'kan' wel, maar het is erg lelijk).

[ Bericht 0% gewijzigd door Schepseltje op 25-05-2012 20:19:15 ]
Schepseltjevrijdag 25 mei 2012 @ 20:26
quote:
0s.gif Op vrijdag 25 mei 2012 18:55 schreef cablegunmaster het volgende:
Ik vraag me af , ik zit nu heel erg in OO Php te verdiepen en nu is mij de vraag hoe ik het volgende idee moet uitvoeren, ik zit nu met een idee om al mijn Producten in klasses te maken zodat het makkelijker is om het uit te voeren / aan te passen.

Kan een Object zichzelf vernietigen? ,
Nee, waarom zou je dat willen?
quote:
tweede vraag als ik een klasse heb genaamd $db en die wil ik overal gebruiken is Global $db; voldoende? of kan ik in de $db klasse iets doen zodat ik het niet perse in elke functie opnieuw hoef te definiëren.
Dat zou kunnen maar het is niet hoe het hoort, een class moet zo zelfstandig mogelijk zijn. Je kunt OF de databasegegevens in de class zelf definieren (als je het alleen daar nodig hebt) OF je kunt de gegevens opgeven bij het oproepen van de class.
Ik denk dat je het beste met een framework kan beginnen, dan wordt je gedwongen om op de juiste manier te werken en snap je het OOP concept veel sneller.
cablegunmastervrijdag 25 mei 2012 @ 21:16
quote:
0s.gif Op vrijdag 25 mei 2012 20:26 schreef Schepseltje het volgende:

Nee, waarom zou je dat willen?

Dat zou kunnen maar het is niet hoe het hoort, een class moet zo zelfstandig mogelijk zijn. Je kunt OF de databasegegevens in de class zelf definieren (als je het alleen daar nodig hebt) OF je kunt de gegevens opgeven bij het oproepen van de class.
Ik denk dat je het beste met een framework kan beginnen, dan wordt je gedwongen om op de juiste manier te werken en snap je het OOP concept veel sneller.
Nieuwschierigheid :). Ik probeer nu iets op te zetten in een soort van MVC model.
Ik weet hoe het MVC model werkt, maar toch blijf ik verkennen wat kan en niet kan :)
Volgens mij konden Exceptions namelijk ook al niet in PhP :P

[ Bericht 5% gewijzigd door cablegunmaster op 25-05-2012 21:34:27 ]
Sitethiefvrijdag 25 mei 2012 @ 21:29
http://projecteuler.net/

Ben inmiddels al met probleem 3 bezig. best wel interessant om eens wat wiskunde met php te doen :).
boem-dikkievrijdag 25 mei 2012 @ 21:58
Tof Sitethief, ook even kijken.

Kan het trouwens aan een PHP server liggen hoe strtotime reageert? Als ik een strtotime functie gebruik als ik lokaal werk doet hij precies wat ik wil, namelijk gewoon de datum 25-05-2012 naar een unix timestamp converteren, als ik datzelfde doe op mijn webserver maakt hij er opeens 02-11-2030 van. :')
cablegunmastervrijdag 25 mei 2012 @ 22:02
quote:
13s.gif Op vrijdag 25 mei 2012 21:58 schreef boem-dikkie het volgende:
Tof Sitethief, ook even kijken.

Kan het trouwens aan een PHP server liggen hoe strtotime reageert? Als ik een strtotime functie gebruik als ik lokaal werk doet hij precies wat ik wil, namelijk gewoon de datum 25-05-2012 naar een unix timestamp converteren, als ik datzelfde doe op mijn webserver maakt hij er opeens 02-11-2030 van. :')
Hoe echo je het? Want je kan de tijd instellen die op het huidige moment staat ingesteld.
Probeer eens op beide server een simpele echo date uit te voeren en kijk of dat misgaat. of klopt.
Vervolgens weet je hierdoor op welke tijd Je server staat. Of dit aan te passen is mogelijk. Maar ik weet niet zo snel waar.

Kijk anders even hiernaar: [SOLVED] Php date function wrong time
boem-dikkievrijdag 25 mei 2012 @ 22:09
quote:
0s.gif Op vrijdag 25 mei 2012 22:02 schreef cablegunmaster het volgende:

[..]

Hoe echo je het? Want je kan de tijd instellen die op het huidige moment staat ingesteld.
Probeer eens op beide server een simpele echo date uit te voeren en kijk of dat misgaat. of klopt.
Vervolgens weet je hierdoor op welke tijd Je server staat. Of dit aan te passen is mogelijk. Maar ik weet niet zo snel waar.

Kijk anders even hiernaar: [SOLVED] Php date function wrong time
Ik gooi de userinput met de strtotime functie in de database.

Dus de user zegt in een input veld: 25-05-2012 en met $datum = strtotime($datum); converteer ik het. Daarna het database riedeltje.

Servertijd staat gewoon goed volgens mij, als ik time() echo geeft hij gewoon de datum van vandaag weer.
cablegunmastervrijdag 25 mei 2012 @ 22:36
Dan weet ik het even niet :P
Schepseltjevrijdag 25 mei 2012 @ 23:28
http://php.net/manual/en/function.setlocale.php

let erop dat je hem anders instelt op windows als bij linux
cablegunmasterzaterdag 26 mei 2012 @ 09:10
Al heb ik nog wel een beetje moeite om in OO-php te gaan denken. Komt wel goed ^O^
boem-dikkiezaterdag 26 mei 2012 @ 10:23
Wat?
boem-dikkiezaterdag 26 mei 2012 @ 10:24
Je checkt $id nu helemaal niet he?
cablegunmasterzaterdag 26 mei 2012 @ 10:29
quote:
14s.gif Op zaterdag 26 mei 2012 10:24 schreef boem-dikkie het volgende:
Je checkt $id nu helemaal niet he?
Weet ik , tis een example :P

Ik zat hiernaar te kijken maar vond het nog een klein beetje onhandig.
http://www.websitemaken.be/index.php?page=show_item&id=316
En richting : http://www.phptutorial.be/global-variables.html om te kijken hoe ik het beste global variabelen kon gebruiken , lees heel veel over dat het onveilig is.

[ Bericht 11% gewijzigd door cablegunmaster op 26-05-2012 10:35:32 ]
boem-dikkiezaterdag 26 mei 2012 @ 10:56
Ben je al zo ver dat je MVC begrijpt? Anders raad ik de tutorial van Zend Framework aan, ook al ga je daar niks mee doen het is wel een goede manier om te begrijpen hoe een MVC model en OOP werkt in een 'echte' applicatie in plaats van een auto die rood is en kan rijden. :')
cablegunmasterzaterdag 26 mei 2012 @ 11:09
quote:
14s.gif Op zaterdag 26 mei 2012 10:56 schreef boem-dikkie het volgende:
Ben je al zo ver dat je MVC begrijpt? Anders raad ik de tutorial van Zend Framework aan, ook al ga je daar niks mee doen het is wel een goede manier om te begrijpen hoe een MVC model en OOP werkt in een 'echte' applicatie in plaats van een auto die rood is en kan rijden. :')
Ik snap OO programeren In Java beter dan in Php :P daar heb ik al een MVC model gebouwd. Hierbij zit ik nog te kijken of ik in Phpstorm* een eigen MVC kan opzetten. Zit niet zo denigrerend te doen :D :P

Vragen die ik had waren:

1. Ik heb een DB klasse moet ik daarvoor bij elke classe , functie perse Global $db neerzetten? of is GLOBALS['db'] Daarvoor een betere oplossing? (Ik lees overal dat Globals "onveilig" of onhandig waren) Vanuit de gebruikers opinie. Weet nu niet of hier een waarheid in zit?
2. Als ik eenmaal bezig ben zat ik mijn structuur uit te denken, om een goede basis te creëren. met $_POST en afhandeling van $_GET. (filestructuur).
3. Hoe verwerk ik Smarty :P . (vermoedelijk met behulp van de View)

Daar zat ik eerder naar te kijken. :P

[ Bericht 8% gewijzigd door cablegunmaster op 26-05-2012 11:19:24 ]
boem-dikkiezaterdag 26 mei 2012 @ 11:20
quote:
12s.gif Op zaterdag 26 mei 2012 11:09 schreef cablegunmaster het volgende:

[..]

Ik snap OO programeren In Java beter dan in Php :P daar heb ik al een MVC model gebouwd. Hierbij zit ik nog te kijken of ik in Phpstorm* een eigen MVC kan opzetten. Zit niet zo denigrerend te doen :D :P

Probeer alleen maar te helpen hoor.
cablegunmasterzaterdag 26 mei 2012 @ 11:22
quote:
7s.gif Op zaterdag 26 mei 2012 11:20 schreef boem-dikkie het volgende:

[..]

Probeer alleen maar te helpen hoor.
Ik dank je voor je hulp, als je vragen hebt stel ze.
Devvzaterdag 26 mei 2012 @ 11:42
quote:
12s.gif Op zaterdag 26 mei 2012 11:09 schreef cablegunmaster het volgende:

[..]

...of onhandig waren) Vanuit de gebruikers opinie. Weet nu niet of hier een waarheid in zit?

Daar zat ik eerder naar te kijken. :P
Ik zit niet zo in de PHP, maar vanuit een algemeen genomen perspectief kan ik zeggen dat er niets mis is met globale variabelen. Mits je het singleton principe in stand houdt. Dus alleen globaal declareren als je zeker weet dat er altijd maar één instantie zal zijn.
cablegunmasterzaterdag 26 mei 2012 @ 11:43
quote:
14s.gif Op zaterdag 26 mei 2012 11:42 schreef Devv het volgende:

[..]

Ik zit niet zo in de PHP, maar vanuit een algemeen genomen perspectief kan ik zeggen dat er niets mis is met globale variabelen. Mits je het singleton principe in stand houdt. Dus alleen globaal declareren als je zeker weet dat er altijd maar één instantie zal zijn.
Duidelijk dat is ook het geval! ^O^
Lightzaterdag 26 mei 2012 @ 11:55
quote:
12s.gif Op zaterdag 26 mei 2012 11:09 schreef cablegunmaster het volgende:

[..]

Ik snap OO programeren In Java beter dan in Php :P daar heb ik al een MVC model gebouwd. Hierbij zit ik nog te kijken of ik in Phpstorm* een eigen MVC kan opzetten. Zit niet zo denigrerend te doen :D :P
Wat is er anders aan MVC in Java dan in PHP?
quote:
Vragen die ik had waren:

1. Ik heb een DB klasse moet ik daarvoor bij elke classe , functie perse Global $db neerzetten? of is GLOBALS['db'] Daarvoor een betere oplossing? (Ik lees overal dat Globals "onveilig" of onhandig waren) Vanuit de gebruikers opinie. Weet nu niet of hier een waarheid in zit?
Het heeft als nadeel dat iedere method waar je "global $db;" gebruikt, potentieel je database instance kan veranderen door iets anders. Dan krijg je fouten die heel lastig te vinden zijn. Als je in je model een setter hebt voor de database, kun je daar valideren dat je echt een database object krijgt. En daarna heb je een reference naar het object, daar kan de rest van de wereld niet bij.
quote:
2. Als ik eenmaal bezig ben zat ik mijn structuur uit te denken, om een goede basis te creëren. met $_POST en afhandeling van $_GET. (filestructuur).
3. Hoe verwerk ik Smarty :P . (vermoedelijk met behulp van de View)
Smarty (of een ander templating systeem) hoort in de view.
Lightzaterdag 26 mei 2012 @ 11:55
Ook interessant:
cablegunmasterzaterdag 26 mei 2012 @ 12:08
quote:
0s.gif Op zaterdag 26 mei 2012 11:55 schreef Light het volgende:

Wat is er anders aan MVC in Java dan in PHP?

[..]

Het heeft als nadeel dat iedere method waar je "global $db;" gebruikt, potentieel je database instance kan veranderen door iets anders. Dan krijg je fouten die heel lastig te vinden zijn. Als je in je model een setter hebt voor de database, kun je daar valideren dat je echt een database object krijgt. En daarna heb je een reference naar het object, daar kan de rest van de wereld niet bij.

[..]

Smarty (of een ander templating systeem) hoort in de view.
1. geen idee , gewoon nog niet mee gewerkt.
2. Dus eigenlijk in de controller Pseudo: Setdb($db) functie. if(get_class($db) == "db"); true false.
en dan het toepassen. met Getdb(); in elke klasse :)?
Ofyles2zaterdag 26 mei 2012 @ 12:12
quote:
14s.gif Op zaterdag 26 mei 2012 10:56 schreef boem-dikkie het volgende:
Ben je al zo ver dat je MVC begrijpt?
Ik heb mezelf schromelijk overschat.

Ik begrijp MVC niet goed genoeg, ik moet met een geheel nieuw plan komen.
Lightzaterdag 26 mei 2012 @ 12:19
quote:
0s.gif Op zaterdag 26 mei 2012 12:08 schreef cablegunmaster het volgende:

[..]

1. geen idee , gewoon nog niet mee gewerkt.
De structuren zijn gewoon hetzelfde :)
quote:
2. Dus eigenlijk in de controller Pseudo: Setdb($db) functie. if(get_class($db) == "db"); true false.
en dan het toepassen. met Getdb(); in elke klasse :)?
1
2
3
4
5
6
7
8
9
<?php
private $db;
public function 
setDb(MyDatabaseClass $db) {
    
$this->db $db;
}
public function 
getDb() {
    return 
$this->db;
}
?>
Devvzaterdag 26 mei 2012 @ 12:20
quote:
0s.gif Op zaterdag 26 mei 2012 11:55 schreef Light het volgende:

[..]

Het heeft als nadeel dat iedere method waar je "global $db;" gebruikt, potentieel je database instance kan veranderen door iets anders.
Dat vind ik dus het grote nadeel van PHP, loose typing.
Lightzaterdag 26 mei 2012 @ 12:24
quote:
0s.gif Op zaterdag 26 mei 2012 12:20 schreef Devv het volgende:

[..]

Dat vind ik dus het grote nadeel van PHP, loose typing.
Da's een nadeel, ben ik met je eens. Maar 't is een eigenschap van de taal waar je dus gewoon mee moet werken (of je zoekt een andere taal op om mee te werken).
cablegunmasterzaterdag 26 mei 2012 @ 12:29
quote:
0s.gif Op zaterdag 26 mei 2012 12:24 schreef Light het volgende:

[..]

Da's een nadeel, ben ik met je eens. Maar 't is een eigenschap van de taal waar je dus gewoon mee moet werken (of je zoekt een andere taal op om mee te werken).
Java is daar weer makkelijker in , php is daar loosse in. :P , misschien ook de reden dat ik soms
1
2
3
4
5
<?php
$array 
= Array();
$string = (string) $waarde;
$integer = (int) $integer;
?>
Tegen kom. om toch aan te geven wat bepaalde variabelen zijn.
Light veel van wat die spreker vertelt is eigenlijk best logisch. :P

[ Bericht 15% gewijzigd door cablegunmaster op 26-05-2012 12:45:57 ]
Quirzaterdag 26 mei 2012 @ 14:11
Iemand eerder meegemaakt dat fopen aangeroepen in een class destructor vervelend doet?
cablegunmasterzaterdag 26 mei 2012 @ 14:40
quote:
9s.gif Op zaterdag 26 mei 2012 14:11 schreef Quir het volgende:
Iemand eerder meegemaakt dat fopen aangeroepen in een class destructor vervelend doet?
Leg eens uit wat was je idee?
Devvzaterdag 26 mei 2012 @ 14:47
Misschien heb je hier iets aan: Bug #29167 fopen works differently in a constructor vs. a destructor.
Quirzaterdag 26 mei 2012 @ 14:59
quote:
Ik vroeg het inderdaad zonder toelichting omdat ik dacht dat het een bug zou zijn. Had die pagina ook al gevonden, maar die is uit 2004/2007, dus ik hoopte dat het inmiddels wel gefixt zou zijn. Nog steeds gissen of dat de dwarsligger is of niet.

quote:
0s.gif Op zaterdag 26 mei 2012 14:40 schreef cablegunmaster het volgende:

[..]

Leg eens uit wat was je idee?
Ik heb een cache functie die een kopie uit de cache doorsluist wanneer er een (niet-verlopen) beschikbaar is, zoniet, roept-ie ob_start() aan en set hij een variabele op True.
In de destructor heb ik dan

1
2
3
4
5
6
<?php
if ($this->cacheUsage) {
    
$this->writeToFile($this->cachePath $this->cacheName '.html''w'ob_get_contents());
    
ob_end_flush();
}
?>

die de volgende functie gebruikt

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<?php
public function writeToFile($path$mode$data) {
    
$success 'Error';
            
    if (
$file fopen($path$mode)) {
        if (
fwrite($file$data)) {
            
fclose($file);
            
$success 'Success!';
            goto 
End;
        }
                
        
fclose($file);
        
$success 'Failed to write';
        goto 
End;
    }
            
    
$success 'Failed to open file';
            
    
End:
    return 
$success;
}
?>

Wanneer ik het zo draai geeft hij de volgende melding

1Warning: fopen(Cache/pagina.html) [function.fopen]: failed to open stream: No such file or directory

Maar wanneer ik cachePath en cacheName public maak en de aanroep copy paste naar onder m'n template doet 'ie het zonder te morren.
cablegunmasterzaterdag 26 mei 2012 @ 15:02
Ik wil het ook eens testen om te kijken of ik een test case kan maken met een simpele constructor en destructor :)
Quirzaterdag 26 mei 2012 @ 15:07
Ik moet nu weg, maar zal er straks een in elkaar knutselen.
cablegunmasterzaterdag 26 mei 2012 @ 15:11
Ik lees als je unset($Object); gebruikt de destructor wordt aangeroepen.
andere optie: register_shutdown_function("Object");
Nog een idee fopen in de constructor aanroepen en vervolgens fclose(); gebruiken in de destructor.
of werkt fwrite niet in de destructor?

Bron:
http://stackoverflow.com/(...)er-shutdown-function

[ Bericht 9% gewijzigd door cablegunmaster op 26-05-2012 15:26:44 ]
#ANONIEMzaterdag 26 mei 2012 @ 16:13
quote:
0s.gif Op zaterdag 26 mei 2012 15:11 schreef cablegunmaster het volgende:
Ik lees als je unset($Object); gebruikt de destructor wordt aangeroepen.
andere optie: register_shutdown_function("Object");
Nog een idee fopen in de constructor aanroepen en vervolgens fclose(); gebruiken in de destructor.
of werkt fwrite niet in de destructor?

Bron:
http://stackoverflow.com/(...)er-shutdown-function
Waarom zou je dit willen? Had even wat posts doorgelezen, maar snap niet je opzet.

Als er bijv al een db class is aangeroepen kun je gewoon een nieuwe aanroepen. In php5 is het zo dat je dan al hem via referentie aanroept. Dus hetzelfde object. In een destructor __sleep() in dit geval, zet je bijv je afsluit acties neer. Globals zijn ook nergens voor nodig :) Je kan altijd nog een controller class maken waar je alles in beschikbaar maakt.

Voorbeeldje (oude code):
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
<?php

class Game {
    
    
// Holds player name
    
public $players = array();
    
    
// Game id database
    
public $game_id;
    
    
// Minimum start bid
    
public $minimum_bid 3;
    
    private 
$pdo;   
    
    private 
$rules;
    
    
// Holds turns
    
public $turns = array();
    
    public 
$bids = array();
    
    
// Sets game Id
    
public function __construct(Array $playersRules $rules) {
        
$this->players $players;  
        
$this->pdo = new Database();
        
$this->rules $rules;
    }                                
    
    
// Removes a player when he loses connection or leaves the game
    
public function removePlayer($player = array()) {
        if(
array_key_exists($player['name'], $this->players)) {
            unset(
$this->players[$player['name']]);
        }
    }
    
    public function 
nextTurn() {
        
$stop false;
        foreach(
$this->players as $player) {
            if(
$player == $this->player_turn)
                
$stop true;
            
            if(
$stop) {
                
$this->playerTurn $player;
                break;
            }
        }
    }
    
    public function 
setBid($name$bid) {
        
$this->bids[$name] = $bid;
    }
        
    public function 
__sleep() {
        
$this->pdo null;
        return array(
'players','game_id''bids''minimum_bid''turns''rules');
    }
}

?>


[ Bericht 77% gewijzigd door #ANONIEM op 26-05-2012 16:29:58 ]
Scorpiezaterdag 26 mei 2012 @ 16:24
MVC is taal onafhankelijk :')
cablegunmasterzaterdag 26 mei 2012 @ 16:51
quote:
0s.gif Op zaterdag 26 mei 2012 16:24 schreef Scorpie het volgende:
MVC is taal onafhankelijk :')
Ik ben bezig met een uitgebreide site om te bouwen daarom mijn terughoudenheid om alles goed te maken :). (beetje onderzoek wat wel en niet kan ) :P

[ Bericht 8% gewijzigd door cablegunmaster op 26-05-2012 18:07:46 ]
Lightzaterdag 26 mei 2012 @ 17:35
quote:
0s.gif Op zaterdag 26 mei 2012 15:11 schreef cablegunmaster het volgende:
Ik lees als je unset($Object); gebruikt de destructor wordt aangeroepen.
unset() zorgt er niet direct voor dat de destructor wordt aangeroepen. Dat gebeurt alleen als de garbage collector het object opruimt. En dat gebeurt alleen als geen referenties meer zijn naar het object, maar dan hoeft het nog niet meteen te gebeuren.
Quirmaandag 28 mei 2012 @ 23:21
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
<?php
    
class Cache {
        public 
$cacheUsage;

        function 
__construct() {
            
$this->cacheUsage False;
        }

        public function 
callCache($expiration) {
            if (
file_exists('Page.html') && (time()-filemtime('Page.html')) < $expiration) {
                include 
'Page.html';
                
$this->cacheUsage False;
                exit();
            } else {
                
ob_start();
                
$this->cacheUsage True;
            }
        }

        protected function 
writeToFile($path$mode$data) {
            
$file fopen($path$mode);
            
fwrite($file$data);
            
fclose($file);
        }

        function 
__destruct() {
            if (
$this->cacheUsage) {
                
$this->writeToFile('Page.html''w'ob_get_contents());
                
ob_end_flush();
            }
        }
    }

    
$CacheClass = new Cache();
    
$CacheClass->CallCache(30);

    echo 
'Hallo!';
?>

Even een vluchtige herproductie. Was het helaas alweer vergeten, heb namelijk de destructor er uit gekieperd omdat ik op sommige plekken in m'n script exit() aanroep waar ik niet wil dat de destructor meegepakt wordt.

En, een snelle test met bovenstand wijst uit dat met unset(object) de destructor wel degelijk aangeroepen wordt.
cablegunmasterdinsdag 29 mei 2012 @ 14:27
Ik heb nog een vraag:
Als ik een Controller klasse maak.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<?php
class websiteController
{
    private 
$model;
    private 
$view;

    public function 
__construct($model,$view)
    {
        
$this->model $model;
        
$this->view $view;
    }
    public function 
listenerA($test){
        
$this->model->doeIets($test);
    }
}
?>

Hoe zorg ik ervoor dat hij luistert naar iets? Of moet ik in elke PHP de betreffende functies van de controller neerzetten?

1
2
3
4
<?php
//bevat $controller = websitecontroller object
$controller->listenerA($_GET['test']);
?>


[ Bericht 0% gewijzigd door cablegunmaster op 29-05-2012 14:45:35 ]
Scorpiedinsdag 29 mei 2012 @ 14:30
Definieer 'luisteren'.
cablegunmasterdinsdag 29 mei 2012 @ 14:44
quote:
0s.gif Op dinsdag 29 mei 2012 14:30 schreef Scorpie het volgende:
Definieer 'luisteren'.
Ik zit nu na te denken hoe ik de $_POST , $_GET afhandeling moet uitvoeren.
Zal ik dan bij de controller klasse een lijst moeten maken van if $_POST en if $_GET?
Die vervolgens het Object Controller aanroept?
Scorpiedinsdag 29 mei 2012 @ 14:48
Je wil dus $_GET en $_POST acties koppelen aan je controller? Kijk eens naar een RequestDispatcher routine.
cablegunmasterdinsdag 29 mei 2012 @ 14:53
quote:
0s.gif Op dinsdag 29 mei 2012 14:48 schreef Scorpie het volgende:
Je wil dus $_GET en $_POST acties koppelen aan je controller? Kijk eens naar een RequestDispatcher routine.
Ik krijg nu heel veel ingewikkelde code in google als ik dit zoek.
Wat ik eigenlijk wil is dat hij $_GET koppelt aan de controller.
of een $_POST verzoek.

quote:
Request Dispatcher is used to forward a request to another page.
bron: http://www.hscripts.com/tutorials/jsp/examples/example2.php
het hoeft niet naar een andere pagina toe.


quote:
Dit vind ik als ik op de request dispatcher zoek, beetje ingewikkeld. :P
Ondanks de hoeveelheid documentatie snap ik niet wat ze met de klasse willen doen.

Dit wil ik ongeveer bereiken dat de lijst met if($_POST) een stuk kleiner wordt. en afgehandeld wordt door de controller.
1
2
3
4
5
6
7
8
<?php
//kort zonder sanitize, voorbeeld.  x20
if(isset($_POST['waarde']))
{
      
$waarde $_POST['waarde'];
      
$controller->listenA($waarde);
}
?>
Of er een andere manier is om te controleren of een $_POST waarde of $_GET waarde is gezet en deze met de controller te kunnen afhandelen. :)

[ Bericht 15% gewijzigd door cablegunmaster op 29-05-2012 15:06:03 ]
Scorpiedinsdag 29 mei 2012 @ 15:08
Een Request Dispatcher forward niet per se naar een pagina. Kan ook naar een Controller Actie.
cablegunmasterdinsdag 29 mei 2012 @ 15:33
quote:
Ik ga dit eens proberen uit te vogelen :).

Mijn eerste voorbeeld is gelukt met een simpele titel functie O+ .
Nu de rest nog :D . Maar ik heb hoop en denk dat het goed komt :s)

Pur class klinkt leuk maar hij gaat in de veronderstelling dat de Constructor niet bestaat / niet aangeroepen is. _O- Dus weer de prullenbak in / herschrijven :).

[ Bericht 27% gewijzigd door cablegunmaster op 29-05-2012 17:18:06 ]
wipes66dinsdag 29 mei 2012 @ 20:59
quote:
Globals en singelton heb ik altijd al erg onelegant gevonden. :P
Schepseltjedinsdag 29 mei 2012 @ 22:10
Waarom een controller class schrijven als er zoveel frameworks zijn die al een werkende, elegante en geteste implementatie hebben?
cablegunmasterdinsdag 29 mei 2012 @ 23:09
quote:
0s.gif Op dinsdag 29 mei 2012 22:10 schreef Schepseltje het volgende:
Waarom een controller class schrijven als er zoveel frameworks zijn die al een werkende, elegante en geteste implementatie hebben?
Zelf iets te maken :) ?
Scorpiedinsdag 29 mei 2012 @ 23:12
Soms moet je dat niet willen.
cablegunmasterdinsdag 29 mei 2012 @ 23:15
quote:
0s.gif Op dinsdag 29 mei 2012 23:12 schreef Scorpie het volgende:
Soms moet je dat niet willen.
Waarom niet? Dit werkt best goed :).
Schepseltjedinsdag 29 mei 2012 @ 23:45
tsja je kunt een kant-en-klare ferrari gebruiken of zelf in je schuur iets in elkaar timmeren :P
cablegunmasterwoensdag 30 mei 2012 @ 00:06
quote:
0s.gif Op dinsdag 29 mei 2012 23:45 schreef Schepseltje het volgende:
tsja je kunt een kant-en-klare ferrari gebruiken of zelf in je schuur iets in elkaar timmeren :P
Ja dat klopt :), maar soms heb je zelf meer inzicht hoe je de ferrari kan fine tunen op je eigen behoefte's waardoor je meer weet hoe een ferrari in elkaar steekt dan dat je alleen maar de ferrari gebruikt. :P
Scorpiewoensdag 30 mei 2012 @ 00:15
quote:
0s.gif Op woensdag 30 mei 2012 00:06 schreef cablegunmaster het volgende:

[..]

Ja dat klopt :), maar soms heb je zelf meer inzicht hoe je de ferrari kan fine tunen op je eigen behoefte's waardoor je meer weet hoe een ferrari in elkaar steekt dan dat je alleen maar de ferrari gebruikt. :P
Das natuurlijk gelul. Iemand die een framework gebruikt kan net zo goed op de hoogte zijn van het framework en de daarbij behorende principes. Sterker nog, ik durf te wedden dat diegene vele malen beter weet waar hij mee bezig is dan iemand die zijn eigen framework in elkaar moet stampen en daarbij al valt over een simpel Dispatcher principe.
Devvwoensdag 30 mei 2012 @ 09:37
quote:
0s.gif Op dinsdag 29 mei 2012 20:59 schreef wipes66 het volgende:

[..]

Globals en singelton heb ik altijd al erg onelegant gevonden. :P
Ik vind het gebruik van singletons juist ideaal om de complexiteit van een programma terug te brengen.
stefanhaanwoensdag 30 mei 2012 @ 09:42
En waarom zou je sowieso het wiel opnieuw uitwillen vinden?

Er bestaan al veel goede frameworks. Als je omte leren er nou zelf een wil maken. Moet je wel verstand hebben van alle onderdelen. Heb je dat niet kan je je beter verdiepen in een bestaand framework
Schepseltjewoensdag 30 mei 2012 @ 15:20
ik ben veel te lang doorgegaan met zelf aankloten voordat ik overstapte op een framework.. en nu baal ik van de jaren die ik heb verkloot met zelf alles in elkaar te prutsen, terwijl ik zoveel beter was geweest als ik gelijk een degelijk framework had gekozen en daarop verder was gaan leren

[ Bericht 0% gewijzigd door Schepseltje op 30-05-2012 17:59:02 ]
Diaboxwoensdag 30 mei 2012 @ 16:47
quote:
0s.gif Op dinsdag 29 mei 2012 23:45 schreef Schepseltje het volgende:
tsja je kunt een kant-en-klare ferrari gebruiken of zelf in je schuur iets in elkaar timmeren :P
En wat je in je schuur timmert wordt uiteindelijk 'n lada oid. :P
Devvwoensdag 30 mei 2012 @ 18:27
Een eigen API in elkaar knutselen is leuk voor op de zondagmiddag. Maar in het bedrijfsleven gebruik je toch vaak kant-en-klare oplossingen, omdat het niet je core-business is om de fundering te leggen.
Schepseltjewoensdag 30 mei 2012 @ 19:21
quote:
0s.gif Op woensdag 30 mei 2012 18:27 schreef Devv het volgende:
Een eigen API in elkaar knutselen is leuk voor op de zondagmiddag. Maar in het bedrijfsleven gebruik je toch vaak kant-en-klare oplossingen, omdat het niet je core-business is om de fundering te leggen.
En omdat je moet kunnen samenwerken.. Dan wil je kunnen zeggen: "dit is gemaakt met frameworkX op deze URL kun je de documentatie vinden." en niet "dit heb ik vorig jaar in elkaar gezet, het werkt ongeveer zo en zo, moet je maar even uitproberen"
Quirwoensdag 30 mei 2012 @ 20:21
Of dat, of je zorgt dat je weet waar je aan begint, en vooral waar je mee bezig bent.
Ik vind het zelf veel prettiger om zelfs iets geschreven te hebben, voelt gewoon prettiger aan. Binnen voor iemand roept dat dat bullshit is.

quote:
0s.gif Op woensdag 30 mei 2012 00:15 schreef Scorpie het volgende:

[..]

Das natuurlijk gelul. Iemand die een framework gebruikt kan net zo goed op de hoogte zijn van het framework en de daarbij behorende principes. Sterker nog, ik durf te wedden dat diegene vele malen beter weet waar hij mee bezig is dan iemand die zijn eigen framework in elkaar moet stampen en daarbij al valt over een simpel Dispatcher principe.
Zo, jij bent vriendelijk tegen een beginner.
Diaboxwoensdag 30 mei 2012 @ 20:43
quote:
0s.gif Op woensdag 30 mei 2012 19:21 schreef Schepseltje het volgende:

[..]

En omdat je moet kunnen samenwerken.. Dan wil je kunnen zeggen: "dit is gemaakt met frameworkX op deze URL kun je de documentatie vinden." en niet "dit heb ik vorig jaar in elkaar gezet, het werkt ongeveer zo en zo, moet je maar even uitproberen"
Dat is een van de voornaamste redenen ook ja, zeker als je commercieel bezig bent.
GlowMousewoensdag 30 mei 2012 @ 20:46
Daar staat tegenover dat er voor een framework updates uitkomen, waardoor je code mogelijk niet meer werkt. Als je tegen een bug in het framework aanloopt, is het lastig om alleen een fix voor die bug door te voeren.
Diaboxwoensdag 30 mei 2012 @ 20:49
quote:
7s.gif Op woensdag 30 mei 2012 20:46 schreef GlowMouse het volgende:
Daar staat tegenover dat er voor een framework updates uitkomen, waardoor je code mogelijk niet meer werkt. Als je tegen een bug in het framework aanloopt, is het lastig om alleen een fix voor die bug door te voeren.
Staat je vrij om niet te updaten :P
Scorpiewoensdag 30 mei 2012 @ 20:51
quote:
14s.gif Op woensdag 30 mei 2012 20:21 schreef Quir het volgende:
Of dat, of je zorgt dat je weet waar je aan begint, en vooral waar je mee bezig bent.
Ik vind het zelf veel prettiger om zelfs iets geschreven te hebben, voelt gewoon prettiger aan. Binnen voor iemand roept dat dat bullshit is.

[..]

Zo, jij bent vriendelijk tegen een beginner.
Een beginner die claimt alles te weten ja. Niks mis met wat tough love. En zo onaardig was het niet bedoeld.
Scorpiewoensdag 30 mei 2012 @ 20:53
quote:
7s.gif Op woensdag 30 mei 2012 20:46 schreef GlowMouse het volgende:
Daar staat tegenover dat er voor een framework updates uitkomen, waardoor je code mogelijk niet meer werkt. Als je tegen een bug in het framework aanloopt, is het lastig om alleen een fix voor die bug door te voeren.
Depends. Werk al tien jaar met frameworks en de meeste pijn zit hem in de major releases qua upgrade en de nasty hacks die na een update niet meer werken. Als je volgens de methodologie van het framework werkt zit je meestal wel veilig.
Schepseltjewoensdag 30 mei 2012 @ 20:54
quote:
7s.gif Op woensdag 30 mei 2012 20:46 schreef GlowMouse het volgende:
Daar staat tegenover dat er voor een framework updates uitkomen, waardoor je code mogelijk niet meer werkt. Als je tegen een bug in het framework aanloopt, is het lastig om alleen een fix voor die bug door te voeren.
Mja als je een bug vindt meld je het op de betreffende bugtracker en als je geluk hebt wordt het gefixt zonder dat je iets hoeft te doen. Maar mijn ervaring is dat de grote frameworks al door zo gigantisch veel mensen zijn gebruikt en getest dat alle grote bugs er vrijwel uit zijn. Als je zelf iets in elkaar hangt is het een ander verhaal..
KomtTijd...woensdag 30 mei 2012 @ 20:55
quote:
7s.gif Op woensdag 30 mei 2012 20:46 schreef GlowMouse het volgende:
Daar staat tegenover dat er voor een framework updates uitkomen, waardoor je code mogelijk niet meer werkt. Als je tegen een bug in het framework aanloopt, is het lastig om alleen een fix voor die bug door te voeren.
Een compleet eigen framework bouwen met als reden dat je bij een bestaand framework het risico loopt een bug te moeten fixen. Goeie.
Swetseneggerwoensdag 30 mei 2012 @ 21:10
Over frameworks gesproken. Wat is de favoriet onder de fokkers?
Scorpiewoensdag 30 mei 2012 @ 21:13
Cakephp bij mij.
Devvwoensdag 30 mei 2012 @ 21:19
.NET
Diaboxwoensdag 30 mei 2012 @ 21:39
quote:
0s.gif Op woensdag 30 mei 2012 21:13 schreef Scorpie het volgende:
Cakephp bij mij.
Hier ook.
urselwoensdag 30 mei 2012 @ 21:57
Zend :s)
boem-dikkiewoensdag 30 mei 2012 @ 21:58
Zend.
Schepseltjewoensdag 30 mei 2012 @ 22:41
Yii
Civiliandonderdag 31 mei 2012 @ 11:13
Zend
Intrepiditydonderdag 31 mei 2012 @ 11:53
Symfony 2.
stefanhaandonderdag 31 mei 2012 @ 11:59
CodeIgniter
Cue_vrijdag 1 juni 2012 @ 15:59
Iemand ervaring met Oracle Deadlocks? Ik moet hem zien te omzeilen.. :')
cablegunmastervrijdag 1 juni 2012 @ 16:23
quote:
9s.gif Op vrijdag 1 juni 2012 15:59 schreef Cue_ het volgende:
Iemand ervaring met Oracle Deadlocks? Ik moet hem zien te omzeilen.. :')
Locate the error messages in the alert log.
Locate the relevant trace file(s).
Identify the SQL statements in both the current session and the waiting session(s).
Use these SQL statements to identify the particular piece of code that is having problems.
Alter the appliation code to prevent deadlocks by always locking rows in the tables in the same order.

:P
Cue_vrijdag 1 juni 2012 @ 16:49
quote:
0s.gif Op vrijdag 1 juni 2012 16:23 schreef cablegunmaster het volgende:

Locate the error messages in the alert log.
Locate the relevant trace file(s).
Identify the SQL statements in both the current session and the waiting session(s).
Use these SQL statements to identify the particular piece of code that is having problems.
Alter the appliation code to prevent deadlocks by always locking rows in the tables in the same order.

:P
Lol :P

Tis zo dat er vanuit een pakket een update wordt gedaan op een tabel/rij. Zeg maar een procedure 'Save Order' (ORDER tabel) .. Ik heb een trigger die After update of STATUS (ORDER tabel) doet, tijdens die save order is er een update van de status, dus komt mijn trigger.
Mijn trigger schrijft even wat in andere tabellen en wil vervolgens ook wat in die ORDER tabel updaten. dezelfde rij als waar momenteel de save op wordt uitgevoerd (wat ook een update is). Maar dat mag dus niet, omdat die Save Order nog bezig is (gok ik zo).

Maar ik kan/mag niet de procedure Save Order aanpassen. Zodat als ie klaar is even dat veldje nog eens update bv.
GlowMousevrijdag 1 juni 2012 @ 17:04
De trigger wordt in dezelfde transactie uitgevoerd als de update die de trigger triggert, dus dat lijkt me niet het probleem te zijn.
cablegunmastervrijdag 1 juni 2012 @ 19:48
Kort vraagje,

ik heb nu Crumblepath als een Klasse en nu wilde ik het model meegeven in de __construct($model) om vervolgens daarvan uit de $db (database klasse) connecties te gebruiken. Nu zit ik qua logica in de knoop en vraag ik me af of ik beter Extends Model kan doen of dat ik elke klasse nu apart het $db mee moet geven.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<?php
class Demo{

private 
$db;
private 
$model

  
public function __construct($model){
          
$this->model $model;
          
$this->db =  $this->model->getDB();
  }
   
//alle andere functies.
}       
          
// of kan dit ook?
class Demo extends Model{

     public function 
__construct(){
          
parent::__construct();
          
parent::getDB(); // functie die in model zit.
     
}
}
?>          


[ Bericht 43% gewijzigd door cablegunmaster op 01-06-2012 20:22:44 ]
mscholzaterdag 2 juni 2012 @ 01:22
om te voorkomen dat ik wielen opnieuw uitvind: er is vast wel ergens een een degelijke, goeie BB code parser klasse/functie..
wie weet een degelijke om BB naar html om te zetten?
ik heb alleen een functie nodig (geen complete editors dus) waar ik een bericht in kan pompen en vervolgens weer een bericht uit terugkrijg (omgezet)
uitbreidbaarheid zou erg fijn zijn :P
Devvzaterdag 2 juni 2012 @ 01:36
quote:
0s.gif Op vrijdag 1 juni 2012 19:48 schreef cablegunmaster het volgende:
Kort vraagje,

ik heb nu Crumblepath als een Klasse en nu wilde ik het model meegeven in de __construct($model) om vervolgens daarvan uit de $db (database klasse) connecties te gebruiken. Nu zit ik qua logica in de knoop en vraag ik me af of ik beter Extends Model kan doen of dat ik elke klasse nu apart het $db mee moet geven.
[ code verwijderd ]

De tweede methode is in mijn optiek de enige juiste aanpak. De eerste methode zou voor mij al reden voor ontslag zijn.
cablegunmasterzaterdag 2 juni 2012 @ 03:25
quote:
1s.gif Op zaterdag 2 juni 2012 01:36 schreef Devv het volgende:
De tweede methode is in mijn optiek de enige juiste aanpak. De eerste methode zou voor mij al reden voor ontslag zijn.
Enige probleem dat ik nu heb dat pagina's aanpassen irritant gaat :P.
Maar beetje bij beetje kom ik er wel :D Net geleerd hoe static variabelen moet opschrijven in php _O- Hele tijd maar niet snappen waarom iets niet werkt, wel wetende dat ik 2 static variabelen nodig had :P

[ Bericht 7% gewijzigd door cablegunmaster op 02-06-2012 04:47:25 ]
urselzaterdag 2 juni 2012 @ 11:49
Waarom benne opleidingen zo duur. :')
Ben beetje op zoek om me wat verder te opleiden richting Software Architect, maar zover ik zie praat je dan over bedragen van ¤7000 :')
Devvzaterdag 2 juni 2012 @ 12:34
quote:
0s.gif Op zaterdag 2 juni 2012 11:49 schreef ursel het volgende:
Waarom benne opleidingen zo duur. :')
Ben beetje op zoek om me wat verder te opleiden richting Software Architect, maar zover ik zie praat je dan over bedragen van ¤7000 :')
Ik neem aan dat dit voor de hele opleiding is? En is dit master of bachelorstudie?
urselzaterdag 2 juni 2012 @ 12:42
quote:
0s.gif Op zaterdag 2 juni 2012 12:34 schreef Devv het volgende:

[..]

Ik neem aan dat dit voor de hele opleiding is? En is dit master of bachelorstudie?
Master volgens mij. Hele opleiding verder wel ja. Was meer op zoek naar iets in die richting voor budget van ¤3000. Hoeft dan niet gelijk master of bachelor te zijn. Wil me de komende periode/jaren in ieder geval die kant op doorontwikkelen :7
Scorpiezaterdag 2 juni 2012 @ 13:26
Architecten brrrrrrr.
DutchErroristzaterdag 2 juni 2012 @ 13:48
Hallo Query goden (en godinnen),

Ik moet voor mijn opleiding als onderdeel van iets data uit een Access (Maak mij niet af oké? :') IK KAN HIER NIETS AAN DOEN) database halen. Dat gaat allemaal prima, want veel stelt het niet voor, meer dan een dubbel INNER JOIN is niet nodig, maar nu heb ik een stukje sql dat de geboortedatum veranderd in de leeftijd en ik moet deze begrijpen als ik hem wil gebruiken. Nu ben ik zelf superslecht in alles begrijpen wat ingewikkelder is dan HTML en CSS dus ik heb wat moeite met deze code.

1DateDiff("yyyy",[dob],Now())+Int(Format(Now(),"mmdd")<Format([dob],"mmdd"))

Ik weet nu hoe de DateDiff functie werkt.

SPOILER
Geeft als resultaat een Variant (Long) waarin het aantal tijdsintervallen tussen twee opgegeven datums wordt weergegeven.
Maar dat stukje er binnen

1Now())+Int(Format(Now(),"mmdd")<Format([dob],"mmdd")


Wat gebeurd hier nu precies? Kan iemand mij alsjeblieft helpen?

Nogmaals duizendmaal sorry dat ik hier met een vraag kom die te maken heeft met Access! ;(
Quirzaterdag 2 juni 2012 @ 13:56
quote:
0s.gif Op zaterdag 2 juni 2012 01:22 schreef mschol het volgende:
om te voorkomen dat ik wielen opnieuw uitvind: er is vast wel ergens een een degelijke, goeie BB code parser klasse/functie..
wie weet een degelijke om BB naar html om te zetten?
ik heb alleen een functie nodig (geen complete editors dus) waar ik een bericht in kan pompen en vervolgens weer een bericht uit terugkrijg (omgezet)
uitbreidbaarheid zou erg fijn zijn :P
Die zal er vast zijn, maar 't is cake om die zelf te schrijven. Een array er in knallen met html=>bb (key=>value), door de string laten loopen voor iedere value, en value laten vervangen door key. Tadaa.
Quirzaterdag 2 juni 2012 @ 14:00
quote:
10s.gif Op zaterdag 2 juni 2012 13:48 schreef DutchErrorist het volgende:
Hallo Query goden (en godinnen),

Ik moet voor mijn opleiding als onderdeel van iets data uit een Access (Maak mij niet af oké? :') IK KAN HIER NIETS AAN DOEN) database halen. Dat gaat allemaal prima, want veel stelt het niet voor, meer dan een dubbel INNER JOIN is niet nodig, maar nu heb ik een stukje sql dat de geboortedatum veranderd in de leeftijd en ik moet deze begrijpen als ik hem wil gebruiken. Nu ben ik zelf superslecht in alles begrijpen wat ingewikkelder is dan HTML en CSS dus ik heb wat moeite met deze code.
[ code verwijderd ]

Ik weet nu hoe de DateDiff functie werkt.

SPOILER
Geeft als resultaat een Variant (Long) waarin het aantal tijdsintervallen tussen twee opgegeven datums wordt weergegeven.
Maar dat stukje er binnen
[ code verwijderd ]



Wat gebeurd hier nu precies? Kan iemand mij alsjeblieft helpen?

Nogmaals duizendmaal sorry dat ik hier met een vraag kom die te maken heeft met Access! ;(
Moet je die manier gebruiken?
DutchErroristzaterdag 2 juni 2012 @ 14:03
quote:
5s.gif Op zaterdag 2 juni 2012 14:00 schreef Quir het volgende:

[..]

Moet je die manier gebruiken?
Nee, maar welke moet ik dan gebruiken (die ik snap?). Begrijp me goed, ik snap niets meer van SQL dan SELECT, FROM, INNER JOIN en WHERE dus ik ben echt een totale leek.
Quirzaterdag 2 juni 2012 @ 14:41
Huidige datum converteren, geboortedatum converteren, aftrekken, terug gooien naar Datetime.
DutchErroristzaterdag 2 juni 2012 @ 14:42
quote:
14s.gif Op zaterdag 2 juni 2012 14:41 schreef Quir het volgende:
Huidige datum converteren, geboortedatum converteren, aftrekken, terug gooien naar Datetime.
Dude, denk je echt dat ik weet hoe ik dat moet doen als ik net zeg dat ik geen poep weet van SQL? :') :D
Quirzaterdag 2 juni 2012 @ 14:46
Je snapte de Formats al, en aftrekken heb je gehad op de basisschool.
DutchErroristzaterdag 2 juni 2012 @ 15:30
quote:
12s.gif Op zaterdag 2 juni 2012 14:46 schreef Quir het volgende:
Je snapte de Formats al, en aftrekken heb je gehad op de basisschool.
Ja maar ik snap al die codes niet. En wat het dus allemaal doet.
DutchErroristzaterdag 2 juni 2012 @ 15:34
Oeh Quir heeft me al een heel eind geholpen, ik heb nu een makkelijkere die werkt.

1DATEDIFF("yyyy", [dob], now())
Boze_Appelzondag 3 juni 2012 @ 00:12
quote:
1s.gif Op zaterdag 2 juni 2012 01:36 schreef Devv het volgende:

[..]

De tweede methode is in mijn optiek de enige juiste aanpak. De eerste methode zou voor mij al reden voor ontslag zijn.
Afhankelijk van wat getDB(); doet in het tweede voorbeeld kan dat wel voor heel veel db-connecties zorgen.
Quirzondag 3 juni 2012 @ 20:40
Een punt opgooien in een SP-topic, Scorpie? Ik dacht dat ieder weldenkend mens het daar wel mee gehad had.
Scorpiezondag 3 juni 2012 @ 20:41
quote:
6s.gif Op zondag 3 juni 2012 20:40 schreef Quir het volgende:
Een punt opgooien in een SP-topic, Scorpie? Ik dacht dat ieder weldenkend mens het daar wel mee gehad had.
Wat is deze :P
de_boswachterzondag 3 juni 2012 @ 20:49
Ik weet niet of ik in dit topic goed zit, maar heb een dummy vraag;

Hoe zet ik op mijn ipad uit dat ik zie wanneer er een mail binnenkomt? Email is gesynchroniseerd met Oulook en elke keer als ik jn Outlook mail krijg dan zie ik dat. Daar wil ik vanaf.

Wie weet precies hoe ik dit uitzet :P
Civilianzondag 3 juni 2012 @ 21:00
quote:
0s.gif Op zondag 3 juni 2012 20:49 schreef de_boswachter het volgende:
Ik weet niet of ik in dit topic goed zit, maar heb een dummy vraag;

Hoe zet ik op mijn ipad uit dat ik zie wanneer er een mail binnenkomt? Email is gesynchroniseerd met Oulook en elke keer als ik jn Outlook mail krijg dan zie ik dat. Daar wil ik vanaf.

Wie weet precies hoe ik dit uitzet :P
Wat heeft dat met PHP/MySQL te maken?
de_boswachterzondag 3 juni 2012 @ 21:10
Geen idee. Ik zag dummy staan.
Waar moet ik dan deze vraag stellen.
Lightzondag 3 juni 2012 @ 22:03
quote:
0s.gif Op zondag 3 juni 2012 21:10 schreef de_boswachter het volgende:
Geen idee. Ik zag dummy staan.
Waar moet ik dan deze vraag stellen.
Het gaat over een iPad, dus iPad deel #33 - Waar we op de iPads van de NRC wachten. lijkt me wel geschikt :)
Quirzondag 3 juni 2012 @ 22:23
quote:
1s.gif Op zondag 3 juni 2012 20:41 schreef Scorpie het volgende:

[..]

Wat is deze :P
:P.
cablegunmastermaandag 4 juni 2012 @ 02:52
quote:
7s.gif Op zondag 3 juni 2012 00:12 schreef Boze_Appel het volgende:

[..]

Afhankelijk van wat getDB(); doet in het tweede voorbeeld kan dat wel voor heel veel db-connecties zorgen.
Al aan gedacht, hij vult als de DB al bestaat met een nieuwe referentie van de static DB. :P

1
2
3
4
5
6
7
8
<?php
        
if(empty(website_Model::$single_db)){
            
$this->db = new Database($ip,$user,$pass,$db_name$port);
            
website_Model::$single_db $this->db;
        }else{
            
$this->db website_Model::$single_db;
        }
?>
Pakspulmaandag 4 juni 2012 @ 07:51
quote:
10s.gif Op maandag 4 juni 2012 02:52 schreef cablegunmaster het volgende:

[..]

Al aan gedacht, hij vult als de DB al bestaat met een nieuwe referentie van de static DB. :P
[ code verwijderd ]

waarom gebruik je geen singleton patroon?
Cue_vrijdag 8 juni 2012 @ 11:02


[ Bericht 100% gewijzigd door Cue_ op 08-06-2012 11:16:37 ]
Crutchvrijdag 8 juni 2012 @ 11:31
Heeft de mailfunctie een error handler net zoals sql met mysql_error() ?

De mailfunctie werkt niet en ik vind er niets over terug in de error log.
Pakspulvrijdag 8 juni 2012 @ 11:36
quote:
0s.gif Op vrijdag 8 juni 2012 11:31 schreef Crutch het volgende:
Heeft de mailfunctie een error handler net zoals sql met mysql_error() ?

De mailfunctie werkt niet en ik vind er niets over terug in de error log.
Returns TRUE if the mail was successfully accepted for delivery, FALSE otherwise.

It is important to note that just because the mail was accepted for delivery, it does NOT mean the mail will actually reach the intended destination.

meer heb je volgens mij niet.
Crutchvrijdag 8 juni 2012 @ 11:43
Hmm, ik test 'm even op de hosting.
Misschien dat ie lokaal niet goed is ingesteld.
Crutchvrijdag 8 juni 2012 @ 11:52
Oh, stom. Ik had een variabele fout.
cablegunmastervrijdag 8 juni 2012 @ 16:51
quote:
0s.gif Op vrijdag 8 juni 2012 11:52 schreef Crutch het volgende:
Oh, stom. Ik had een variabele fout.
Beginners programmeur fout :P ;)
Devvvrijdag 8 juni 2012 @ 18:58
Dit soort onzin zou je bij een managed framework niet hebben ;) .
Lightzaterdag 9 juni 2012 @ 12:17
quote:
0s.gif Op vrijdag 8 juni 2012 18:58 schreef Devv het volgende:
Dit soort onzin zou je bij een managed framework niet hebben ;) .
Dan nog kun je typfouten maken. Een IDE kan je op tikfouten wijzen, en PHP geeft een notice als je een variabele probeert te gebruiken die nog niet geinitialiseerd is. Die notices moet je dus wel aanzetten op je developmentomgeving.
Lightzaterdag 9 juni 2012 @ 12:20
quote:
1s.gif Op maandag 4 juni 2012 07:51 schreef Pakspul het volgende:

[..]

waarom gebruik je geen singleton patroon?
En wat dan als je toch een keer besluit dat je met meer dan 1 database wilt verbinden?
Devvzaterdag 9 juni 2012 @ 12:26
quote:
0s.gif Op zaterdag 9 juni 2012 12:17 schreef Light het volgende:

[..]

Dan nog kun je typfouten maken.
Bij een managed framework worden typefouten al tijdens designtime afgevangen. De kans op runtime fouten is daardoor stukken minder groot dan bij een scripttaal zoals PHP.
Devvzaterdag 9 juni 2012 @ 12:32
quote:
0s.gif Op zaterdag 9 juni 2012 12:20 schreef Light het volgende:

[..]

En wat dan als je toch een keer besluit dat je met meer dan 1 database wilt verbinden?
Dan geef je in plaats van een instantie van de db connectie een eigen factory klasse mee die de verschillende verbindingen kan managen.
Pakspulzaterdag 9 juni 2012 @ 16:43
quote:
0s.gif Op zaterdag 9 juni 2012 12:20 schreef Light het volgende:

[..]

En wat dan als je toch een keer besluit dat je met meer dan 1 database wilt verbinden?
Singleton database collection, waar je met een static functie die connectie uit kan halen welke je wil hebben?
Lightzondag 10 juni 2012 @ 17:34
quote:
0s.gif Op zaterdag 9 juni 2012 16:43 schreef Pakspul het volgende:

[..]

Singleton database collection, waar je met een static functie die connectie uit kan halen welke je wil hebben?
Als je die collectie van buitenaf kunt vullen, ben ik het met je eens :)
mscholwoensdag 13 juni 2012 @ 11:10
even een vraagje m.b.t. wachtwoorden:
Hoe werkt salt-/peppering?

zelf dacht ik (pseudocode):

1
2
3
4
5
$salt = bla
$pepper = boe
$PWsalted = $pepper+$_post[wachtwoord]+$salt
$PWsalted = sha256($PWsalted)
//doe iets met pwsalted

maar dat lijkt mij net zo onveilig als alleen een los wachtwoord (behalve dat het WW langer is)
GlowMousewoensdag 13 juni 2012 @ 11:22
sha256(sha256($PW) . $salt)
Lightwoensdag 13 juni 2012 @ 23:38
quote:
0s.gif Op woensdag 13 juni 2012 11:10 schreef mschol het volgende:
even een vraagje m.b.t. wachtwoorden:
Hoe werkt salt-/peppering?

zelf dacht ik (pseudocode):
[ code verwijderd ]

maar dat lijkt mij net zo onveilig als alleen een los wachtwoord (behalve dat het WW langer is)
Zo ongeveer, ja. De extra veiligheid krijg je door pepper per user verschillend te laten zijn. Sowieso is het toevoegen van extra informatie al goed, omdat iemand die de password hashes heeft ze dan niet zo makkelijk kan matchen. Er is waarschijnlijk geen rainbow table voor de gesalte passwords. En als die er wel is, heb je daar alsnog niets aan als je ook pepper gebruikt. Dan moet je per user een rainbow table maken, en da's niet aantrekkelijk.
Lightwoensdag 13 juni 2012 @ 23:59
quote:
14s.gif Op woensdag 13 juni 2012 11:22 schreef GlowMouse het volgende:
sha256(sha256($PW) . $salt)
Twee keer hashen maakt je systeem eerder onveiliger dan veiliger. De lengte van de eerste hash is bekend en het aantal mogelijkheden is eindig. Dat maakt het makkelijker om het resultaat van de eerste hash te vinden, en die kun je met een rainbow table wel verder kraken.
KomtTijd...donderdag 14 juni 2012 @ 00:21
per-user unieke salt is sowieso een gigantisch sterk middel om dubbele hashes te voorkomen. Aangezien passwords die meer dan 1x voorkomen een behoorlijk grote kans hebben om "Welkom1" of "admin" of "qwerty" te zijn...
GlowMousedonderdag 14 juni 2012 @ 13:06
quote:
0s.gif Op woensdag 13 juni 2012 23:59 schreef Light het volgende:

[..]

Twee keer hashen maakt je systeem eerder onveiliger dan veiliger. De lengte van de eerste hash is bekend en het aantal mogelijkheden is eindig. Dat maakt het makkelijker om het resultaat van de eerste hash te vinden, en die kun je met een rainbow table wel verder kraken.
Ik zie niet wat je hier bedoelt, maar als je voor 2256 'eindig aantal' bekende input-waarden een rainbow-table wilt maken dan wens ik je veel succes. Salt is uiteraard user-dependent.
mstxdonderdag 14 juni 2012 @ 13:19
quote:
0s.gif Op woensdag 13 juni 2012 23:59 schreef Light het volgende:

[..]

Twee keer hashen maakt je systeem eerder onveiliger dan veiliger. De lengte van de eerste hash is bekend en het aantal mogelijkheden is eindig. Dat maakt het makkelijker om het resultaat van de eerste hash te vinden, en die kun je met een rainbow table wel verder kraken.
Bijna niemand heeft een wachtwoord van 64 karakters dus in 99% van de gevallen is het veiliger.
De uiteindelijke hash is sowieso eindig dus met een rainbow table van 2256 hashes :') zul je sowieso wel tot een collision komen, maar de kans dat dat precies dezelfde waarde is als de 1e hash+salt is oneindig klein.
WheeleEdonderdag 14 juni 2012 @ 15:31
Goed...ik loop weer eens vast, dus retour naar dit topic :).
Mijn doel: een tussenstand van een sportcompetitie fabriceren. Een tabelletje met team, #gespeeld, wedstrijdpunten, #gewonnen, #gelijk, #verloren, #doelptn voor, #doelptn tegen, doelsaldo.

De belangrijkste tabellen die ik heb: competitie, klasse, team, wedstrijd en een koppeltabel die registreert welk team in welke klasse in welke competitie speelt.

Met veel zoek- en probeerwerk heb ik de volgende query weten te krijgen:
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
SELECT team_id, t_naam, COUNT(*) Gespeeld,
SUM( CASE WHEN Uitslag = 'Winst' THEN 3 ELSE 0 END)+SUM( CASE WHEN Uitslag = 'Gelijk' THEN 1 ELSE 0 END ) Punten,
SUM( CASE WHEN Uitslag = 'Winst' THEN 1 ELSE 0 END ) Gewonnen, 
SUM( CASE WHEN Uitslag = 'Gelijk' THEN 1 ELSE 0 END ) Gelijkspel, 
SUM( CASE WHEN Uitslag = 'Verlies' THEN 1 ELSE 0 END ) Verloren
FROM team t left join
(
    SELECT w_team1 AS tid, 
    CASE WHEN w_score1 > w_score2 THEN 'Winst'
    WHEN w_score1 < w_score2 THEN 'Verlies'
    WHEN w_score1 = w_score2 THEN 'Gelijk'
    END AS Uitslag
    FROM wedstrijd 
  where (w_score1 is not null and w_score2 is not null)
  
    UNION ALL    

    SELECT w_team2 AS tid, 
    CASE WHEN w_score1 > w_score2 THEN 'Winst'
    WHEN w_score1 < w_score2 THEN 'Verlies'
    WHEN w_score1 = w_score2 THEN 'Gelijk'
    END AS Uitslag
    FROM wedstrijd 
  where (w_score1 is not null and w_score2 is not null)
) A ON t.team_id = A.tid

where team_id in (select team_id
from competitie c, compindeling ci, klasse k, team t
and comp_id = 1 and klasse_id = 3)
GROUP BY t_naam
order by Punten DESC, Gespeeld ASC;
Ik weet dat mijn naamgeving misschien niet de meest gunstige is, maar dat neem ik nu even op de koop toe ;).

Wat ik hier uit krijg klopt met wat ik wil, maar ik loop vast bij de volgende stap, de doelpunten.
Hoe kan ik hier de doelpunten van alle gespeelde wedstrijden optellen? Per team wil ik het totaal aantal zelf gescoorde doepunten én het totaal aantal tegendoelpunten hebben.
Om daarna het doelsaldo weer te kunnen berekenen natuurlijk.
Scorpiedonderdag 14 juni 2012 @ 15:47
Hoe ziet je wedstrijdtabel eruit?
GlowMousedonderdag 14 juni 2012 @ 15:54
Regel 7-25 kun je ook doen met:
1
2
FROM team t
JOIN wedstrijd ON(t.team_id=w_team1 OR t.team_id=w_team2)
In je SELECT krijg je dan dingen als:
1SUM( CASE WHEN ((t.team_id=w_team1 AND w_score1>w_score2) OR (t.team_id=w_team2 AND w_score2>w_score1) THEN 1 ELSE 0 END ) Gewonnen
En denormaliseren zou ook wel helpen.
WheeleEdonderdag 14 juni 2012 @ 19:20
quote:
0s.gif Op donderdag 14 juni 2012 15:47 schreef Scorpie het volgende:
Hoe ziet je wedstrijdtabel eruit?
w_id int(11) PK
w_competitie int(11)
w_lokatie int(11)
w_datum date
w_tijd time
w_veld char(2)
w_team1 int(11)
w_team2 int(11)
w_score1 int(11)
w_score2 int(11)
Waarbij 2 FK's (w_team1 + w_team2) liggen naar de teamtabel. Competitie en lokatie zijn ook foreign keys maar in dit specifieke geval niet zo van belang.
quote:
0s.gif Op donderdag 14 juni 2012 15:54 schreef GlowMouse het volgende:
Regel 7-25 kun je ook doen met:
[ code verwijderd ]
In je SELECT krijg je dan dingen als:
[ code verwijderd ]
Welke voordlen zitten daar aan vast, anders dan minder code?
quote:
En denormaliseren zou ook wel helpen.
Hoe bedoel je denormaliseren? Ben ik te ver doorgeslagen? :@
GlowMousedonderdag 14 juni 2012 @ 19:22
sneller, leesbaarder

en denormaliseren doe je nu toch juist niet?
WheeleEdonderdag 14 juni 2012 @ 19:23
quote:
0s.gif Op donderdag 14 juni 2012 19:22 schreef GlowMouse het volgende:
sneller, leesbaarder

en denormaliseren doe je nu toch juist niet?
Nee ik heb niet gedenormaliseerd, maar dat geef je wel als tip. Heb ik te ver genormaliseerd?
GlowMousedonderdag 14 juni 2012 @ 19:24
punten, gewonnen, gelijkspel en verloren zou ik in de tabel Team opslaan
WheeleEdonderdag 14 juni 2012 @ 19:32
quote:
14s.gif Op donderdag 14 juni 2012 19:24 schreef GlowMouse het volgende:
punten, gewonnen, gelijkspel en verloren zou ik in de tabel Team opslaan
Opzich wel een idee ja. Maar dan verlies ik die gegevens weer als een team een volgend seizoen in een andere klasse/competitie speelt. Ik wil dat zo flexibel mogelijk houden, en dus on the fly berekenen. Anders moet je bij elke wedstrijd die gespeeld is de teams ook updaten, in plaats van dat je alleen het wedstrijdrecord bewerkt.

//edit: en ik wil ook de standen van voorgaande competities kunnen opvragen, en wellicht standen op een bepaald moment in het verleden.

[ Bericht 8% gewijzigd door WheeleE op 14-06-2012 19:39:39 ]
Tauchmeisterzaterdag 23 juni 2012 @ 21:10
Ik zou graag een Google News-achtige dienst op mijn website aan willen bieden (dus een selectie met artikelen van andere sites, gesorteerd op onderwerp). Is dit realiseren met gebrekkige PHP-kennis? Ik ben wel bereid om me ervoor erin te verdiepen uiteraard :)
Ofyles2zaterdag 23 juni 2012 @ 22:44
quote:
0s.gif Op zaterdag 23 juni 2012 21:10 schreef Tauchmeister het volgende:
Ik zou graag een Google News-achtige dienst op mijn website aan willen bieden (dus een selectie met artikelen van andere sites, gesorteerd op onderwerp). Is dit realiseren met gebrekkige PHP-kennis? Ik ben wel bereid om me ervoor erin te verdiepen uiteraard :)
Je hebt veel meer nodig dan alleen een gebrekkige PHP-kennis.

Ik stel me beschikbaar als je me nodig hebt.
Tauchmeisterzondag 24 juni 2012 @ 00:09
quote:
0s.gif Op zaterdag 23 juni 2012 22:44 schreef Ofyles2 het volgende:

[..]

Je hebt veel meer nodig dan alleen een gebrekkige PHP-kennis.

Ik stel me beschikbaar als je me nodig hebt.
Daar ging ik al wel vanuit. Het is zo dat ik me de komende tijd naast mijn studie wil gaan richten op een project waar ik zelf veel potentie in zie, maar ik heb me eigenlijk nooit echt verdiept in PHP en me slechts beziggehouden met web design. Ik ben nu aan kijken hoe ik het ga aanpakken en geef natuurlijk het liefst zo weinig mogelijk uit handen, maar ik denk dat mijn PHP-kennis gewoonweg tekortschiet om het echt een succes te laten worden. Ik vraag me af of het zin heeft om er tijd en moeite in te steken of dat ik dat ik bepaalde delen van het scriptwerk beter aan anderen kan overlaten. En dan is het ook nog moeilijk om te bepalen wie daar geschikt voor is. Ik wil namelijk geen prutsers ;)
Ofyles2zondag 24 juni 2012 @ 00:32
quote:
0s.gif Op zondag 24 juni 2012 00:09 schreef Tauchmeister het volgende:

[..]

Daar ging ik al wel vanuit. Het is zo dat ik me de komende tijd naast mijn studie wil gaan richten op een project waar ik zelf veel potentie in zie, maar ik heb me eigenlijk nooit echt verdiept in PHP en me slechts beziggehouden met web design. Ik ben nu aan kijken hoe ik het ga aanpakken en geef natuurlijk het liefst zo weinig mogelijk uit handen, maar ik denk dat mijn PHP-kennis gewoonweg tekortschiet om het echt een succes te laten worden. Ik vraag me af of het zin heeft om er tijd en moeite in te steken of dat ik dat ik bepaalde delen van het scriptwerk beter aan anderen kan overlaten. En dan is het ook nog moeilijk om te bepalen wie daar geschikt voor is. Ik wil namelijk geen prutsers ;)
Jitse Groen (Thuisbezorgd.nl) stond ook voor die keus.

Niet dat ik je direct wil beïnvloeden.
Tauchmeisterzondag 24 juni 2012 @ 01:02
quote:
0s.gif Op zondag 24 juni 2012 00:32 schreef Ofyles2 het volgende:

[..]

Jitse Groen (Thuisbezorgd.nl) stond ook voor die keus.

Niet dat ik je direct wil beïnvloeden.
Tja, ik weet dat hij in het begin met iemand samenwerkte, maar daarna voor honderd procent eigenaar is geworden en daar plukt hij nu de vruchten van. Het hangt ook maar net af van je startkapitaal. Ik ben ook nog maar een student, maar heb dankzij eerdere projecten toch wat meer tot mijn beschikking, al moet dat eigenlijk niet van invloed zijn. Ik ga er nog eens goed over nadenken.
raptorixzondag 24 juni 2012 @ 16:40
quote:
14s.gif Op donderdag 14 juni 2012 19:24 schreef GlowMouse het volgende:
punten, gewonnen, gelijkspel en verloren zou ik in de tabel Team opslaan
Gebruik dan gewoon een fatsoenlijke caching laag, denormaliseren doe je eigenlijk alleen wanneer je daar zeer goede redenen hebt.
GlowMousezondag 24 juni 2012 @ 17:55
quote:
0s.gif Op zondag 24 juni 2012 16:40 schreef raptorix het volgende:

[..]

Gebruik dan gewoon een fatsoenlijke caching laag, denormaliseren doe je eigenlijk alleen wanneer je daar zeer goede redenen hebt.
Denormaliseren is een vorm van caching.
raptorixzondag 24 juni 2012 @ 19:01
quote:
14s.gif Op zondag 24 juni 2012 17:55 schreef GlowMouse het volgende:

[..]

Denormaliseren is een vorm van caching.
Als je dat in een aparte database, of desnoods tables doet misschien wel, wij hebben ooit voor hele grote zware sites gedenormaliseerde tables gebruikt om er Hibernate over te kunnen plaatsen, in dit geval is het trouwens ook overkill, je zou die standen prima kunnen ophalen via normale queries, wel leven niet meer in 2000 dat dat een performance probleem zou zijn.
GlowMousezondag 24 juni 2012 @ 19:20
quote:
0s.gif Op zondag 24 juni 2012 19:01 schreef raptorix het volgende:

[..]

Als je dat in een aparte database, of desnoods tables doet misschien wel
Nee, ook in dezelfde database is het caching. De meest efficiënte vorm van caching.
quote:
je zou die standen prima kunnen ophalen via normale queries, wel leven niet meer in 2000 dat dat een performance probleem zou zijn.
nee, dat kan niet 'prima'
BrainOverfloWzondag 24 juni 2012 @ 19:26
Mijn vraag is misschien een beetje offtopic omdat hij meer over JS gaat dan PHP maar een apart topic voor openen voor een klein vraagje vind ik ook zo overbodig.
Ik ben bezig een stuk PHP code om te zetten in JS en daarin moet een getal afgerond worden. Dit gaat in alle gevallen die ik tot nu toe getest heb goed behalve met de getallen die ik er nu als variablen bij gezet heb.

De PHP code maakt hier netjes 14 van maar in JS word het 14.000000000000002.

Iemand enig idee wat ik verkeerd doe?

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<html>
<head>
<script type="text/javascript">
    var beta_const = -2.665;
    var addedVars = 0.885;
    var probability = Math.exp(beta_const + addedVars);
    probability = probability/(probability+1);
    probability = Math.round(probability*100)/100;
    alert(probability*100);
</script>
</head>
<body>
    <?php
        $beta_const = -2.665;
        $addedVars = 0.885;
        $probability = exp($beta_const + $addedVars);
        $probability = $probability/($probability+1);
        $probability = round($probability,2);
        echo $probability*100;
    ?>
</body>
</html>
Diaboxzondag 24 juni 2012 @ 19:36
1
2
probability = Math.round(probability*100);
alert(probability);
What Every Computer Scientist Should Know About Floating-Point Arithmetic
raptorixzondag 24 juni 2012 @ 19:40
quote:
0s.gif Op zondag 24 juni 2012 19:20 schreef GlowMouse het volgende:

[..]

Nee, ook in dezelfde database is het caching. De meest efficiënte vorm van caching.

[..]

nee, dat kan niet 'prima'
Dan gebruik je gewoon een kut database omdat normale databases dat zelf wel cachen dan wel optimaliseren, we hebben het hier niet over miljoenen records mag ik aannemen.
BrainOverfloWzondag 24 juni 2012 @ 19:46
quote:
Het is altijd zo simpel als je door hebt wat je over het hoofd ziet :'). Bedankt.
WheeleEzondag 24 juni 2012 @ 19:46
quote:
0s.gif Op zondag 24 juni 2012 19:40 schreef raptorix het volgende:

[..]

Dan gebruik je gewoon een kut database omdat normale databases dat zelf wel cachen dan wel optimaliseren, we hebben het hier niet over miljoenen records mag ik aannemen.
Nope :N
Ik verwacht honderden. Als het echt succesvol wordt (wat ik niet zo gauw verwacht) misschien duizeden, maar that's it.
Leuk dat er nog over mijn stelling wordt gedebatteerd hier :). Ik heb inmiddels een tweede design verzonnen. Een aparte scoretabel (wedstrijdid, teamid, scorevoor, scoretegen, toto) met daarin per wedstrijd 2 records, voor elk team van de wedstrijd 1. Het is wel redundante opslag, maar maakt het volgens mij wel een stuk makkelijker om de standen te bereken.
Diaboxzondag 24 juni 2012 @ 19:48
quote:
0s.gif Op zondag 24 juni 2012 19:46 schreef BrainOverfloW het volgende:

[..]

Het is altijd zo simpel als je door hebt wat je over het hoofd ziet :'). Bedankt.
Is wel zonder decimalen :P

Wacht dit is een leuke met decimalen:
1
2
3
4
5
    probability = probability/(probability+1);
    probability = Math.round(probability*100)/100;
    probability = probability.toString().split('.');
    probability = probability[1] + '.' + probability[0];
    alert(probability);
raptorixzondag 24 juni 2012 @ 19:54
quote:
2s.gif Op zondag 24 juni 2012 19:46 schreef WheeleE het volgende:

[..]

Nope :N
Ik verwacht honderden. Als het echt succesvol wordt (wat ik niet zo gauw verwacht) misschien duizeden, maar that's it.
Leuk dat er nog over mijn stelling wordt gedebatteerd hier :). Ik heb inmiddels een tweede design verzonnen. Een aparte scoretabel (wedstrijdid, teamid, scorevoor, scoretegen, toto) met daarin per wedstrijd 2 records, voor elk team van de wedstrijd 1. Het is wel redundante opslag, maar maakt het volgens mij wel een stuk makkelijker om de standen te bereken.
Heb je het al geprobeerd met een genormaliseerd design en een reeele set testdata?
Het probleem met denormaliseren is dat wanneer je later dingen wilt uitbreiden je vaak de web inslaat van "sloppy design".
WheeleEzondag 24 juni 2012 @ 19:59
quote:
0s.gif Op zondag 24 juni 2012 19:54 schreef raptorix het volgende:

[..]

Heb je het al geprobeerd met een genormaliseerd design en een reeele set testdata?
Het probleem met denormaliseren is dat wanneer je later dingen wilt uitbreiden je vaak de web inslaat van "sloppy design".
Ik maak me niet zo'n zorgen over de performance, maar ik krijg de juiste resultaten er niet uit. Mijn querykennis is gewoon ontzettend weggezakt :')
Het initiele ontwerp was netjes genormaliseerd, en met enkele tientalle records testdata. Alleen kreeg ik het niet voor mekaar de complexere overzichten uit te halen. Door een aangepast ontwerp lukt dat hopelijk wel, zonder dat het ten koste gaat van performance.
raptorixzondag 24 juni 2012 @ 21:26
quote:
2s.gif Op zondag 24 juni 2012 19:59 schreef WheeleE het volgende:

[..]

Ik maak me niet zo'n zorgen over de performance, maar ik krijg de juiste resultaten er niet uit. Mijn querykennis is gewoon ontzettend weggezakt :')
Het initiele ontwerp was netjes genormaliseerd, en met enkele tientalle records testdata. Alleen kreeg ik het niet voor mekaar de complexere overzichten uit te halen. Door een aangepast ontwerp lukt dat hopelijk wel, zonder dat het ten koste gaat van performance.
Queries om standen op te bouwen zijn ook lastig, je ontkomt in principe niet aan aggregate queries, en die vind ik zelf ook altijd kut :+

Zelf heb ik jarenlang behoorlijk complexe queries geschreven (bijvoorbeeld voor de eerste versie van Funda) maar laatst moest ik een simpele join doen, en dat lukte me niet meer uit me hoofd :+
WheeleEzondag 24 juni 2012 @ 21:46
quote:
0s.gif Op zondag 24 juni 2012 21:26 schreef raptorix het volgende:

[..]

Queries om standen op te bouwen zijn ook lastig, je ontkomt in principe niet aan aggregate queries, en die vind ik zelf ook altijd kut :+

Zelf heb ik jarenlang behoorlijk complexe queries geschreven (bijvoorbeeld voor de eerste versie van Funda) maar laatst moest ik een simpele join doen, en dat lukte me niet meer uit me hoofd :+
Heheh, ja dat is hem precies. Ik ben ooit begonnen als beheerder+ontwikkelaar, maar de afgelopen 5/6 jaar heb ik alleen maar beheerwerk gedaan. Joinen lukt nog wel, maar al dat soort berekeningen worden een uitdaging.
Daarom ga ik nu maar voor de concessie in normalisatie. Mocht mijn hobbyfrutsel ooit succesvol worden dan zal het toch helemaal herschreven moeten worden, lekker boeiend :).
GlowMousezondag 24 juni 2012 @ 22:59
quote:
0s.gif Op zondag 24 juni 2012 19:40 schreef raptorix het volgende:

[..]

Dan gebruik je gewoon een kut database omdat normale databases dat zelf wel cachen dan wel optimaliseren, we hebben het hier niet over miljoenen records mag ik aannemen.
Dit topic gaat over MySQL, die doet dat niet. Andere db's ken ik niet, maar ik betwist dat die dit wel goed kunnen cachen.
Mufflezondag 24 juni 2012 @ 23:19
Hallo PHP'ers en SQL'ers.

Ik heb al een beetje basiservaring met standaard html geneuzel, en ben begaafd in het oplossen van mijn HTML/CSS problemen met google.

Alleen heb ik een nieuw idee, en dat heeft natuurlijk weer php nodig.

Ik heb easyPHP al geinstalleerd dus alles staat klaar.

Mijn vraag/nieuw project:

Hoe maak ik een knop, dat als je er op drukt, dat een variabele 1 omhoog gaat.
Slechts 1x klikken per IP, en dat het IP ook wordt opgeslagen.

Iemand enig idee WAAR ik moet beginnen, en hoe ik een goeie database aanmaak?
Ik krijg me dan toch een partij met opties.
GlowMousezondag 24 juni 2012 @ 23:25
Het begint met het onderscheid leren tussen server-side en client-side.
Tijnmaandag 25 juni 2012 @ 01:10
Wat bedoel je met "dat een variabele omhoog gaat"? Is dat een getal? Bedoel je dan niet gewoon het aantal records dat is geregistreerd?
Mufflemaandag 25 juni 2012 @ 01:20
quote:
5s.gif Op maandag 25 juni 2012 01:10 schreef Tijn het volgende:
Wat bedoel je met "dat een variabele omhoog gaat"? Is dat een getal? Bedoel je dan niet gewoon het aantal records dat is geregistreerd?
Gewoon het aantal records :)
Tijnmaandag 25 juni 2012 @ 02:03
quote:
0s.gif Op maandag 25 juni 2012 01:20 schreef Muffle het volgende:

[..]

Gewoon het aantal records :)
Ik zou zeggen, maak dan een tabel waarin je de unieke IP-adressen opslaat. Dit is de simpelste variant, zonder verdere velden. In een echte applicatie zijn kolommen als een uniek id en een timestamp waarschijnlijk wel handig om toe te voegen, maar niet nodig om alleen maar het aantal keer dat er op een knop is geklikt te tellen.

1
2
3
4
CREATE TABLE IF NOT EXISTS `log` (
  `ip` varchar(45) COLLATE utf8_unicode_ci NOT NULL,
  PRIMARY KEY (`ip`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;

Dit is een tabel met alleen een kolom die "ip" heet waarin varchars (strings) van maximaal 45 tekens kunnen worden opgeslagen, wat lang genoeg is om zowel IPv4 als IPv6-adressen op te slaan. Doordat deze kolom ook de primary key is, wordt voorkomen dat er dubbele IP-adressen worden opgeslagen.

Vervolgens zou je zo'n soort pagina kunnen maken:

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
47
48
49
50
51
<?php

#
# KNOPPENTELLER
#

// verbinden met de database
$mysqli = new mysqli("localhost""username""password""database");

// verwerk input
if($_SERVER['REQUEST_METHOD'] == 'POST')
{
  
// controleer of het meegestuurde ip-adres een geldig adres is
  
if(filter_var($_SERVER['REMOTE_ADDR'], FILTER_VALIDATE_IP))
  {
    
// probeer het in de database op te slaan
    
if($mysqli->query('INSERT INTO `log` (`ip`) VALUES("'.$_SERVER['REMOTE_ADDR'].'")'))
    {
      
// gelukt :)
      
$message 'Bedankt!';
    }
    else
    {
      
// mislukt :(
      
$message 'Er is al een keer vanaf dit IP-adres op de knop gedrukt, dus het mag nu niet meer.';
    }
  }
}

// haal alle logs op
$result $mysqli->query("SELECT * FROM `log`");

?>
<!DOCTYPE html>
<html>
  <head>
    <title>Knoppenteller</title>
  </head>
  <body>
    <h1>Knoppenteller</h1>
    <p>Elk uniek IP-adres mag 1 keer op de knop drukken.</p>
    <p>De knop is tot nu toe <strong><?php echo $result->num_rows?></strong> keer ingedrukt.</p>
    <?php if(isset($message)): ?>
    <p><strong><?php echo $message?></strong></p>
    <?php else: ?>
    <form method="post" action="">
      <button type="submit">de knop</button>
    </form>  
    <?php endif; ?>
  </body>
</html>

Kheb bij elke PHP-regel een comment gezet met uitleg wat die regel doet. Spreekt voor zich, toch?

Wat betreft de databaseverbinding: PHP biedt 3 manieren om met een MySQL-database te verbinden (klik hier voor meer info). Ik heb hier gebruik gemaakt van mysqli. Je zou ook voor PDO kunnen kiezen.

Mocht je een echte applicatie gaan bouwen dan is het waarschijnlijk een goed idee om te kijken naar een framework (Zend Framework, CakePHP, CodeIgniter om wat populaire voorbeelden te noemen) met een abstractielaag voor databasetoegang, zodat je je hier niet druk om hoeft te maken. Een goed framework is waarschijnlijk de beste manier om op een zo snel mogelijke manier een veilige applicatie te bouwen.

[ Bericht 0% gewijzigd door Tijn op 25-06-2012 02:46:16 ]
Mufflemaandag 25 juni 2012 @ 05:30
quote:
14s.gif Op maandag 25 juni 2012 02:03 schreef Tijn het volgende:

[..]

Ik zou zeggen, maak dan een tabel waarin je de unieke IP-adressen opslaat. Dit is de simpelste variant, zonder verdere velden. In een echte applicatie zijn kolommen als een uniek id en een timestamp waarschijnlijk wel handig om toe te voegen, maar niet nodig om alleen maar het aantal keer dat er op een knop is geklikt te tellen.
[ code verwijderd ]

Dit is een tabel met alleen een kolom die "ip" heet waarin varchars (strings) van maximaal 45 tekens kunnen worden opgeslagen, wat lang genoeg is om zowel IPv4 als IPv6-adressen op te slaan. Doordat deze kolom ook de primary key is, wordt voorkomen dat er dubbele IP-adressen worden opgeslagen.

Vervolgens zou je zo'n soort pagina kunnen maken:
[ code verwijderd ]

Kheb bij elke PHP-regel een comment gezet met uitleg wat die regel doet. Spreekt voor zich, toch?

Wat betreft de databaseverbinding: PHP biedt 3 manieren om met een MySQL-database te verbinden (klik hier voor meer info). Ik heb hier gebruik gemaakt van mysqli. Je zou ook voor PDO kunnen kiezen.

Mocht je een echte applicatie gaan bouwen dan is het waarschijnlijk een goed idee om te kijken naar een framework (Zend Framework, CakePHP, CodeIgniter om wat populaire voorbeelden te noemen) met een abstractielaag voor databasetoegang, zodat je je hier niet druk om hoeft te maken. Een goed framework is waarschijnlijk de beste manier om op een zo snel mogelijke manier een veilige applicatie te bouwen.
Danku zeer!
Na veel doorlezen/leren/proberen, snap ik het nu, en heb ik zelf de tables/databases gemaakt en ID's toegevoegd.

En nu even denken over verder project.
Cue_maandag 25 juni 2012 @ 12:13
Even een SQL vraagje

ik heb twee tabellen uhm de 101 en 860
nu moet ik van bepaalde data in de 860 gegevens updaten met data uit de 101

De 860 bevat
id, customer, ordernr, regelnr, status

de 101
customer, ordernr,regel

Nu wil ik in de 860 de customer updaten waar de ordernr en regelnr van de 860 en 101 gelijk zijn aan elkaar.
Dus krijg dan ... update 860 set customer = (select customer from 101 ......
Maar hoe stel ik die twee dan gelijk aan elkaar bij een update statement. Een select vind ik dan weer niet lastig.

Dan krijg ik:
select t.customer from 101 t
inner join 860 b on t.ordernr = b.ordernr and t.regelnr = b.regelnr
where b.id = 377743365
GlowMousemaandag 25 juni 2012 @ 12:14
update 860 set customer = (select customer from 101 where 101.ordernr=860.ordernr and 101.regel=860.regelnr order by ... limit 1)
Cue_maandag 25 juni 2012 @ 12:24
Hij dut t O+

[ Bericht 46% gewijzigd door Cue_ op 25-06-2012 12:34:25 ]
raptorixmaandag 25 juni 2012 @ 15:04
Ik mag serieus hopen dat je die tables niet echt zo hebt genoemd?
Mufflemaandag 25 juni 2012 @ 16:24
quote:
14s.gif Op maandag 25 juni 2012 02:03 schreef Tijn het volgende:

[..]

Ik zou zeggen, maak dan een tabel waarin je de unieke IP-adressen opslaat. Dit is de simpelste variant, zonder verdere velden. In een echte applicatie zijn kolommen als een uniek id en een timestamp waarschijnlijk wel handig om toe te voegen, maar niet nodig om alleen maar het aantal keer dat er op een knop is geklikt te tellen.
[ code verwijderd ]

Zitten er allebei ook in.
Nu verder met het design van mijn website
remlofdinsdag 26 juni 2012 @ 13:48
www.memsql.com volledig compatibel met en 30x sneller dan MySQL :o
Scorpiedinsdag 26 juni 2012 @ 13:58
quote:
11s.gif Op dinsdag 26 juni 2012 13:48 schreef remlof het volgende:
www.memsql.com volledig compatibel met en 30x sneller dan MySQL :o
Heb je alleen wel Linux 64 bit met 8gig geheugen voor nodig.
remlofdinsdag 26 juni 2012 @ 13:59
quote:
6s.gif Op dinsdag 26 juni 2012 13:58 schreef Scorpie het volgende:

[..]

Heb je alleen wel Linux 64 bit met 8gig geheugen voor nodig.
Wat kost 8Gb nou nog tegenwoordig? :P
Cue_dinsdag 26 juni 2012 @ 14:11
quote:
0s.gif Op maandag 25 juni 2012 15:04 schreef raptorix het volgende:
Ik mag serieus hopen dat je die tables niet echt zo hebt genoemd?
Nop, dit is even een afkorting. Al hebben ze wel heel leuk cijfertjes in de naam. Maar heb ik niet bedacht. BAAN (Infor) :r
Scorpiedinsdag 26 juni 2012 @ 14:15
quote:
7s.gif Op dinsdag 26 juni 2012 13:59 schreef remlof het volgende:

[..]

Wat kost 8Gb nou nog tegenwoordig? :P
Niks, binnenkort maar eens een VM maken met dit erop. Kijken hoe het zich verhoudt met mijn newznab instantie met 25 gig aan data.
GlowMousedinsdag 26 juni 2012 @ 14:18
quote:
11s.gif Op dinsdag 26 juni 2012 13:48 schreef remlof het volgende:
www.memsql.com volledig compatibel met en 30x sneller dan MySQL :o
Leuk voor mensen die MySQL niet kunnen configureren en durability niet waarderen. Ik verwacht binnen niet al te lange tijd wat vernietigende blogposts.
Scorpiedinsdag 26 juni 2012 @ 14:22
Tis ook nie gratis nie.
Crutchdinsdag 26 juni 2012 @ 14:29
Mooie strakke site wel.
GlowMousedinsdag 26 juni 2012 @ 14:40
quote:
Is this a joke?

Data must fit in RAM, no joins over >2 tables, no transactions, no builtin support for clustering/sharding/horizontal scaling whatsoever.
quote:
Is it just me or does this entire product smell like it was designed for the sole purpose of extracting money from less than tech-savvy investors and clueless institutions?

The bullshit-bingo-lingo on their homepage is mindnumbing.

Meanwhile their actual software seems rather underwhelming, bordering on SnakeOil.
Scorpiedinsdag 26 juni 2012 @ 14:42
En ik maar denken dat we een kek product aangesmeerd kregen. Niks is minder waar.
Bedankt voor niks, remlof.
remlofdinsdag 26 juni 2012 @ 14:49
quote:
9s.gif Op dinsdag 26 juni 2012 14:42 schreef Scorpie het volgende:
En ik maar denken dat we een kek product aangesmeerd kregen. Niks is minder waar.
Bedankt voor niks, remlof.
Als snelheid belangrijk is voor je commerciële website lijkt MemSQL me wel degelijk het overwegen waard.
GlowMousedinsdag 26 juni 2012 @ 14:52
quote:
7s.gif Op dinsdag 26 juni 2012 14:49 schreef remlof het volgende:

[..]

Als snelheid belangrijk is voor je commerciële website lijkt MemSQL me wel degelijk het overwegen waard.
Ik kan geen site bedenken die hier baat bij heeft.
remlofdinsdag 26 juni 2012 @ 14:54
quote:
16s.gif Op dinsdag 26 juni 2012 14:52 schreef GlowMouse het volgende:

[..]

Ik kan geen site bedenken die hier baat bij heeft.
Als je ingewikkelde queries hebt die langer dan 0.1 seconde duren al.
mstxdinsdag 26 juni 2012 @ 14:56
quote:
7s.gif Op dinsdag 26 juni 2012 14:54 schreef remlof het volgende:

[..]

Als je ingewikkelde queries hebt die langer dan 0.1 seconde duren al.
quote:
no joins over >2 tables
:X
Scorpiedinsdag 26 juni 2012 @ 14:56
quote:
7s.gif Op dinsdag 26 juni 2012 14:54 schreef remlof het volgende:

[..]

Als je ingewikkelde queries hebt die langer dan 0.1 seconde duren al.
Ingewikkelde queries die meer dan 2 joins bevatten bijvoorbeeld? Die kan memsql niet aan.
GlowMousedinsdag 26 juni 2012 @ 15:07
quote:
7s.gif Op dinsdag 26 juni 2012 14:54 schreef remlof het volgende:

[..]

Als je ingewikkelde queries hebt die langer dan 0.1 seconde duren al.
Die hoor je bij een site al niet te hebben.
remlofdinsdag 26 juni 2012 @ 15:08
quote:
0s.gif Op dinsdag 26 juni 2012 14:56 schreef mstx het volgende:

[..]

[..]

:X
Ow, hmmm ja dat is dan wel weer minder.
raptorixdinsdag 26 juni 2012 @ 17:15
quote:
0s.gif Op dinsdag 26 juni 2012 14:11 schreef Cue_ het volgende:

[..]

Nop, dit is even een afkorting. Al hebben ze wel heel leuk cijfertjes in de naam. Maar heb ik niet bedacht. BAAN (Infor) :r
Ik kende iemand die ook bij zo een bedrijf werkte waar letterlijk alle tables en velden een nummer hadden, liepen ze allemaal met printouts en aantekeningen wat er echt in de velden zat :)
raptorixdinsdag 26 juni 2012 @ 17:17
quote:
7s.gif Op dinsdag 26 juni 2012 14:49 schreef remlof het volgende:

[..]

Als snelheid belangrijk is voor je commerciële website lijkt MemSQL me wel degelijk het overwegen waard.
Dan kan je beter technieken zoals SOLR gebruiken...
Cue_dinsdag 26 juni 2012 @ 17:27
quote:
0s.gif Op dinsdag 26 juni 2012 17:15 schreef raptorix het volgende:
Ik kende iemand die ook bij zo een bedrijf werkte waar letterlijk alle tables en velden een nummer hadden, liepen ze allemaal met printouts en aantekeningen wat er echt in de velden zat :)
Het is echt verschrikkelijk. Gelukkig is nog wat info te halen uit velden als 'cuno' , 'pono' en 'orno' enzo. Maar toch is het lastig om erin te duiken en de tabellen van elkaar te onderscheiden. Maar al doende leert men O+
Tijndinsdag 26 juni 2012 @ 17:56
quote:
7s.gif Op dinsdag 26 juni 2012 14:49 schreef remlof het volgende:

[..]

Als snelheid belangrijk is voor je commerciële website lijkt MemSQL me wel degelijk het overwegen waard.
Sites die MySQL gebruiken, zoals Wikipedia of Fok! zijn toch hartstikke snel?
Scorpiedinsdag 26 juni 2012 @ 18:08
quote:
0s.gif Op dinsdag 26 juni 2012 17:27 schreef Cue_ het volgende:

[..]

Het is echt verschrikkelijk. Gelukkig is nog wat info te halen uit velden als 'cuno' , 'pono' en 'orno' enzo. Maar toch is het lastig om erin te duiken en de tabellen van elkaar te onderscheiden. Maar al doende leert men O+
Dat bedrijf waar jij werkt is verschrikkelijk.
GlowMousedinsdag 26 juni 2012 @ 18:10
quote:
0s.gif Op dinsdag 26 juni 2012 17:17 schreef raptorix het volgende:

[..]

Dan kan je beter technieken zoals SOLR gebruiken...
Je db-server door een zoekserver vervangen, goed idee.
boem-dikkiedinsdag 26 juni 2012 @ 20:17
Nog een mooi artikeltje over memsql vs. mySQL.

http://dom.as/2012/06/26/memsql-rage/
GlowMousedinsdag 26 juni 2012 @ 20:30
Die thread die om de 50ms wegschrijft is wel sad, de rest had ik wel verwacht.
remlofdinsdag 26 juni 2012 @ 21:18
quote:
5s.gif Op dinsdag 26 juni 2012 17:56 schreef Tijn het volgende:

[..]

Sites die MySQL gebruiken, zoals Wikipedia of Fok! zijn toch hartstikke snel?
Ja, MySQL is ook in de meeste gevallen wel snel genoeg mits goed geconfigureerd en goeie hardware.
Tenzij je een site als Google of Facebook runt ofzo :')
Lightdinsdag 26 juni 2012 @ 23:24
quote:
7s.gif Op dinsdag 26 juni 2012 21:18 schreef remlof het volgende:

[..]

Ja, MySQL is ook in de meeste gevallen wel snel genoeg mits goed geconfigureerd en goeie hardware.
Tenzij je een site als Google of Facebook runt ofzo :')
quote:
"Google runs critical business systems with MySQL and InnoDB. The systems require 24x7 operation with minimal downtime. The systems support large OLTP and reporting workloads. We are very happy with the scalability, reliability and manageability of this software."
Uiteraard met bron
Muffledinsdag 26 juni 2012 @ 23:26
quote:
0s.gif Op dinsdag 26 juni 2012 23:24 schreef Light het volgende:

[..]

[..]

Uiteraard met bron
Hoe groot zou de database van google zijn :O?
Lightdinsdag 26 juni 2012 @ 23:52
quote:
0s.gif Op dinsdag 26 juni 2012 23:26 schreef Muffle het volgende:

[..]

Hoe groot zou de database van google zijn :O?
Iets groter dan die van FOK! :)
KomtTijd...woensdag 27 juni 2012 @ 00:16
quote:
0s.gif Op dinsdag 26 juni 2012 23:26 schreef Muffle het volgende:

[..]

Hoe groot zou de database van google zijn :O?
Ik gok ongeveer 100x zo groot als de rest van het internet. Aangezien ze dat allemaal in cache hebben voor weet ik hoeveel jaar terug :).
KomtTijd...woensdag 27 juni 2012 @ 00:19
quote:
0s.gif Op dinsdag 26 juni 2012 23:24 schreef Light het volgende:

[..]

[..]

Uiteraard met bron
quote:
Facebook uses MySQL, but primarily as a key-value persistent storage, moving joins and logic onto the web servers since optimizations are easier to perform there (on the “other side” of the Memcached layer).
http://royal.pingdom.com/2010/06/18/the-software-behind-facebook/
raptorixwoensdag 27 juni 2012 @ 07:27
quote:
14s.gif Op dinsdag 26 juni 2012 18:10 schreef GlowMouse het volgende:

[..]

Je db-server door een zoekserver vervangen, goed idee.
Wie heeft het over vervangen?
Om voorbeeld te geven, heel de search van Funda draait erop.