abonnement Unibet Coolblue Bitvavo
  dinsdag 8 april 2014 @ 08:13:31 #1
187069 slacker_nl
Sicko pur sang
pi_138639529


Als je vragen hebt over PHP/MySQL, dan zit je hier goed met een vaste kliek guru's en een groot aantal regelmatige bezoekers. Beperk je vragen niet tot "hij doet het niet" of "hij geeft een fout" - onze glazen bol is kapot en we willen graag van je weten wát er niet lukt en wélke foutmelding je precies krijgt :)

Zie ook:
PHP Dataverwerking
Officiële PHP website
PHP Documentatie
MySQL Reference Manual
Yet Another PHP Faq
PHP Cheat Sheet
PHP5 Power Programming - boek met uitleg over OOP, Pear, XML, etc

Tutorials:
W3Schools PHP
W3Schools SQL

Succes heren met het volgende deeltje!
In theory there is no difference between theory and practice. In practice there is.
  dinsdag 8 april 2014 @ 11:53:15 #2
25889 Sitethief
Fulltime Flapdrol
pi_138644652
Om de stilte maar even te doorbreken, wat zou ik aan deze kleine functie kunnen veranderen? Het doel is dat hij zo snel mogelijk zijn werk doet, zonder veel geheugengebruik. Ik zit te denken aan een for loop ipv foreach omdat alle arrays die erheen gaan toch oplopende keys hebben.

Het doel is om arrays met objecten zo om te zetten dat alle objecten in de array een waarde uit het object als key hebben (meestal een bepaalde id) ipv een oplopende key.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<?php
/**
 * Zorgt ervoor dat de key van de array items een van de values($flipKey) van de objecten in de array($toFlip) wordt
 * 
 * @param array $toFlip array met objecten
 * @param string $flipKey key in object
 * @return array
 */
function flipObjectArray($toFlip$flipKey) {
    
$ret = array();
    foreach (
$toFlip as $k => $v) {
        
$ret[$v->{$flipKey}] = $v;
    }
    return 
$ret;
}
?>
Stroek: Sitethief, die is heel groot en sterk :Y.
Faat: *zucht* zoals gewoonlijk hoor Sitethief weer in de bocht &gt;:)
  dinsdag 8 april 2014 @ 12:06:00 #3
137776 boem-dikkie
Jedi Mind Baby!
pi_138645043
Ik ben er zelf sowieso van om variabelen te gebruiken die beschrijven wat ze in zich hebben. $toFlip is natuurlijk onduidelijk als de pest, en dat je er een comment blok bij zet die zegt dat je $toFlip een array met objecten is helpt ook vrij weinig.

Maar dat is kwestie van smaak.
Ik weet niks van Hindoes. Wel van Samoerai en andere dingen.
pi_138645195
Ik zou sowieso de functie hernoemen en wat testjes doen om te zien of for of foreach sneller is in jouw geval.

[ Bericht 50% gewijzigd door #ANONIEM op 08-04-2014 12:12:10 ]
pi_138645510
Ook even een test toevoegen of je $flipKey wel bestaat in het object.

Maar ik neem aan dat je dit doet omdat je wilt sorteren? Anders zie ik sowieso niet echt het nut in van deze functie.
  dinsdag 8 april 2014 @ 12:55:17 #6
25889 Sitethief
Fulltime Flapdrol
pi_138646457
quote:
0s.gif Op dinsdag 8 april 2014 12:23 schreef totalvamp het volgende:
Ook even een test toevoegen of je $flipKey wel bestaat in het object.

Maar ik neem aan dat je dit doet omdat je wilt sorteren? Anders zie ik sowieso niet echt het nut in van deze functie.
In de objecten zitten unieke md5 keys ipv een gewone index die ik van de CouchDB terug krijg. Op deze manier heb ik een array met keys die ik gewoon kan gebruiken voor diverse dingen.

Sorteren kan CouchDB gewoon voor mij doen btw.
Stroek: Sitethief, die is heel groot en sterk :Y.
Faat: *zucht* zoals gewoonlijk hoor Sitethief weer in de bocht &gt;:)
pi_138646503
quote:
0s.gif Op dinsdag 8 april 2014 12:55 schreef Sitethief het volgende:

[..]

In de objecten zitten unieke md5 keys ipv een gewone index die ik van de CouchDB terug krijg. Op deze manier heb ik een array met keys die ik gewoon kan gebruiken voor diverse dingen.

Sorteren kan CouchDB gewoon voor mij doen btw.
Je weet dat je Objecten kunt behandelen als arrays? Dan hoef je ze niet eens om te zetten ^^.
  dinsdag 8 april 2014 @ 12:57:07 #8
25889 Sitethief
Fulltime Flapdrol
pi_138646530
quote:
14s.gif Op dinsdag 8 april 2014 12:06 schreef boem-dikkie het volgende:
Ik ben er zelf sowieso van om variabelen te gebruiken die beschrijven wat ze in zich hebben. $toFlip is natuurlijk onduidelijk als de pest, en dat je er een comment blok bij zet die zegt dat je $toFlip een array met objecten is helpt ook vrij weinig.

Maar dat is kwestie van smaak.
Hij heeft de array in zich die geflipt moet worden? $flipArray dan misschien? Het is een globale functie die overal en nergens ingezet moet kunnen worden in principe.
Stroek: Sitethief, die is heel groot en sterk :Y.
Faat: *zucht* zoals gewoonlijk hoor Sitethief weer in de bocht &gt;:)
  dinsdag 8 april 2014 @ 13:04:25 #9
25889 Sitethief
Fulltime Flapdrol
pi_138646793
quote:
0s.gif Op dinsdag 8 april 2014 12:56 schreef totalvamp het volgende:

[..]

Je weet dat je Objecten kunt behandelen als arrays? Dan hoef je ze niet eens om te zetten ^^.
Ik zet niks om? Maar hoe bedoel je?

Dit zijn de soort arrays die die functie moet omzetten.
1
2
3
4
5
6
7
8
9
10
<?php
Array
(
    [
0] => stdClass Object
        
(
            [
id] => 106434159d04626babfa1f4c81d3d0b2
            
[value] => ....
        )
}
?>
Stroek: Sitethief, die is heel groot en sterk :Y.
Faat: *zucht* zoals gewoonlijk hoor Sitethief weer in de bocht &gt;:)
pi_138647147
quote:
0s.gif Op dinsdag 8 april 2014 13:04 schreef Sitethief het volgende:

[..]

Ik zet niks om? Maar hoe bedoel je?

Dit zijn de soort arrays die die functie moet omzetten.
[ code verwijderd ]

Nouja je zet het nu dus om van dat naar dit?
1
2
3
4
5
6
7
8
9
10
<?php
Array
(
    [
106434159d04626babfa1f4c81d3d0b2] => stdClass Object
        
(
            [
id] => 106434159d04626babfa1f4c81d3d0b2
            
[value] => ....
        )
}
?>
  dinsdag 8 april 2014 @ 13:15:06 #11
25889 Sitethief
Fulltime Flapdrol
pi_138647180
quote:
0s.gif Op dinsdag 8 april 2014 13:13 schreef totalvamp het volgende:

[..]

Nouja je zet het nu dus om van dat naar dit?
[ code verwijderd ]

Klopt. Is er een betere methode? Dit was het beste wat ik zelf kon bedenken.
Stroek: Sitethief, die is heel groot en sterk :Y.
Faat: *zucht* zoals gewoonlijk hoor Sitethief weer in de bocht &gt;:)
pi_138647303
quote:
0s.gif Op dinsdag 8 april 2014 13:15 schreef Sitethief het volgende:

[..]

Klopt. Is er een betere methode? Dit was het beste wat ik zelf kon bedenken.
Nouja wat is er mis met de waarde direct uit het object aanroepen? Welke probleem moet dit een oplossing voor zijn?

Nu heb je bijvoorbeeld:
1
2
3
4
5
6
7
<?php
$lengthArray 
count($data);
for(
$i=0;$i<$lengthArray;$i++) {
  
$id $data[$i]->id;
  
$id $data[$i]['id'];
}
?>

Dus sowieso al toegang daartoe.

[ Bericht 1% gewijzigd door #ANONIEM op 08-04-2014 13:18:40 ]
  dinsdag 8 april 2014 @ 13:23:06 #13
25889 Sitethief
Fulltime Flapdrol
pi_138647491
quote:
0s.gif Op dinsdag 8 april 2014 13:18 schreef totalvamp het volgende:

[..]

Nouja wat is er mis met de waarde direct uit het object aanroepen? Welke probleem moet dit een oplossing voor zijn?

Nu heb je bijvoorbeeld:
[ code verwijderd ]

Dus sowieso al toegang daartoe.
Omdat ik die array op meerdere plekken binnen een class nodig heb voor het opbouwen van verschillende dingen deels gebaseerd op dat ID, ik wil er dan niet iedere keer doorheen loopen of zoeken maar gewoon de key kunnen gebruiken om de juiste data te selecteren.
Stroek: Sitethief, die is heel groot en sterk :Y.
Faat: *zucht* zoals gewoonlijk hoor Sitethief weer in de bocht &gt;:)
pi_138647659
quote:
0s.gif Op dinsdag 8 april 2014 13:23 schreef Sitethief het volgende:

[..]

Omdat ik die array op meerdere plekken binnen een class nodig heb voor het opbouwen van verschillende dingen deels gebaseerd op dat ID, ik wil er dan niet iedere keer doorheen loopen of zoeken maar gewoon de key kunnen gebruiken om de juiste data te selecteren.
Heb je voorbeelden? Ik neem aan dat je voor veel dingen maar 1 van de objecten nodig hebt voor data?

Even een klein voorbeeld van hoe ik er nu van uitga dat je het nodig hebt
1
2
3
4
5
6
7
8
9
10
11
12
13
<?php
class Foo {
  private 
$data = array();

  public function 
remove($id) {
     unset(
$this->data[$id]);
  }

  public function 
check($id) {
    
check($this->data[$id]);
  }
}
?>
  dinsdag 8 april 2014 @ 13:36:10 #15
25889 Sitethief
Fulltime Flapdrol
pi_138647972
quote:
0s.gif Op dinsdag 8 april 2014 13:27 schreef totalvamp het volgende:

[..]

Heb je voorbeelden? Ik neem aan dat je voor veel dingen maar 1 van de objecten nodig hebt voor data?

Even een klein voorbeeld van hoe ik er nu van uitga dat je het nodig hebt
[ code verwijderd ]

Inderdaad, maar ook complexere dingen, zoals kijken of bepaalde gebruikers recht hebben op de data erin gebaseerd op de context, lijsten in HTML bouwen van data uit value met andere items op ID eraan gelinked etc. Dit is stukken makkelijker als ik alle items gewoon op ID kan vinden.
Stroek: Sitethief, die is heel groot en sterk :Y.
Faat: *zucht* zoals gewoonlijk hoor Sitethief weer in de bocht &gt;:)
pi_138648269
quote:
0s.gif Op dinsdag 8 april 2014 13:36 schreef Sitethief het volgende:

[..]

Inderdaad, maar ook complexere dingen, zoals kijken of bepaalde gebruikers recht hebben op de data erin gebaseerd op de context, lijsten in HTML bouwen van data uit value met andere items op ID eraan gelinked etc. Dit is stukken makkelijker als ik alle items gewoon op ID kan vinden.
Inderdaad, al zou ik het zelf anders hebben gedaan (niet persee beter, maar anders, waarschijnlijk meer resources uiteindelijk).
In dat geval is je huidige code (op wat checks na) gewoon goed en moet je zelf even testen of je for of foreach gebruikt.

Bij je foreach kun je $k weghalen aangezien je die niet gebruikt.
  dinsdag 8 april 2014 @ 13:44:45 #17
25889 Sitethief
Fulltime Flapdrol
pi_138648345
quote:
0s.gif Op dinsdag 8 april 2014 13:42 schreef totalvamp het volgende:

[..]

Inderdaad, al zou ik het zelf anders hebben gedaan (niet persee beter, maar anders, waarschijnlijk meer resources uiteindelijk).
In dat geval is je huidige code (op wat checks na) gewoon goed en moet je zelf even testen of je for of foreach gebruikt.

Bij je foreach kun je $k weghalen aangezien je die niet gebruikt.
Het verschil is snelheid is er nauwelijks momenteel bij mijn kleine testcase, maar hoe meer er in de array zit hoe meer foreach volgens mij aan geheugen kost omdat die een kopie van de array maakt, dan is for volgens mij gewoon beter, ook omdat de keys altijd een index zijn.
Stroek: Sitethief, die is heel groot en sterk :Y.
Faat: *zucht* zoals gewoonlijk hoor Sitethief weer in de bocht &gt;:)
pi_138648505
quote:
0s.gif Op dinsdag 8 april 2014 13:44 schreef Sitethief het volgende:

[..]

Het verschil is snelheid is er nauwelijks momenteel bij mijn kleine testcase, maar hoe meer er in de array zit hoe meer foreach volgens mij aan geheugen kost omdat die een kopie van de array maakt, dan is for volgens mij gewoon beter, ook omdat de keys altijd een index zijn.
Doe een foreach by reference.
Nadeel van for is de count($array), hier maakt hij ook een kopie bij aan. en bij de foreach dus niet.
  dinsdag 8 april 2014 @ 14:25:51 #19
25889 Sitethief
Fulltime Flapdrol
pi_138649964
quote:
0s.gif Op dinsdag 8 april 2014 13:48 schreef totalvamp het volgende:

[..]

Doe een foreach by reference.
Nadeel van for is de count($array), hier maakt hij ook een kopie bij aan. en bij de foreach dus niet.
Ik vind reference altijd een redelijk lastig concept :X , dus ik denk dat ik het bij de for loop houd voor nu.

Trouwens, ik kan dat niet terug vinden wat jij zegt over count. Wel dat dat aantal opgeslagen is bij de array zelf. (zie o.a. http://stackoverflow.com/(...)-o1-or-on-for-arrays)

[ Bericht 16% gewijzigd door Sitethief op 08-04-2014 14:34:20 ]
Stroek: Sitethief, die is heel groot en sterk :Y.
Faat: *zucht* zoals gewoonlijk hoor Sitethief weer in de bocht &gt;:)
pi_138650220
quote:
0s.gif Op dinsdag 8 april 2014 14:25 schreef Sitethief het volgende:

[..]

Ik vind reference altijd een redelijk lastig concept :X , dus ik denk dat ik het bij de for loop houd voor nu.
Hoezo lastig? je hoeft er alleen een & voor te zetten :P
  dinsdag 8 april 2014 @ 14:35:08 #21
25889 Sitethief
Fulltime Flapdrol
pi_138650324
quote:
0s.gif Op dinsdag 8 april 2014 14:32 schreef totalvamp het volgende:

[..]

Hoezo lastig? je hoeft er alleen een & voor te zetten :P
Ik kijk er dan twee weken later over heen dat er & staat als ik die functie ga gebruiken en rare dingen zie gebeuren :D. Goed documenteren dus :P.
Stroek: Sitethief, die is heel groot en sterk :Y.
Faat: *zucht* zoals gewoonlijk hoor Sitethief weer in de bocht &gt;:)
pi_138650523
quote:
0s.gif Op dinsdag 8 april 2014 14:35 schreef Sitethief het volgende:

[..]

Ik kijk er dan twee weken later over heen dat er & staat als ik die functie ga gebruiken en rare dingen zie gebeuren :D. Goed documenteren dus :P.
Ja je moet wel oppassen met referenties :P

Als je echt veel data gaat gebruiken zou ik adviseren dit even door te lezen:

http://matthewturland.com/2010/05/20/new-spl-features-in-php-5-3/
  dinsdag 8 april 2014 @ 14:47:11 #23
25889 Sitethief
Fulltime Flapdrol
pi_138650723
quote:
0s.gif Op dinsdag 8 april 2014 14:40 schreef totalvamp het volgende:

[..]

Ja je moet wel oppassen met referenties :P

Als je echt veel data gaat gebruiken zou ik adviseren dit even door te lezen:

http://matthewturland.com/2010/05/20/new-spl-features-in-php-5-3/
Oh boy :D , ik had al een keertje een ArrayIterator gebruikt ergens. Heap klinkt erg interessant voor een aantal dingen die ik wil doen :D.
Stroek: Sitethief, die is heel groot en sterk :Y.
Faat: *zucht* zoals gewoonlijk hoor Sitethief weer in de bocht &gt;:)
pi_138650801
quote:
0s.gif Op dinsdag 8 april 2014 14:47 schreef Sitethief het volgende:

[..]

Oh boy :D , ik had al een keertje een ArrayIterator gebruikt ergens. Heap klinkt erg interessant voor een aantal dingen die ik wil doen :D.
Ja staat leuke info bij :D wel wat hoger niveau, maar juist leuk om nieuwe dingen te leren.
Ik heb er zelf nog geen gebruik van hoeven maken, misschien kan ik bij mijn huidige werk wat dingen implementeren ooit :P
pi_138714084
Ik ben bezig met een project om mijn slimme meter uit te lezen en maak hier vervolgens een grafiek van.

Ik krijg de resultaten te zien als:
0000.00

Dus 0000.38 is 380 Watt
Dus 0012.21 is 12210 Watt

Met welke functie kan je deze getallen omzetten?

[ Bericht 1% gewijzigd door xaban06 op 10-04-2014 00:10:30 ]
pi_138714173
quote:
0s.gif Op donderdag 10 april 2014 00:02 schreef xaban06 het volgende:
Ik ben bezig met een project om mijn slimme meter uit te lezen en maak hier vervolgens een grafiek van.

Ik krijg de resultaten te zien als:
0000.00

Dus 0000.38 is 380 Watt
Dus 0012.21 is 12210 Watt

Met welke PHP kan je deze getallen omzetten?
1
2
3
<?php
echo '0000.38' 1000;
?>
pi_138714220
quote:
0s.gif Op donderdag 10 april 2014 00:05 schreef Light het volgende:

[..]
[ code verwijderd ]

Whuuut, zo simpel :D

Thanks.
pi_138714525
quote:
0s.gif Op donderdag 10 april 2014 00:07 schreef xaban06 het volgende:

[..]

Whuuut, zo simpel :D

Thanks.
Het is basis wiskunde :P

daarnaast staat er een fout in de code van light. Getallen zijn niet met quotes.
pi_138714547
quote:
0s.gif Op donderdag 10 april 2014 00:17 schreef totalvamp het volgende:

[..]

Het is basis wiskunde :P

daarnaast staat er een fout in de code van light. Getallen zijn niet met quotes.


Huidig verbruik in Watt :P Alleen klopt de tijd niet op de server zie ik net, loopt 2 uur achter :D
pi_138714637
quote:
0s.gif Op donderdag 10 april 2014 00:18 schreef xaban06 het volgende:

[..]

[ afbeelding ]

Huidig verbruik in Watt :P Alleen klopt de tijd niet op de server zie ik net, loopt 2 uur achter :D
Je kunt gebruik maken van DateTime object. Of gewoon 2 uur toevoegen aan de tijd.
pi_138714650
quote:
0s.gif Op donderdag 10 april 2014 00:21 schreef totalvamp het volgende:

[..]

Je kunt gebruik maken van DateTime object. Of gewoon 2 uur toevoegen aan de tijd.
Ik ga zo ntp installeren, tijd moet gewoon kloppen op de server :)
pi_138714669
quote:
0s.gif Op donderdag 10 april 2014 00:22 schreef xaban06 het volgende:

[..]

Ik ga zo ntp installeren, tijd moet gewoon kloppen op de server :)
Misschien klopt het wel, in welke tijdszone staat de server?
pi_138714702
quote:
0s.gif Op donderdag 10 april 2014 00:23 schreef totalvamp het volgende:

[..]

Misschien klopt het wel, in welke tijdszone staat de server?
In de meterkast :D Draait op een Raspberry Pi. Zo eens de tijdzone checken.

/UTC dus. Even corrigeren :)
pi_138714765
quote:
0s.gif Op donderdag 10 april 2014 00:24 schreef xaban06 het volgende:

[..]

In de meterkast :D Draait op een Raspberry Pi. Zo eens de tijdzone checken.
je kunt in php de tijdszone zetten,mocht je dat ooit willen :P

1
2
3
<?php
date_default_timezone_set
('Europe/Amsterdam');
?>
pi_138714783
quote:
0s.gif Op donderdag 10 april 2014 00:26 schreef totalvamp het volgende:

[..]

je kunt in php de tijdszone zetten,mocht je dat ooit willen :P
[ code verwijderd ]

Cool.

1
2
3
4
5
6
7
8
9
10
11
pi@raspberrypi ~/php $ sudo dpkg-reconfigure tzdata

Current default time zone: 'Europe/Amsterdam'
Local time is now:      Thu Apr 10 00:26:25 CEST 2014.
Universal Time is now:  Wed Apr  9 22:26:25 UTC 2014.

pi@raspberrypi ~/php $ date +%Z
CEST
pi@raspberrypi ~/php $ uptime
 00:26:38 up  1:00,  2 users,  load average: 0.33, 0.19, 0.16
pi@raspberrypi ~/php $
Gecorrigeerd :P
  donderdag 10 april 2014 @ 07:04:07 #36
187069 slacker_nl
Sicko pur sang
pi_138716311
In PHP zijn references raar.
PHP gebruikt copy on write, dus je passed altijd een ref naar een functie, dus in je foreach/for loop heb je alleen maar refs, tenzij je de waardes van de array waarin je loopt aanpast. Als je kan, wilt, gebruik cursors om je data op te halen.
In theory there is no difference between theory and practice. In practice there is.
pi_138716753
quote:
0s.gif Op donderdag 10 april 2014 00:17 schreef totalvamp het volgende:

[..]

Het is basis wiskunde :P

daarnaast staat er een fout in de code van light. Getallen zijn niet met quotes.
Maar als je ze vanaf een externe bron inleest, zijn het meestal wel strings.
  donderdag 10 april 2014 @ 10:58:47 #38
25889 Sitethief
Fulltime Flapdrol
pi_138719830
quote:
0s.gif Op donderdag 10 april 2014 07:04 schreef slacker_nl het volgende:
In PHP zijn references raar.
PHP gebruikt copy on write, dus je passed altijd een ref naar een functie, dus in je foreach/for loop heb je alleen maar refs, tenzij je de waardes van de array waarin je loopt aanpast. Als je kan, wilt, gebruik cursors om je data op te halen.
Ik neem aan dat deze post over mijn posts gaat :P .
Ik kwam er ook achter dat je naderhand de waardes in de foreach moet unsetten als je de array gereferenced hebt , anders gebeuren er soms rare dingen.
Stroek: Sitethief, die is heel groot en sterk :Y.
Faat: *zucht* zoals gewoonlijk hoor Sitethief weer in de bocht &gt;:)
pi_138721389
quote:
0s.gif Op donderdag 10 april 2014 10:58 schreef Sitethief het volgende:

[..]

Ik neem aan dat deze post over mijn posts gaat :P .
Ik kwam er ook achter dat je naderhand de waardes in de foreach moet unsetten als je de array gereferenced hebt , anders gebeuren er soms rare dingen.
Je zou maar zo'n bug moeten vinden in een bestand met meer dan 2000 regels niet OO code :'( heb ik een keer mee mogen maken.
  donderdag 10 april 2014 @ 12:44:05 #40
187069 slacker_nl
Sicko pur sang
pi_138723052
quote:
0s.gif Op donderdag 10 april 2014 10:58 schreef Sitethief het volgende:

[..]

Ik neem aan dat deze post over mijn posts gaat :P .
Ik kwam er ook achter dat je naderhand de waardes in de foreach moet unsetten als je de array gereferenced hebt , anders gebeuren er soms rare dingen.
Ja, zat mobiel en geen zin om te quoten ;)

Volgens mij wil je niet gaan referencen in PHP. Ik heb er ooit mee lopen spelen, maar ik kreeg er hoofdpijn van.
In theory there is no difference between theory and practice. In practice there is.
pi_138734247
weet iemand hoe dit kan? ik krijg steeds de volgende error: ERROR_CODE_22001 (22001) SQLSTATE[22001]: String data, right truncated: 1406 Data too long for column 'title' at row 1

title is in mysql "varchar(300) utf8_unicode_ci" en ik gebruik een utf8 aware substring functie om hem te verkleinen :?
..///
pi_138734375
quote:
0s.gif Op donderdag 10 april 2014 18:03 schreef wipes66 het volgende:
weet iemand hoe dit kan? ik krijg steeds de volgende error: ERROR_CODE_22001 (22001) SQLSTATE[22001]: String data, right truncated: 1406 Data too long for column 'title' at row 1

title is in mysql "varchar(300) utf8_unicode_ci" en ik gebruik een utf8 aware substring functie om hem te verkleinen :?
En hoe lang is de data die je in de kolom title wilt stoppen?

Uit m'n hoofd weigert MySQL 5.5 data als het niet past, waar eerdere versies de data gewoon truncaten en je dat niet vertellen. Je kunt dat bij MySQL 5.5 nog wel instellen (maar de vraag is of je dat moet willen).
pi_138736054
quote:
0s.gif Op donderdag 10 april 2014 18:09 schreef Light het volgende:

[..]

En hoe lang is de data die je in de kolom title wilt stoppen?

Uit m'n hoofd weigert MySQL 5.5 data als het niet past, waar eerdere versies de data gewoon truncaten en je dat niet vertellen. Je kunt dat bij MySQL 5.5 nog wel instellen (maar de vraag is of je dat moet willen).
330, maar 200 als utf8. daarom snap ik niet waarom mysql deze error geeft ;(
..///
  vrijdag 11 april 2014 @ 08:52:00 #44
187069 slacker_nl
Sicko pur sang
pi_138754267
In theory there is no difference between theory and practice. In practice there is.
  vrijdag 11 april 2014 @ 08:53:39 #45
25889 Sitethief
Fulltime Flapdrol
pi_138754304
quote:
0s.gif Op donderdag 10 april 2014 12:44 schreef slacker_nl het volgende:

[..]

Ja, zat mobiel en geen zin om te quoten ;)

Volgens mij wil je niet gaan referencen in PHP. Ik heb er ooit mee lopen spelen, maar ik kreeg er hoofdpijn van.
Inderdaad ik ook :P.
Stroek: Sitethief, die is heel groot en sterk :Y.
Faat: *zucht* zoals gewoonlijk hoor Sitethief weer in de bocht &gt;:)
  vrijdag 11 april 2014 @ 08:57:37 #46
25889 Sitethief
Fulltime Flapdrol
pi_138754363
quote:
0s.gif Op donderdag 10 april 2014 11:51 schreef totalvamp het volgende:

[..]

Je zou maar zo'n bug moeten vinden in een bestand met meer dan 2000 regels niet OO code :'( heb ik een keer mee mogen maken.
Zoiets schreef ik 5 jaar geleden, gelukkig vandaag de dag niet meer :X
Stroek: Sitethief, die is heel groot en sterk :Y.
Faat: *zucht* zoals gewoonlijk hoor Sitethief weer in de bocht &gt;:)
pi_138755657
quote:
ja dat is hem ;( ik gebruik pdo en alles zit dus dubbel utf8 encoded in de database zonder dat ik het door had :?
..///
  vrijdag 11 april 2014 @ 10:20:54 #48
187069 slacker_nl
Sicko pur sang
pi_138756097
quote:
0s.gif Op vrijdag 11 april 2014 10:04 schreef wipes66 het volgende:

[..]

ja dat is hem ;( ik gebruik pdo en alles zit dus dubbel utf8 encoded in de database zonder dat ik het door had :?
Nee, je stuurt er LATIN1 naartoe, dus is de lengte van je string 330.
In theory there is no difference between theory and practice. In practice there is.
pi_138757435
quote:
0s.gif Op vrijdag 11 april 2014 10:20 schreef slacker_nl het volgende:

[..]

Nee, je stuurt er LATIN1 naartoe, dus is de lengte van je string 330.
uhm? alles aan php zijde is gewoon utf8, inclusief chinese tekens. alleen pdo of mysql ging er van uit (gok ik) dat ik iso-8859 instuurde en dus werd het dubbel utf8.

[ Bericht 16% gewijzigd door wipes66 op 11-04-2014 12:01:42 ]
..///
  FOK!mycroftheld dinsdag 15 april 2014 @ 17:23:23 #50
128465 verified  bondage
Ingewikkeld
pi_138912146
Is dit netjes om te doen?

1
2
3
<?php
throw new Exception(serialize(array('error_id' => $error_id'error_vars' => $err_vars)));
?>

Het is namelijk niet mogelijk om een array aan een exception mee te geven en ik moet meerdere parameters aan de uiteindelijke foutmelding toe kunnen voegen.

Zo niet; is er een andere manier om dit te fixen?
  Moderator / Redactie Sport / Devops dinsdag 15 april 2014 @ 17:27:52 #51
176766 zoem
zoemt
pi_138912326
Extenden met een eigen exception class?
  FOK!mycroftheld dinsdag 15 april 2014 @ 17:38:55 #52
128465 verified  bondage
Ingewikkeld
pi_138912744
quote:
0s.gif Op dinsdag 15 april 2014 17:27 schreef zoem het volgende:
Extenden met een eigen exception class?
Die mogelijkheid had ik al iets over gevonden, ik kwam echter niets tegen over het omzetten van de array naar een string en kon daardoor lastig een conclusie trekken wat beter zou zijn. Jij zou dus voor extenden gaan als ik het goed begrijp.
  Moderator / Redactie Sport / Devops dinsdag 15 april 2014 @ 17:53:26 #53
176766 zoem
zoemt
pi_138913212
Ik ken de context ook verder niet, maar dit kwam als eerste in me op.
  FOK!mycroftheld dinsdag 15 april 2014 @ 17:56:09 #54
128465 verified  bondage
Ingewikkeld
pi_138913282
Ik ga hem extenden. Is het onderscheid ook duidelijker.
  dinsdag 15 april 2014 @ 21:26:04 #55
187069 slacker_nl
Sicko pur sang
pi_138922370
In theory there is no difference between theory and practice. In practice there is.
  woensdag 16 april 2014 @ 08:46:23 #56
25889 Sitethief
Fulltime Flapdrol
pi_138933114
"Debugging is twice as hard as writing the code in the first place. Therefore, if you write the code as cleverly as possible, you are, by definition, not smart enough to debug it." - Kernighan's Law

_O- .
Stroek: Sitethief, die is heel groot en sterk :Y.
Faat: *zucht* zoals gewoonlijk hoor Sitethief weer in de bocht &gt;:)
pi_138938884
quote:
11s.gif Op dinsdag 15 april 2014 17:23 schreef bondage het volgende:
Is dit netjes om te doen?
[ code verwijderd ]

Het is namelijk niet mogelijk om een array aan een exception mee te geven en ik moet meerdere parameters aan de uiteindelijke foutmelding toe kunnen voegen.

Zo niet; is er een andere manier om dit te fixen?
Dan schrijf je toch je eigen error handler die dat wel aan kan?
  FOK!mycroftheld woensdag 16 april 2014 @ 13:13:28 #58
128465 verified  bondage
Ingewikkeld
pi_138939774
quote:
0s.gif Op woensdag 16 april 2014 12:42 schreef totalvamp het volgende:

[..]

Dan schrijf je toch je eigen error handler die dat wel aan kan?
Allang gedaan *)
pi_138939802
quote:
14s.gif Op woensdag 16 april 2014 13:13 schreef bondage het volgende:

[..]

Allang gedaan *)
Geen code om te tonen dan :P?
  FOK!mycroftheld woensdag 16 april 2014 @ 13:49:21 #60
128465 verified  bondage
Ingewikkeld
pi_138941012
quote:
0s.gif Op woensdag 16 april 2014 13:14 schreef totalvamp het volgende:

[..]

Geen code om te tonen dan :P?
Nu niet, ben nu op kantoor.
  FOK!mycroftheld woensdag 16 april 2014 @ 23:39:25 #61
128465 verified  bondage
Ingewikkeld
pi_138965279
Hierbij

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
<?php
class statsOutputException extends Exception {
    private 
$error_id 0;          # intern numeriek id van de fout
    
private $error_vars = array();  # array met fout eigenschappen
    
    
public function __construct($error_params$code 0Exception $previous null) {
        
# check of het een array met waarden betreft
        
if(is_array($error_params)) {
            
$this->error_id = isset($error_params['id']) ? $error_params['id'] : null;
            
$this->error_vars = (isset($error_params['vars']) && is_array($error_params['vars'])) ? $error_params['vars'] : array();
        }else{
            
# input is string of int, handel op de normale manier af
            
$this->error_id $error_params;
        }
        
        
# roep Exception contructor aan
        
parent::__construct($this->error_id$code$previous);
    }
    
    
# geeft de vars terug welke de foutcode aanvullen met eventuele extra gegevens
    
public function getErrorVars() {
        return 
$this->error_vars;
    }
}
?>
  vrijdag 18 april 2014 @ 11:06:51 #62
37634 wobbel
Da WoBBeL King
pi_139006234
Help :P ik heb weer eens iets raars nodig. Het is mij ooit al gelukt, maarja waarom zou je zoiets dan bewaren.

Vanaf een leverancier wordt er naar ons XML gepusht (dmv POST) naar http://server.tld/test.php. Dit gebeurd zonder variable naam.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<?xml_version "1.0" encoding="UTF-8" ?>
        <message>
                <messageheader>
                        <debug>false</debug>
                        <msgtype>incoming</msgtype>
                        <msgversion>1.0</msgversion>
                        <msgidentifier></msgidentifier>
                        <errorcode>0</errorcode>
                        <errorcodedescription>ok</errorcodedescription>
                        <msgdatetime>2014-04-18T11:02:55</msgdatetime>
                </messageheader>
                <messagebody>
                        <clip>200</clip>
                        <did></did>
                        <extension>200</extension>
                        <prefix>Roy</prefix>
                </messagebody>
        </message>

Hoe kan ik dit met PHP afvangen? Een foreach met alle POSTS vars blijft angstvallig leeg.
Als ik de contents van phpinfo(); naar mijzelf mail krijg ik het volgende:



Dit wil zeggen dat ik met $_POST['<?xml_version'] wel de data op zou kunnen halen, en er later weer '<?xml_version' voor kan plakken maar helemaal netjes lijkt het mij niet.
  vrijdag 18 april 2014 @ 11:11:44 #63
91039 mstx
2x1/2 = 1/2 x 1/2
pi_139006353
quote:
0s.gif Op vrijdag 18 april 2014 11:06 schreef wobbel het volgende:
Help :P ik heb weer eens iets raars nodig. Het is mij ooit al gelukt, maarja waarom zou je zoiets dan bewaren.

Vanaf een leverancier wordt er naar ons XML gepusht (dmv POST) naar http://server.tld/test.php. Dit gebeurd zonder variable naam.
[ code verwijderd ]

Hoe kan ik dit met PHP afvangen? Een foreach met alle POSTS vars blijft angstvallig leeg.
file_get_contents("php://input") ?
Op donderdag 2 juli 2009 22:41 schreef RTB het volgende:
als ik elk rap"liedje" een kans moest geven was ik aan het eind van dit millennium nog bezig met het tempo waarin die kotshoop uitgebraakt wordt.
👾
  vrijdag 18 april 2014 @ 11:20:00 #64
37634 wobbel
Da WoBBeL King
pi_139006551
quote:
0s.gif Op vrijdag 18 april 2014 11:11 schreef mstx het volgende:

[..]

file_get_contents("php://input") ?
_O_ dat was 't!!! Me love u long time
pi_139097005
Ik ben op zoek naar een PHP library waarmee ik een soort mini-forumpje kan maken, zonder veel poespas, zoals phpBB.

Een beetje dit idee:



Ik wil het gebruiken als een soort berichtenprikbord waar iedereen berichtjes op kan plaatsen. Dus geen commentsystem.
pi_139098911
Moet je beter zoeken. Er zijn echt volop van dit soort dingen. :)
pi_139102129
Succes!
  maandag 21 april 2014 @ 09:34:11 #68
12221 Tijn
Powered by MS Paint
pi_139102315
quote:
0s.gif Op zondag 20 april 2014 23:56 schreef pascal08 het volgende:
Ik ben op zoek naar een PHP library waarmee ik een soort mini-forumpje kan maken, zonder veel poespas, zoals phpBB.

Een beetje dit idee:

[ afbeelding ]

Ik wil het gebruiken als een soort berichtenprikbord waar iedereen berichtjes op kan plaatsen. Dus geen commentsystem.
Waarom gebruik je niet gewoon Disqus zelf?
  FOK!-Schrikkelbaas maandag 21 april 2014 @ 09:35:46 #69
1972 Swetsenegger
Egocentrische Narcist
pi_139102334
Dus eigenlijk wil je een gastenboek?
pi_139110219
quote:
5s.gif Op maandag 21 april 2014 09:35 schreef Swetsenegger het volgende:
Dus eigenlijk wil je een gastenboek?
Ongeveer wel ja.
pi_139110332
quote:
5s.gif Op maandag 21 april 2014 09:34 schreef Tijn het volgende:

[..]

Waarom gebruik je niet gewoon Disqus zelf?
Omdat daar een heel gebeuren aan vastzit wat ik helemaal niet nodig heb.
  maandag 21 april 2014 @ 21:45:15 #72
12221 Tijn
Powered by MS Paint
pi_139126974
quote:
0s.gif Op maandag 21 april 2014 15:08 schreef pascal08 het volgende:

[..]

Omdat daar een heel gebeuren aan vastzit wat ik helemaal niet nodig heb.
Valt wel mee toch? Gewoon een accountje maken, includen op de pagina waar je het hebben wil en klaar is kees :)
  dinsdag 22 april 2014 @ 09:03:13 #73
166255 Maringo
Bèhèhèhèh
pi_139137550
quote:
5s.gif Op maandag 21 april 2014 21:45 schreef Tijn het volgende:

[..]

Valt wel mee toch? Gewoon een accountje maken, includen op de pagina waar je het hebben wil en klaar is kees :)
Accountje aanmaken is voor veel mensen een dergelijke grote stap dat ze het maat laten zitten. Leuk voorbeeld is de case van Amazon die het account aanmaken niet meer verplicht stelde vooraf de aankoop.
Die volg topic-knop hè...
Op 02-06-2014 16:38 schreef Moeraskat
Je bent te goed voor de mensheid.
  dinsdag 22 april 2014 @ 09:18:37 #74
12221 Tijn
Powered by MS Paint
pi_139137797
quote:
1s.gif Op dinsdag 22 april 2014 09:03 schreef Maringo het volgende:

[..]

Accountje aanmaken is voor veel mensen een dergelijke grote stap dat ze het maat laten zitten. Leuk voorbeeld is de case van Amazon die het account aanmaken niet meer verplicht stelde vooraf de aankoop.
Ik bedoelde de moeite die het kost om het te installeren. Reageren kan volgens mij ook zonder account.
pi_139155907
quote:
5s.gif Op maandag 21 april 2014 21:45 schreef Tijn het volgende:

[..]

Valt wel mee toch? Gewoon een accountje maken, includen op de pagina waar je het hebben wil en klaar is kees :)
Dat is gewoon niet wat ik zoek. Ik heb zelf inmiddels al een code geschreven. Kostte uiteindelijk minder moeite dan een geschikte library vinden. :{
pi_139156103
quote:
0s.gif Op dinsdag 22 april 2014 19:51 schreef pascal08 het volgende:

[..]

Dat is gewoon niet wat ik zoek. Ik heb zelf inmiddels al een code geschreven. Kostte uiteindelijk minder moeite dan een geschikte library vinden. :{
:P Ik betwijfel het, maar goed dat je voorzien bent nu ^O^
pi_139161554
quote:
Interessante praatjes zijn dat :)
  FOK!mycroftheld vrijdag 25 april 2014 @ 22:56:05 #78
128465 verified  bondage
Ingewikkeld
pi_139265769
Ik zit al een tijd met mijn handen in het haar betreft de FOK!vriendjes module welke ik sinds kort in het FOK!stats script heb zitten. Het probleem is dat deze erg traag is, het probleem zit in het PHP script welke blijkbaar struggles heeft met de grote hoeveelheid data welke verwerkt moet worden.

Het script doet het volgende:
1. Haal alle topic-id's op waar de ingevoerde gebruiker heeft gereageerd
2. Haal alle posts behorende bij de topic-id's op in delen van 32 topics, dit omdat Sphinx is ingesteld op max 10.000 resultaten
3. Loop over alle posts en voeg de bijbehorende topic-id's toe aan een array welke de unieke topic's per gebruiker gevat.

Uit bovenstaande stappen hou je uiteindelijk een lijst over van alle topics waar andere gebruikers samen met de ingevoerde gebruiker hebben gereageerd.

Zie het volgende stukje code, de array $resultaat["matches"] (afkomstig uit Sphinx) bevat alle unieke topic-id's waar de ingevoerde gebruiker gereageerd heeft.

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
if(!empty($resultaat["matches"])) {
    
$current_count 0;
    
$topic_ids = array();
    
$users_topics = array();

    
$this->cl->resetGroupBy();
    
    
# loop over de gevonden topic-id's
    
foreach($resultaat["matches"] as $mId => $mData) {
        
$current_count++;
        
$pCounts $mData['attrs'];
        
$topic_ids[] = $pCounts['topic_id'];

        
# verwerk het in stukken van 32 topics zodat het max uit de volgende query nooit boven de 10.000 (max Sphinx) uitkomt met 310 posts per topic gerekend
        
if(count($topic_ids) == 32 || ($current_count == $total_found && !empty($topic_ids))) {
            
$this->cl->resetFilters();
            
$this->cl->SetFilter("topic_id"$topic_ids);
            
$topic_ids = array();
            
$this->cl->SetLimits(01000010000);
            
$resultaat $this->cl->Query(''$this->config['indices']);
            
$total_query_time += $resultaat["time"];

            if(!empty(
$resultaat["matches"])) {
                
# loop over de teruggegeven posts en voeg de topic-id's toe aan de array welke de unieke topics per gebruiker bevat, dit wordt later dvm de count functie toegevoegd aan de lijst welke wordt weergegeven in de tool
                # dit stuk is erg traag en doet er enkele seconden over om een lijst van 15.000 posts te verweken (ingevoerde gebruiker heeft in dit geval in 50 topics gepost)
                
foreach($resultaat["matches"] as $mId => $mData) {
                    if(
$mData['attrs']['auteur_id'] != $auteurId) {
                        if(!isset(
$users_topics[$mData['attrs']['auteur_id']][$mData['attrs']['topic_id']])) {
                            
$users_topics[$mData['attrs']['auteur_id']][$mData['attrs']['topic_id']] = 1;
                        }
                    }
                }
            }
        }
    }
}
?>

Iemand een idee hoe ik het script sneller kan maken? Ik heb er nu een limiet van een maand op zitten omdat het anders veel te traag wordt. Het idee is de topics te verkrijgen waar je samen met iemand hebt gepost. Als je vaak in dezelfde topics als de ingevoerde gebruiker post zul je hoger in de lijst van die gebruiker komen te staan.
  Moderator / Redactie Sport / Devops vrijdag 25 april 2014 @ 23:02:09 #79
176766 zoem
zoemt
pi_139265950
Wat is precies de bottleneck? Om wat voor orde van grootte gaat het in die loops? Zegt bijv. de xdebug profiler iets zinnigs?
  FOK!mycroftheld vrijdag 25 april 2014 @ 23:41:31 #80
128465 verified  bondage
Ingewikkeld
pi_139267277
quote:
0s.gif Op vrijdag 25 april 2014 23:02 schreef zoem het volgende:
Wat is precies de bottleneck? Om wat voor orde van grootte gaat het in die loops? Zegt bijv. de xdebug profiler iets zinnigs?
Bij dit stuk gaat het traag:

1
2
3
4
5
6
7
8
9
<?php
                
foreach($resultaat["matches"] as $mId => $mData) {
                    if(
$mData['attrs']['auteur_id'] != $auteurId) {
                        if(!isset(
$users_topics[$mData['attrs']['auteur_id']][$mData['attrs']['topic_id']])) {
                            
$users_topics[$mData['attrs']['auteur_id']][$mData['attrs']['topic_id']] = 1;
                        }
                    }
                }
?>

Bovenstaande voegt de teruggegeven data uit Sphinx toe aan de array waar de topics per gebruiker staan. Het gaat hier om losse posts, als een gebruiker in bijvoorbeeld 50 topics heeft gepost binnen een gekozen periode dan komt dat neer op ongeveer 15050 posts, ervan uitgaande dat er binnen elk topic 301 posts (incl. OP) staan.

Er zijn in dit geval dus 15050 loops nodig om alles bij langs te gaan, het meest trage is de isset en het toevoegen van de gegevens aan de array. Als dit dus op een andere, snellere manier zou kunnen dan zou dat een grote winst zijn aangezien ik de maximaal te selecteren periode dan kan ophogen, dit is nu een maand.

De overige stats worden allemaal door Sphinx zelf gegenereerd en dat gaat veel sneller. Deze statistiek is echter niet volledig te doen in Sphinx omdat ik op twee waarden moet groeperen, namelijk user_id en topic_id, dit omdat de topic-id's slechts één keer per gebruiker mogen worden geteld.

Een andere optie welke ik heb overwogen is het toevoegen van een gecombineerde waarde (user_id+topic_id) aan de index en daarop groeperen in de Sphinx query. Deze methode maakt de index echter significant groter en kost meer geheugen waar ik al niet teveel van heb in mijn server.

xdebug heb ik nog niet geprobeerd en heb ik ook geen ervaring mee. Ik ga daar ff naar kijken.
pi_139272487
1
2
3
4
5
6
7
8
9
<?php
                
foreach($resultaat["matches"] as $mId => $mData) {
                    if(
$mData['attrs']['auteur_id'] != $auteurId) {
                        if(!isset(
$users_topics[$mData['attrs']['auteur_id']][$mData['attrs']['topic_id']])) {
                            
$users_topics[$mData['attrs']['auteur_id']][$mData['attrs']['topic_id']] = 1;
                        }
                    }
                }
?>

Hier vallen me een paar dingen op. Om te beginnen ben ik benieuwd wat er in $auteurId staat en waarom er een != wordt gebruikt voor die vergelijking. Verder heb je de isset()-check niet nodig. Je set de waarde op 1, en als die toevallig al geset was, verandert er niets. En je benadert (ook zonder isset()) $mData['attrs']['auteur_id'] meerdere keren. Niet fout, maar ik zou er een variabele van maken (en dat waarschijnlijk ook doen voor $mData['attrs']['topic_id']), al was het maar voor een betere leesbaarheid.
  zaterdag 26 april 2014 @ 10:36:15 #82
166255 Maringo
Bèhèhèhèh
pi_139273421
quote:
0s.gif Op zaterdag 26 april 2014 09:31 schreef Light het volgende:

[ code verwijderd ]

Hier vallen me een paar dingen op. Om te beginnen ben ik benieuwd wat er in $auteurId staat en waarom er een != wordt gebruikt voor die vergelijking. Verder heb je de isset()-check niet nodig. Je set de waarde op 1, en als die toevallig al geset was, verandert er niets. En je benadert (ook zonder isset()) $mData['attrs']['auteur_id'] meerdere keren. Niet fout, maar ik zou er een variabele van maken (en dat waarschijnlijk ook doen voor $mData['attrs']['topic_id']), al was het maar voor een betere leesbaarheid.
Ik denk dat in het eerste if statement met de $auteurId wordt gekeken of de post niet van degene zelf is.

Die lijkt mij onhandig. De enkele keer dat ie nuttig is, weegt niet op tegen de keren dat ie niet nuttig is. Mijn idee is om die eruit te halen en eventueel na de foreach loop die ene entry uit $users_topics ($users_topics[$auteurId]) te halen.

[ Bericht 19% gewijzigd door Maringo op 26-04-2014 11:03:51 ]
Die volg topic-knop hè...
Op 02-06-2014 16:38 schreef Moeraskat
Je bent te goed voor de mensheid.
  zaterdag 26 april 2014 @ 11:55:11 #83
187069 slacker_nl
Sicko pur sang
pi_139275033
quote:
11s.gif Op vrijdag 25 april 2014 22:56 schreef bondage het volgende:
Het script doet het volgende:
1. Haal alle topic-id's op waar de ingevoerde gebruiker heeft gereageerd
2. Haal alle posts behorende bij de topic-id's op in delen van 32 topics, dit omdat Sphinx is ingesteld op max 10.000 resultaten
3. Loop over alle posts en voeg de bijbehorende topic-id's toe aan een array welke de unieke topic's per gebruiker gevat.
Kan je deze logica niet veel beter in je SQL oplossen, dat lijkt me vele malen sneller dan het oplossen in PHP.
In theory there is no difference between theory and practice. In practice there is.
  FOK!mycroftheld zaterdag 26 april 2014 @ 16:03:52 #84
128465 verified  bondage
Ingewikkeld
pi_139279644
quote:
0s.gif Op zaterdag 26 april 2014 09:31 schreef Light het volgende:

[ code verwijderd ]

Hier vallen me een paar dingen op. Om te beginnen ben ik benieuwd wat er in $auteurId staat en waarom er een != wordt gebruikt voor die vergelijking. Verder heb je de isset()-check niet nodig. Je set de waarde op 1, en als die toevallig al geset was, verandert er niets. En je benadert (ook zonder isset()) $mData['attrs']['auteur_id'] meerdere keren. Niet fout, maar ik zou er een variabele van maken (en dat waarschijnlijk ook doen voor $mData['attrs']['topic_id']), al was het maar voor een betere leesbaarheid.
In $auteurId staat het id van de user welke de post heeft geplaatst, aangezien ik de posts van degene waar op wordt gezocht wil negeren (wat Maringo al aangaf) gebruik ik die vergelijking.

Die isset is idd niet nodig, dom dat ik me dat niet eerder had gerealiseerd aangezien ik heel goed weet dat het in dit geval geen effect op de resulterende array heeft. Ik haal deze sowieso weg.

De waarden in $mData['attrs']['auteur_id'] en $mData['attrs']['topic_id'] zet ik in een variable, zelfs al levert het maar weinig op ben ik al blij.

In ieder geval heel erg bedankt voor het meedenken.
  FOK!mycroftheld zaterdag 26 april 2014 @ 16:06:01 #85
128465 verified  bondage
Ingewikkeld
pi_139279690
quote:
2s.gif Op zaterdag 26 april 2014 10:36 schreef Maringo het volgende:
Mijn idee is om die eruit te halen en eventueel na de foreach loop die ene entry uit $users_topics ($users_topics[$auteurId]) te halen.
Dank. Ik ga het ff aanpassen en checken of het winst oplevert :)

quote:
0s.gif Op zaterdag 26 april 2014 11:55 schreef slacker_nl het volgende:

[..]

Kan je deze logica niet veel beter in je SQL oplossen, dat lijkt me vele malen sneller dan het oplossen in PHP.
Geprobeerd, met de volgende query:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
SELECT COUNT(*), naam FROM (
   SELECT fok_user.naam, `fok_post`.auteur  
   FROM `fok_post` 
   RIGHT JOIN (
      SELECT DISTINCT topicid FROM `fok_post` 
      WHERE `auteur` = 128465
      AND `fok_post`.`tijdstip` BETWEEN UNIX_TIMESTAMP('2014-04-01 00:00:01') AND UNIX_TIMESTAMP('2014-04-26 23:59:59')
      AND `fok_post`.`year` = 2014
   ) AS t ON (`fok_post`.topicid = t.topicid)
   JOIN fok_user ON `fok_post`.auteur = fok_user.id
   WHERE  `fok_post`.auteur != 128465
   GROUP BY `fok_post`.auteur, `fok_post`.topicid
) AS u
GROUP BY auteur
ORDER BY COUNT(*) DESC
LIMIT 100

Helaas een stuk trager dan mijn PHP oplossing ;(

[ Bericht 61% gewijzigd door bondage op 26-04-2014 16:11:06 ]
pi_139280489
quote:
14s.gif Op zaterdag 26 april 2014 16:03 schreef bondage het volgende:

[..]

In $auteurId staat het id van de user welke de post heeft geplaatst, aangezien ik de posts van degene waar op wordt gezocht wil negeren (wat Maringo al aangaf) gebruik ik die vergelijking.

Die isset is idd niet nodig, dom dat ik me dat niet eerder had gerealiseerd aangezien ik heel goed weet dat het in dit geval geen effect op de resulterende array heeft. Ik haal deze sowieso weg.

De waarden in $mData['attrs']['auteur_id'] en $mData['attrs']['topic_id'] zet ik in een variable, zelfs al levert het maar weinig op ben ik al blij.

In ieder geval heel erg bedankt voor het meedenken.
Ahja, je wilt een overzicht van vriendjes maken. Hoe moet ik dat zien? Een lijst van users die in dezelfde topics gepost hebben?
  zaterdag 26 april 2014 @ 17:20:05 #87
166255 Maringo
Bèhèhèhèh
pi_139280907
quote:
0s.gif Op zaterdag 26 april 2014 16:58 schreef Light het volgende:

[..]

Ahja, je wilt een overzicht van vriendjes maken. Hoe moet ik dat zien? Een lijst van users die in dezelfde topics gepost hebben?
Klopt. Zo is dit mijn lijstje wat ie eens op verzoek maakte:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
142 Rezania
139 d4v1d
120 Amarantha
118 FL_Freak
118 Lt.Surge
103 SgtPorkbeans
96 LittleBrownie
96 Flippiee
95 gianni61
94 Fopje
91 BBQSausage
85 Bitterlemon
84 Snowbells
74 Roburtt
72 HeaN82

getallen zijn het aantal topics.
Die volg topic-knop hè...
Op 02-06-2014 16:38 schreef Moeraskat
Je bent te goed voor de mensheid.
  FOK!mycroftheld zaterdag 26 april 2014 @ 17:22:27 #88
128465 verified  bondage
Ingewikkeld
pi_139280955
quote:
0s.gif Op zaterdag 26 april 2014 16:58 schreef Light het volgende:

[..]

Ahja, je wilt een overzicht van vriendjes maken. Hoe moet ik dat zien? Een lijst van users die in dezelfde topics gepost hebben?
Exact 8-)
pi_139281132
quote:
14s.gif Op zaterdag 26 april 2014 17:22 schreef bondage het volgende:

[..]

Exact 8-)
Ik heb je query wat herschreven, zonder subqueries en right joins. Ongetest, uiteraard.
1
2
3
4
5
6
7
8
9
10
11
12
13
SELECT count(DISTINCT friend_post.topic_id) cnt, u.naam
FROM fok_user u
INNER JOIN fok_post search_user_post
  ON search_user_post.auteur = 128465
  AND search_user_post.tijdstip BETWEEN UNIX_TIMESTAMP('2014-01-01 00:00:01') AND UNIX_TIMESTAMP('2014-04-26 23:59:59')
  AND search_user_post.year = 2014
INNER JOIN fok_post friend_post
  ON friend_post.auteur = u.id
  AND friend_post.auteur != 128465
  AND friend_post.topic_id = search_user_post.topic_id
GROUP BY u.naam
ORDER BY cnt DESC
LIMIT 100;
  FOK!mycroftheld zaterdag 26 april 2014 @ 17:40:46 #90
128465 verified  bondage
Ingewikkeld
pi_139281234
quote:
0s.gif Op zaterdag 26 april 2014 17:33 schreef Light het volgende:
SELECT count(DISTINCT friend_post.topic_id) cnt, u.naam
FROM fok_user u
INNER JOIN fok_post search_user_post
ON search_user_post.auteur = 128465
AND search_user_post.tijdstip BETWEEN UNIX_TIMESTAMP('2014-01-01 00:00:01') AND UNIX_TIMESTAMP('2014-04-26 23:59:59')
AND search_user_post.year = 2014
INNER JOIN fok_post friend_post
ON friend_post.auteur = u.id
AND friend_post.auteur != 128465
AND friend_post.topic_id = search_user_post.topic_id
GROUP BY u.naam
ORDER BY cnt DESC
LIMIT 100;
Oeh, ik ga hem ff testen.
  FOK!mycroftheld zaterdag 26 april 2014 @ 18:07:29 #91
128465 verified  bondage
Ingewikkeld
pi_139281746
Ik heb de twee query's getest met het volgende resultaat (uiteraard SQL_NO_CACHE toegevoegd):

Jouw query:

Weergave van records 100 - 99 ( 100 totaal, query duurde 0.8366 sec)

1
2
3
4
id     select_type     table     type     possible_keys     key     key_len     ref     rows     Extra
1     SIMPLE     search_user_post     ref     topicid,tijdstip,auteur,year     auteur     4     const     12009     Using where; Using temporary; Using filesort
1     SIMPLE     friend_post     ref     topicid,auteur     topicid     4     fokstats.search_user_post.topicid     100     Using where
1     SIMPLE     u     eq_ref     PRIMARY     PRIMARY     4     fokstats.friend_post.auteur     1

Mijn query:

Weergave van records 100 - 99 ( 100 totaal, query duurde 4.1594 sec)

1
2
3
4
5
6
id     select_type     table     type     possible_keys     key     key_len     ref     rows     Extra
1     PRIMARY     <derived2>     ALL     NULL    NULL    NULL    NULL    2919     Using temporary; Using filesort
2     DERIVED     <derived3>     ALL     NULL    NULL    NULL    NULL    110     Using temporary; Using filesort
2     DERIVED     fok_post     ref     topicid,auteur     topicid     4     t.topicid     100     Using where
2     DERIVED     fok_user     eq_ref     PRIMARY     PRIMARY     4     fokstats.fok_post.auteur     1     
3     DERIVED     fok_post     ref     tijdstip,auteur,year     auteur     4         12008     Using where; Using temporary

Die van jou is een stuk sneller. Ik ga even testen over langere periodes. Als dit goed werkt kan ik dit beter gebruiken dan de PHP oplossing.

[ Bericht 7% gewijzigd door bondage op 26-04-2014 18:18:21 ]
  maandag 28 april 2014 @ 09:40:11 #92
25889 Sitethief
Fulltime Flapdrol
pi_139332178
Is het niet sowieso handiger om zoveel mogelijk het ophalen van de juiste data door een database engine te laten doen ipv dat ik PHP na te gaan bootsen? De database engine zal hierin bijna altijd sneller zijn, tenzij je 10 subqueries ofzo gebruikt.
Stroek: Sitethief, die is heel groot en sterk :Y.
Faat: *zucht* zoals gewoonlijk hoor Sitethief weer in de bocht &gt;:)
  FOK!mycroftheld maandag 28 april 2014 @ 10:27:50 #93
128465 verified  bondage
Ingewikkeld
pi_139333156
quote:
0s.gif Op maandag 28 april 2014 09:40 schreef Sitethief het volgende:
Is het niet sowieso handiger om zoveel mogelijk het ophalen van de juiste data door een database engine te laten doen ipv dat ik PHP na te gaan bootsen? De database engine zal hierin bijna altijd sneller zijn, tenzij je 10 subqueries ofzo gebruikt.
De rest van de stats worden gegenereerd door Sphinx, echter heeft Sphinx niet de mogelijkheid om op meerdere velden te groeperen. Als ik dit volledig in Sphinx zou kunnen doen zou het een stuk sneller gaan.

Maar ik realiseer me nu dat ik dit beter op kan lossen dmv een query ipv de data door php te laten verwerken.

Een andere optie is een betere server aanschaffen, daar heb ik echter op dit moment geen geld voor ;(
pi_139349206
quote:
14s.gif Op maandag 28 april 2014 10:27 schreef bondage het volgende:

[..]

De rest van de stats worden gegenereerd door Sphinx, echter heeft Sphinx niet de mogelijkheid om op meerdere velden te groeperen. Als ik dit volledig in Sphinx zou kunnen doen zou het een stuk sneller gaan.

Maar ik realiseer me nu dat ik dit beter op kan lossen dmv een query ipv de data door php te laten verwerken.

Een andere optie is een betere server aanschaffen, daar heb ik echter op dit moment geen geld voor ;(
Voer je die query uit op een 'eigen' server? Als in een database-server die je zelf beheert en waar je indexen kunt aanpassen? Dan moet er nog wel wat snelheidswinst te behalen zijn.
  FOK!mycroftheld maandag 28 april 2014 @ 22:54:08 #95
128465 verified  bondage
Ingewikkeld
pi_139358770
quote:
0s.gif Op maandag 28 april 2014 19:09 schreef Light het volgende:

[..]

Voer je die query uit op een 'eigen' server? Als in een database-server die je zelf beheert en waar je indexen kunt aanpassen? Dan moet er nog wel wat snelheidswinst te behalen zijn.
Jup, is mijn eigen server. Dit zijn de velden en indexen die ik momenteel heb:



pi_139359009
quote:
11s.gif Op maandag 28 april 2014 22:54 schreef bondage het volgende:

[..]

Jup, is mijn eigen server. Dit zijn de velden en indexen die ik momenteel heb:

[ afbeelding ]

[ afbeelding ]
Hmm... year heeft een kardinaliteit van 1. Heb je alleen posts uit 2014 in de database staan?
  FOK!mycroftheld maandag 28 april 2014 @ 23:01:43 #97
128465 verified  bondage
Ingewikkeld
pi_139359115
quote:
0s.gif Op maandag 28 april 2014 22:59 schreef Light het volgende:

[..]

Hmm... year heeft een kardinaliteit van 1. Heb je alleen posts uit 2014 in de database staan?
Dat viel mij ook al op idd. Er staat 6 jaar aan data in die tabel.

Is het overigens erg dat id een int(15) is? Ik heb deze database ooit van iemand overgenomen en hier niet bij stilgestaan, ik weet echter dat een gewone int niet tot 15 gaat.
pi_139359654
quote:
14s.gif Op maandag 28 april 2014 23:01 schreef bondage het volgende:

[..]

Dat viel mij ook al op idd. Er staat 6 jaar aan data in die tabel.
Mooi :) Dan zou ik de index "auteur" wijzigen en er "year" als tweede kolom aan toevoegen. Een index mag namelijk meer dan 1 kolom bevatten :)

(Je zou ook nog in plaats van "year" de kolom "tijdstip" kunnen toevoegen, maar ik vermoed dat het verschil vrij klein is terwijl de index veel groter kan worden.)
quote:
Is het overigens erg dat id een int(15) is? Ik heb deze database ooit van iemand overgenomen en hier niet bij stilgestaan, ik weet echter dat een gewone int niet tot 15 gaat.
Nee, dat getal maakt alleen uit als je zerofill gebruikt. En dat wil je niet (want voorloopnullen toevoegen hoort de database niet te doen).
  FOK!mycroftheld maandag 28 april 2014 @ 23:19:13 #99
128465 verified  bondage
Ingewikkeld
pi_139359878
quote:
0s.gif Op maandag 28 april 2014 23:13 schreef Light het volgende:

[..]

Mooi :) Dan zou ik de index "auteur" wijzigen en er "year" als tweede kolom aan toevoegen. Een index mag namelijk meer dan 1 kolom bevatten :)

(Je zou ook nog in plaats van "year" de kolom "tijdstip" kunnen toevoegen, maar ik vermoed dat het verschil vrij klein is terwijl de index veel groter kan worden.)

[..]

Nee, dat getal maakt alleen uit als je zerofill gebruikt. En dat wil je niet (want voorloopnullen toevoegen hoort de database niet te doen).
Dank, ik ga die twee indices even combineren en de query dan nogmaals testen. Ik gebruik geen zerofill dus dat is dan geen probleem gelukkig.

Wat is eigenlijk het voordeel van het combineren van die twee?
pi_139366278
Volgens mij kun je year beter helemaal uit de query halen en gewoon zorgen dat je tijdstippen nooit meerdere jaren overspannen.
  FOK!mycroftheld dinsdag 29 april 2014 @ 10:08:05 #101
128465 verified  bondage
Ingewikkeld
pi_139366440
quote:
14s.gif Op dinsdag 29 april 2014 09:59 schreef KomtTijd... het volgende:
Volgens mij kun je year beter helemaal uit de query halen en gewoon zorgen dat je tijdstippen nooit meerdere jaren overspannen.
Als ik year uit de query haal en vervolgens dit jaar uitdraai duurt de query een stuk langer dan met year erin. Blijkbaar heeft de index voor dat veld wel effect. Ik had het primair toegevoegd voor het indexeringsproces omdat er per jaar een losse Sphinx index wordt gemaakt, op deze manier hoeft niet steeds alle data opnieuw verwerkt te worden. Dmv het year veld en bijbehorende index is ook die query een stuk sneller.
pi_139390892
quote:
14s.gif Op dinsdag 29 april 2014 09:59 schreef KomtTijd... het volgende:
Volgens mij kun je year beter helemaal uit de query halen en gewoon zorgen dat je tijdstippen nooit meerdere jaren overspannen.
Dan wil je wel heel zeker weten dat er een index op (auteur, tijdstip) wordt gebruikt. En ik weet niet hoe goed MySQL omgaat met een index die als range wordt gebruikt (BETWEEN) in combinatie met een andere index. Hoe beperkter het resultaat van een index is, hoe beter.
pi_139391221
quote:
14s.gif Op maandag 28 april 2014 23:19 schreef bondage het volgende:

[..]

Dank, ik ga die twee indices even combineren en de query dan nogmaals testen. Ik gebruik geen zerofill dus dat is dan geen probleem gelukkig.

Wat is eigenlijk het voordeel van het combineren van die twee?
Je maakt het MySQL op die manier makkelijker om twee kolommen te gebruiken in een index, waardoor de resultaatset kleiner wordt. En dat helpt weer om de snelheid omhoog te krijgen :) MySQL wordt ook wel beter in het combineren van twee losse indexen, maar dat levert volgens mij nog niet hetzelfde resultaat op.

Overigens is een index op (auteur, year) ook nog steeds te gebruiken als index op auteur maar het is niet te gebruiken als index op year. Als je die ook los nodig hebt, moet je daar dus een aparte index voor maken / houden.
  FOK!mycroftheld dinsdag 29 april 2014 @ 21:31:54 #104
128465 verified  bondage
Ingewikkeld
pi_139391505
quote:
0s.gif Op dinsdag 29 april 2014 21:27 schreef Light het volgende:

[..]

Je maakt het MySQL op die manier makkelijker om twee kolommen te gebruiken in een index, waardoor de resultaatset kleiner wordt. En dat helpt weer om de snelheid omhoog te krijgen :) MySQL wordt ook wel beter in het combineren van twee losse indexen, maar dat levert volgens mij nog niet hetzelfde resultaat op.

Overigens is een index op (auteur, year) ook nog steeds te gebruiken als index op auteur maar het is niet te gebruiken als index op year. Als je die ook los nodig hebt, moet je daar dus een aparte index voor maken / houden.
Duidelijk.

En de year index heb ik inderdaad nodig aangezien die ook in de query van de Sphinx indexer wordt gebruikt. Ik ga nu de bestaande index op auteur verwijderen en van year en auteur een gecombineerde index maken. De losse year index laat ik gewoon staan. Ik post straks de resultaten incl. de output van EXPLAIN. Het aanpassen van de index gaat wel ff duren aangezien het om een erg grote tabel gaat.

Edit: ik kan blijkbaar de bestaande auteur index gewoon wijzigen. Heb year toegevoegd, de server is nu ff bezig.
  FOK!mycroftheld dinsdag 29 april 2014 @ 22:53:26 #105
128465 verified  bondage
Ingewikkeld
pi_139396070
Het duurde even maar de index is klaar. Dit is wat ik nu heb:



Ik ga morgen ff testen, nu ff geen tijd meer voor aangezien ik zo naar bed ga. Moet morgen weer vroeg op.
  woensdag 30 april 2014 @ 15:01:22 #106
187069 slacker_nl
Sicko pur sang
pi_139413227
Omdat ik soms zo loop te miepen over tests:

In theory there is no difference between theory and practice. In practice there is.
  woensdag 30 april 2014 @ 15:30:49 #107
25889 Sitethief
Fulltime Flapdrol
pi_139414166
quote:
0s.gif Op woensdag 30 april 2014 15:01 schreef slacker_nl het volgende:
Omdat ik soms zo loop te miepen over tests:

[ afbeelding ]
:? Wat moet dit voorstellen :?
Stroek: Sitethief, die is heel groot en sterk :Y.
Faat: *zucht* zoals gewoonlijk hoor Sitethief weer in de bocht &gt;:)
  woensdag 30 april 2014 @ 17:53:19 #108
187069 slacker_nl
Sicko pur sang
pi_139419299
quote:
0s.gif Op woensdag 30 april 2014 15:30 schreef Sitethief het volgende:

[..]

:? Wat moet dit voorstellen :?
100% code coverage! (dit laat Devel::Cover zien en aangezien er weinig perl mensjes zijn ging ik de PHP mensjes spammen :P)

[ Bericht 17% gewijzigd door slacker_nl op 30-04-2014 17:58:32 ]
In theory there is no difference between theory and practice. In practice there is.
pi_139420881
quote:
0s.gif Op woensdag 30 april 2014 17:53 schreef slacker_nl het volgende:

[..]

100% code coverage! (dit laat Devel::Cover zien en aangezien er weinig perl mensjes zijn ging ik de PHP mensjes spammen :P)
Ziet er wel leuk uit, die statistieken :)
Maar wat is er zo bijzonder aan die test met als time 85.9? Die duurt wel erg lang.
  woensdag 30 april 2014 @ 20:59:52 #110
187069 slacker_nl
Sicko pur sang
pi_139427644
quote:
0s.gif Op woensdag 30 april 2014 18:42 schreef Light het volgende:

[..]

Ziet er wel leuk uit, die statistieken :)
Maar wat is er zo bijzonder aan die test met als time 85.9? Die duurt wel erg lang.
Dat is 000-package.t, daarin worden de volgende zaken getest:
1) MANIFEST file ok
2) Modules compilen ok
3) POD (documentatie) syntax ok
4) POD coverage ok (dus doc je ook al je functies)
5) Compilen je scripts ok

Die duren wat langer, echt niet zo spannend allemaal. Dat zijn eigenlijk release-only tests.
In theory there is no difference between theory and practice. In practice there is.
pi_139429634
quote:
0s.gif Op woensdag 30 april 2014 20:59 schreef slacker_nl het volgende:

[..]

Dat is 000-package.t, daarin worden de volgende zaken getest:
1) MANIFEST file ok
2) Modules compilen ok
3) POD (documentatie) syntax ok
4) POD coverage ok (dus doc je ook al je functies)
5) Compilen je scripts ok

Die duren wat langer, echt niet zo spannend allemaal. Dat zijn eigenlijk release-only tests.
Dan snap ik wel dat die tests ook lang duren (in ieder geval in verhouding).
  FOK!mycroftheld woensdag 30 april 2014 @ 22:15:48 #112
128465 verified  bondage
Ingewikkeld
pi_139432778
Hmm, de query is met deze nieuwe index trager geworden. Hij duurde eerst 0,83 seconden, nu 3,46. Ik heb exact dezelfde parameters gebruikt als de vorige keer toen de indices nog niet gecombineerd waren.

Dit is de explain:


Ik heb de query van Light gebruikt aangezien die sowieso al sneller was dan die van mij.

1
2
3
4
5
6
7
8
9
10
11
12
13
SELECT count(DISTINCT friend_post.topicid) cnt, u.naam
FROM fok_user u
INNER JOIN fok_post search_user_post
ON search_user_post.auteur = 128465
AND search_user_post.tijdstip BETWEEN UNIX_TIMESTAMP('2014-04-01 00:00:01') AND UNIX_TIMESTAMP('2014-04-26 23:59:59')
AND search_user_post.year = 2014
INNER JOIN fok_post friend_post
ON friend_post.auteur = u.id
AND friend_post.auteur != 128465
AND friend_post.topicid = search_user_post.topicid
GROUP BY u.naam
ORDER BY cnt DESC
LIMIT 100;

FORCE INDEX gebruiken misschien?
pi_139433990
quote:
11s.gif Op woensdag 30 april 2014 22:15 schreef bondage het volgende:
Hmm, de query is met deze nieuwe index trager geworden. Hij duurde eerst 0,83 seconden, nu 3,46. Ik heb exact dezelfde parameters gebruikt als de vorige keer toen de indices nog niet gecombineerd waren.

Dit is de explain:
[ afbeelding ]

Ik heb de query van Light gebruikt aangezien die sowieso al sneller was dan die van mij.
[ code verwijderd ]

FORCE INDEX gebruiken misschien?
Hmm... da's wel onverwacht... het (geschatte) aantal rijen voor de eerste query gaat van 12.000 naar 2.400 en toch is de query veel trager...
  FOK!mycroftheld woensdag 30 april 2014 @ 22:36:02 #114
128465 verified  bondage
Ingewikkeld
pi_139434038
quote:
0s.gif Op woensdag 30 april 2014 22:35 schreef Light het volgende:

[..]

Hmm... da's wel onverwacht... het (geschatte) aantal rijen voor de eerste query gaat van 12.000 naar 2.400 en toch is de query veel trager...
Jup, ik snap er ook niets van :? Ik ga voor de zekerheid toch ff FORCE INDEX proberen.
pi_139434130
quote:
11s.gif Op woensdag 30 april 2014 22:36 schreef bondage het volgende:

[..]

Jup, ik snap er ook niets van :? Ik ga voor de zekerheid toch ff FORCE INDEX proberen.
Ik kan me niet voorstellen dat dat helpt, omdat de juiste index al wordt gebruikt.
  FOK!mycroftheld woensdag 30 april 2014 @ 23:15:39 #116
128465 verified  bondage
Ingewikkeld
pi_139436271
quote:
0s.gif Op woensdag 30 april 2014 22:37 schreef Light het volgende:

[..]

Ik kan me niet voorstellen dat dat helpt, omdat de juiste index al wordt gebruikt.
Zou een gecombineerde index op topic_id en auteur misschien een optie zijn?
pi_139503685
quote:
11s.gif Op woensdag 30 april 2014 23:15 schreef bondage het volgende:

[..]

Zou een gecombineerde index op topic_id en auteur misschien een optie zijn?
Dat lijkt me niet nuttig, in ieder geval niet in die volgorde.
  FOK!mycroftheld maandag 5 mei 2014 @ 16:08:01 #118
128465 verified  bondage
Ingewikkeld
pi_139586419
Heeft de table collation invloed op de gegevens die in de velden staat? Stel dat de table collation op latin1_swedish_ci staat maar de velden in de tabel op utf8_unicode_ci, heeft dit dan gevolgen?

De documentatie zegt hier het volgende over:
quote:
The table character set and collation are used as default values for column definitions if the column character set and collation are not specified in individual column definitions. The table character set and collation are MySQL extensions; there are no such things in standard SQL.
Dit doet mij vermoeden dat het alleen om een standaardwaarde gaat en dit verder geen invloed heeft op de data in de tabel.
pi_139587451
nvmd
..///
pi_139600968
Oh god, heb een boek gekocht over Test driven development, gaat het dan toch nog gebeuren? :P
  maandag 5 mei 2014 @ 22:09:51 #121
178193 Juicyhil
Bekende FOK!ker
pi_139601139
quote:
19s.gif Op maandag 5 mei 2014 22:06 schreef TwenteFC het volgende:
Oh god, heb een boek gekocht over Test driven development, gaat het dan toch nog gebeuren? :P
Ik heb alle bedrijven dat wel eens horen zeggen. Maar nog nooit een bedrijf tegengekomen die het geheel volgens het boekje heeft geïmplementeerd. Jammer hoor. Het scheelt zoveel in tijd en kwaliteit.
Op dinsdag 9 augustus 2011 23:01 schreef SuperrrTuxxx het volgende:
Ik hou zoveel van jou, ik doe alles voor je! O+
pi_139601529
quote:
0s.gif Op maandag 5 mei 2014 22:09 schreef Juicyhil het volgende:

[..]

Ik heb alle bedrijven dat wel eens horen zeggen. Maar nog nooit een bedrijf tegengekomen die het geheel volgens het boekje heeft geïmplementeerd. Jammer hoor. Het scheelt zoveel in tijd en kwaliteit.
Krijg binnenkort de kans om een gehele shop vanaf scrap op te zetten, waarbij de oude database slechts als api wordt gebruikt.

:P Ik weet hoe rampzalig niet geteste spaghetticode is, wil het dus deze keer meteen "goed" doen.
Dat het tijd bespaart wil er bij de hogere heren nog niet in, maar heb als excuus gebruikt dat dit verplicht is voor mijn opleiding. (deeltijd hbo).
  maandag 5 mei 2014 @ 22:23:01 #123
178193 Juicyhil
Bekende FOK!ker
pi_139601807
quote:
19s.gif Op maandag 5 mei 2014 22:17 schreef TwenteFC het volgende:

[..]

Krijg binnenkort de kans om een gehele shop vanaf scrap op te zetten, waarbij de oude database slechts als api wordt gebruikt.

:P Ik weet hoe rampzalig niet geteste spaghetticode is, wil het dus deze keer meteen "goed" doen.
Dat het tijd bespaart wil er bij de hogere heren nog niet in, maar heb als excuus gebruikt dat dit verplicht is voor mijn opleiding. (deeltijd hbo).
Ja dan is het zeker een goed voornemen om tests te schrijven. Heb het zelf vaak genoeg in projecten geprobeerd erdoorheen te krijgen, maar dan komt er een deadline om de hoek kijken en krijgt het geen prioriteit meer enzo. :P
Op dinsdag 9 augustus 2011 23:01 schreef SuperrrTuxxx het volgende:
Ik hou zoveel van jou, ik doe alles voor je! O+
pi_139601950
quote:
0s.gif Op maandag 5 mei 2014 22:23 schreef Juicyhil het volgende:

[..]

Ja dan is het zeker een goed voornemen om tests te schrijven. Heb het zelf vaak genoeg in projecten geprobeerd erdoorheen te krijgen, maar dan komt er een deadline om de hoek kijken en krijgt het geen prioriteit meer enzo. :P
Hier net zo, een klein bedrijf waar we eigenlijk meer misbruikt worden als helpdesk dan dat we daadwerkelijke nieuwe webapplicaties opzetten.

Prioriteit ligt blijkbaar bij het verminderen van het aantal klikjes dat een inkopertje moet doen :').
pi_139602004
:P Wat dus soms ook een ramp is, omdat de code een ramp is. Oorspronkelijk gemaakt door een 16 jarige als bijbaantje 10 jaar geleden.
  maandag 5 mei 2014 @ 22:32:44 #126
178193 Juicyhil
Bekende FOK!ker
pi_139602286
quote:
19s.gif Op maandag 5 mei 2014 22:27 schreef TwenteFC het volgende:
:P Wat dus soms ook een ramp is, omdat de code een ramp is. Oorspronkelijk gemaakt door een 16 jarige als bijbaantje 10 jaar geleden.
Ik voel je. Dat heb ik ook vaker meegemaakt. Met alle drama zoals security issues en jankende klanten eromheen. Maar dat is nu voorbij *O*

Ik probeer dat soort shit van me af te schuiven. Ga maar eerst investeren in fatsoenlijke software.
Op dinsdag 9 augustus 2011 23:01 schreef SuperrrTuxxx het volgende:
Ik hou zoveel van jou, ik doe alles voor je! O+
  FOK!mycroftheld maandag 5 mei 2014 @ 22:37:15 #127
128465 verified  bondage
Ingewikkeld
pi_139602519
quote:
0s.gif Op vrijdag 2 mei 2014 21:50 schreef Light het volgende:

[..]

Dat lijkt me niet nuttig, in ieder geval niet in die volgorde.
Ok, de enige andere optie die ik kan bedenken is dat ik een snellere server nodig heb en dat de huidige gewoon niet voldoet om dit soort statistieken uit te draaien. In ieder geval bedankt voor het meedenken :)
pi_139610526
quote:
19s.gif Op maandag 5 mei 2014 22:27 schreef TwenteFC het volgende:
:P Wat dus soms ook een ramp is, omdat de code een ramp is. Oorspronkelijk gemaakt door een 16 jarige als bijbaantje 10 jaar geleden.
Dat herken ik, zo hebben wij 2 sites onder onze hoeden gekregen die zijn gebouwd door een gast in Bangladesh...
Toen ik voor het eerst een problemen moest oplossen kwam ik al code tegen welke niks met de site te maken hadden en allemaal uit een ander project van deze gozer kwam.
  dinsdag 6 mei 2014 @ 09:02:11 #129
187069 slacker_nl
Sicko pur sang
pi_139610686
quote:
19s.gif Op maandag 5 mei 2014 22:06 schreef TwenteFC het volgende:
Oh god, heb een boek gekocht over Test driven development, gaat het dan toch nog gebeuren? :P
Lezen? Of daadwerkelijk TDD gaan gebruiken?
In theory there is no difference between theory and practice. In practice there is.
pi_139613570
quote:
19s.gif Op maandag 5 mei 2014 22:17 schreef TwenteFC het volgende:

[..]

Krijg binnenkort de kans om een gehele shop vanaf scrap op te zetten, waarbij de oude database slechts als api wordt gebruikt.

:P Ik weet hoe rampzalig niet geteste spaghetticode is, wil het dus deze keer meteen "goed" doen.
Dat het tijd bespaart wil er bij de hogere heren nog niet in, maar heb als excuus gebruikt dat dit verplicht is voor mijn opleiding. (deeltijd hbo).
En is de database wel op orde? Als dat namelijk ook niet op orde is loop je alsnog tegen allerlei shit aan, tenzij je wat handige mappers gaat maken, maar dan moet je maar zien of dat ook performed. Overigens snap ik niet waarom bedrijven nog steeds hun eigen webshops ontwikkelen, het is duur in onderhoud, en je haalt nooit de kwaliteit die bestaande software levert.
🕰️₿🕰️₿🕰️₿🕰️₿🕰️₿🕰️ TikTok next Block
pi_139614178
Zo herkenbaar... :{ al meerdere sites compleet opnieuw geschreven (eigen code) omdat a. of de code verouderd was, of b. niet leesbaar, of c. extreem ingewikkeld voor simpele toepassingen of een combinatie van alle 3 :D

Voordeel is wel dat de code gelijk up to date is, je niet steeds je hoeft in te lezen in de 'oude' code. _O_ scheelt soms erg veel tijd/stress/frustraties om gewoon overnieuw te beginnen dan door te gaan op andermans werk
The people who lost my respect will never get a capital letter for their name again.
Like trump...
pi_139614688
quote:
0s.gif Op dinsdag 6 mei 2014 11:44 schreef Chandler het volgende:
Voordeel is wel dat de code gelijk up to date is, je niet steeds je hoeft in te lezen in de 'oude' code. _O_ scheelt soms erg veel tijd/stress/frustraties om gewoon overnieuw te beginnen dan door te gaan op andermans werk
Helemaal mee eens, maar helaas mag ik het niet herbouwen van mijn baas... kost te veel tijd.
En grootte kans dat hij het dan niet meer snapt :')
pi_139625969
quote:
0s.gif Op dinsdag 6 mei 2014 09:02 schreef slacker_nl het volgende:

[..]

Lezen? Of daadwerkelijk TDD gaan gebruiken?
Beide :P In eerste instantie voor een eigen thuisprojectje zodat ik er vast aan kan wennen en daarna op het werk.

quote:
0s.gif Op dinsdag 6 mei 2014 11:21 schreef raptorix het volgende:

[..]

En is de database wel op orde? Als dat namelijk ook niet op orde is loop je alsnog tegen allerlei shit aan, tenzij je wat handige mappers gaat maken, maar dan moet je maar zien of dat ook performed. Overigens snap ik niet waarom bedrijven nog steeds hun eigen webshops ontwikkelen, het is duur in onderhoud, en je haalt nooit de kwaliteit die bestaande software levert.
De database is ook pure troep, maar daar gooien we gewoon een api service tegenaan.
Dus de database van het nieuwe product kan ik ook zelf opzetten.

En dat bestaande software dezelfde kwaliteit levert dat is niet helemaal waar, wij zullen sowieso functionaliteit gaan missen of welke niet volledig aan onze wensen voldoen.

En daarbij krijg je met bestaande software vaak het zelfde als wat we nu hebben; troep.
  † In Memoriam † dinsdag 6 mei 2014 @ 18:51:59 #134
159335 Boze_Appel
Vrij Fruit
pi_139627156
quote:
0s.gif Op dinsdag 6 mei 2014 11:21 schreef raptorix het volgende:

[..]
Overigens snap ik niet waarom bedrijven nog steeds hun eigen webshops ontwikkelen, het is duur in onderhoud, en je haalt nooit de kwaliteit die bestaande software levert.
Moet je eens kijken hoeveel Magentodevelopers er gevraagd worden om van alles te herschrijven omdat Magento apenballen zuigt.

De grootste reden voor eigen webshopsoftware is vaak omdat ze allerlei dingen erin willen hebben die niet met plugins te regelen is en niet standaard in de shops zit, dus dan kan je bestaande code gaan hacken waarvan steeds nieuwe updates komen of een net framework pakken en vanaf daar aan de slag gaan. Bovendien hebben ze vaak al hun eigen facturatiesysteem, dus heel dat stuk heb je niet nodig.
Carpe Libertatem
pi_139627449
quote:
7s.gif Op dinsdag 6 mei 2014 18:51 schreef Boze_Appel het volgende:

[..]

Moet je eens kijken hoeveel Magentodevelopers er gevraagd worden om van alles te herschrijven omdat Magento apenballen zuigt.

De grootste reden voor eigen webshopsoftware is vaak omdat ze allerlei dingen erin willen hebben die niet met plugins te regelen is en niet standaard in de shops zit, dus dan kan je bestaande code gaan hacken waarvan steeds nieuwe updates komen of een net framework pakken en vanaf daar aan de slag gaan. Bovendien hebben ze vaak al hun eigen facturatiesysteem, dus heel dat stuk heb je niet nodig.
En je bent nog min of meer afhankelijk van een externe partij ook. Nooit leuk.
pi_139643703
quote:
0s.gif Op dinsdag 6 mei 2014 12:03 schreef Darkomen het volgende:

[..]

Helemaal mee eens, maar helaas mag ik het niet herbouwen van mijn baas... kost te veel tijd.
En grootte kans dat hij het dan niet meer snapt :')
Je kunt toch zelf initiatief tonen als je het zo'n leuk project vind om in je eigen tijd het zelf te schrijven? en dan eventueel verkopen (of via half jaar betaald vakantie, ken een persoon die zo een lange tijd vrij was op de kosten van de baas!, betaald vakantie dus.) ? neem aan dat het idee vrij te gebruiken is?! staat dan ook zeer goed op je cv ;)
The people who lost my respect will never get a capital letter for their name again.
Like trump...
  FOK!mycroftheld dinsdag 6 mei 2014 @ 22:46:06 #137
128465 verified  bondage
Ingewikkeld
pi_139643979
quote:
0s.gif Op dinsdag 6 mei 2014 12:03 schreef Darkomen het volgende:

[..]

Helemaal mee eens, maar helaas mag ik het niet herbouwen van mijn baas... kost te veel tijd.
En grootte kans dat hij het dan niet meer snapt :')
Mijn baas snapt ook niet wat ik doe, maakt ook niet uit, ik mag zelf bepalen waar ik aan werk. Als ik maar oplever wat er wordt gevraagd.
pi_139651876
quote:
0s.gif Op dinsdag 6 mei 2014 22:42 schreef Chandler het volgende:

[..]

Je kunt toch zelf initiatief tonen als je het zo'n leuk project vind om in je eigen tijd het zelf te schrijven? en dan eventueel verkopen (of via half jaar betaald vakantie, ken een persoon die zo een lange tijd vrij was op de kosten van de baas!, betaald vakantie dus.) ? neem aan dat het idee vrij te gebruiken is?! staat dan ook zeer goed op je cv ;)
In n vrijetijd ben ik druk met mn eigen sites ;-)
Daarnaast is het en project van een klant van ons, dus zij zijn degene die betalen.
Als ik dan de hele boel herbouw en zij zeggen, nee gaat mijn baas mij echt geen half jaar vrij geven :')

quote:
14s.gif Op dinsdag 6 mei 2014 22:46 schreef bondage het volgende:

[..]

Mijn baas snapt ook niet wat ik doe, maakt ook niet uit, ik mag zelf bepalen waar ik aan werk. Als ik maar oplever wat er wordt gevraagd.
Helaas programmeert mijn baas ook mee aan onze projecten.

Iemand nog een php developer nodig rond utrecht? :D
pi_139654576
quote:
19s.gif Op dinsdag 6 mei 2014 18:09 schreef TwenteFC het volgende:

[..]

Beide :P In eerste instantie voor een eigen thuisprojectje zodat ik er vast aan kan wennen en daarna op het werk.

[..]

De database is ook pure troep, maar daar gooien we gewoon een api service tegenaan.
Dus de database van het nieuwe product kan ik ook zelf opzetten.

En dat bestaande software dezelfde kwaliteit levert dat is niet helemaal waar, wij zullen sowieso functionaliteit gaan missen of welke niet volledig aan onze wensen voldoen.

En daarbij krijg je met bestaande software vaak het zelfde als wat we nu hebben; troep.
En wat is je maandelijkse onderhoudsbudget als ik vragen mag?
🕰️₿🕰️₿🕰️₿🕰️₿🕰️₿🕰️ TikTok next Block
pi_139654599
quote:
7s.gif Op dinsdag 6 mei 2014 18:51 schreef Boze_Appel het volgende:

[..]

Moet je eens kijken hoeveel Magentodevelopers er gevraagd worden om van alles te herschrijven omdat Magento apenballen zuigt.

De grootste reden voor eigen webshopsoftware is vaak omdat ze allerlei dingen erin willen hebben die niet met plugins te regelen is en niet standaard in de shops zit, dus dan kan je bestaande code gaan hacken waarvan steeds nieuwe updates komen of een net framework pakken en vanaf daar aan de slag gaan. Bovendien hebben ze vaak al hun eigen facturatiesysteem, dus heel dat stuk heb je niet nodig.
Waarom je uberhaupt Magento zou gebruiken is me een raadsel, ik heb het ooit wel eens bekeken, wat een bagger zeg, alleen al de honderden zo niet duizenden files waarmee je te maken hebt. :')
🕰️₿🕰️₿🕰️₿🕰️₿🕰️₿🕰️ TikTok next Block
pi_139654616
quote:
0s.gif Op dinsdag 6 mei 2014 22:42 schreef Chandler het volgende:

[..]

Je kunt toch zelf initiatief tonen als je het zo'n leuk project vind om in je eigen tijd het zelf te schrijven? en dan eventueel verkopen (of via half jaar betaald vakantie, ken een persoon die zo een lange tijd vrij was op de kosten van de baas!, betaald vakantie dus.) ? neem aan dat het idee vrij te gebruiken is?! staat dan ook zeer goed op je cv ;)
Een goede webshop in een halfjaar schrijven? GL, gaat je niet lukken.
🕰️₿🕰️₿🕰️₿🕰️₿🕰️₿🕰️ TikTok next Block
  † In Memoriam † woensdag 7 mei 2014 @ 11:04:24 #142
159335 Boze_Appel
Vrij Fruit
pi_139654720
quote:
0s.gif Op woensdag 7 mei 2014 10:58 schreef raptorix het volgende:

[..]

Waarom je uberhaupt Magento zou gebruiken is me een raadsel, ik heb het ooit wel eens bekeken, wat een bagger zeg, alleen al de honderden zo niet duizenden files waarmee je te maken hebt. :')
En je configfile in een .xml die alleen met een .htaccess afgeschermd is. Zit je dus op een gare (shared) server waarbij je niet alle functies van .htaccess kan gebruiken staat je config open voor heel de wereld. :D
Carpe Libertatem
  woensdag 7 mei 2014 @ 11:32:15 #143
187069 slacker_nl
Sicko pur sang
pi_139655452
quote:
7s.gif Op dinsdag 6 mei 2014 18:51 schreef Boze_Appel het volgende:
De grootste reden voor eigen webshopsoftware is vaak omdat ze allerlei dingen erin willen hebben die niet met plugins te regelen is en niet standaard in de shops zit, dus dan kan je bestaande code gaan hacken waarvan steeds nieuwe updates komen of een net framework pakken en vanaf daar aan de slag gaan. Bovendien hebben ze vaak al hun eigen facturatiesysteem, dus heel dat stuk heb je niet nodig.
Ik zit me dit echt af te vragen. Geen geld hebben om webshopsoftware naar je wensen aan te passen (door middel van plugins en/of patchen en upstream gooien), maar wel geld hebben om het van scratch te bouwen. Raar.

Het lijkt me dat die software inmiddels best lekker is uitgekristalliseerd en je dus makkelijk met een off-the-shelf products aan de gang kan gaan.
In theory there is no difference between theory and practice. In practice there is.
pi_139659378
quote:
0s.gif Op woensdag 7 mei 2014 11:32 schreef slacker_nl het volgende:

[..]

Ik zit me dit echt af te vragen. Geen geld hebben om webshopsoftware naar je wensen aan te passen (door middel van plugins en/of patchen en upstream gooien), maar wel geld hebben om het van scratch te bouwen. Raar.

Het lijkt me dat die software inmiddels best lekker is uitgekristalliseerd en je dus makkelijk met een off-the-shelf products aan de gang kan gaan.
Zelf ben ik wel gecharmeerd van NOP commerce, opensource (wel c#/.net).

http://www.nopcommerce.com/downloads.aspx
🕰️₿🕰️₿🕰️₿🕰️₿🕰️₿🕰️ TikTok next Block
pi_139665381
quote:
0s.gif Op woensdag 7 mei 2014 10:59 schreef raptorix het volgende:
Een goede webshop in een halfjaar schrijven? GL, gaat je niet lukken.
Mag ik vragen waarom niet? en wat is goed? ebay? marktplaats? 1 produkt webshop? je vergelijkt gelijk peren met kruidnoten...
The people who lost my respect will never get a capital letter for their name again.
Like trump...
  † In Memoriam † woensdag 7 mei 2014 @ 17:21:38 #146
159335 Boze_Appel
Vrij Fruit
pi_139665657
quote:
0s.gif Op woensdag 7 mei 2014 13:51 schreef raptorix het volgende:

[..]

Zelf ben ik wel gecharmeerd van NOP commerce, opensource (wel c#/.net).

http://www.nopcommerce.com/downloads.aspx
ASP / MS SQL webshop. The horror! :o
Carpe Libertatem
pi_139667346
quote:
0s.gif Op woensdag 7 mei 2014 10:57 schreef raptorix het volgende:

[..]

En wat is je maandelijkse onderhoudsbudget als ik vragen mag?
De webshop zelf is 2 jaar geleden opnieuw gebouwd, en qua werk wat er daarna ingestopt is niet erg veel. Programmeer werk dan.

Dat zal misschien hooguit 10 uur per maand zijn, en dan schat ik het nog hoog in.

Het is vooral de backend van de groothandel die brak in elkaar zit.

Maar er moet een nieuwe shop gebouwd worden omdat we onze zakelijke klanten ook een webshop op maat willen leveren en zelf binnen enkele klikken product/merk specifieke webshops willen opstarten op interessante domeinnamen.

Waarna er in feite een dropshipment in de backend wordt gezet.
pi_139667390
quote:
0s.gif Op woensdag 7 mei 2014 10:59 schreef raptorix het volgende:

[..]

Een goede webshop in een halfjaar schrijven? GL, gaat je niet lukken.
:9 Je doet alsof een webshop een heel gecompliceerd iets is, dat valt ook wel weer mee.

Je hebt alleen flexibiliteit nodig om al die seo meuk handelbaar te houden op een lange termijn.
pi_139687888
quote:
0s.gif Op woensdag 7 mei 2014 17:12 schreef Chandler het volgende:

[..]

Mag ik vragen waarom niet? en wat is goed? ebay? marktplaats? 1 produkt webshop? je vergelijkt gelijk peren met kruidnoten...
Wat snap je niet aan een goede webshop?
🕰️₿🕰️₿🕰️₿🕰️₿🕰️₿🕰️ TikTok next Block
pi_139687890
quote:
15s.gif Op woensdag 7 mei 2014 17:21 schreef Boze_Appel het volgende:

[..]

ASP / MS SQL webshop. The horror! :o
ASP? C#/.net
🕰️₿🕰️₿🕰️₿🕰️₿🕰️₿🕰️ TikTok next Block
pi_139687901
quote:
19s.gif Op woensdag 7 mei 2014 18:18 schreef TwenteFC het volgende:

[..]

:9 Je doet alsof een webshop een heel gecompliceerd iets is, dat valt ook wel weer mee.

Je hebt alleen flexibiliteit nodig om al die seo meuk handelbaar te houden op een lange termijn.
Ehm, wij werken met een team van een man of 10 ongeveer een jaar aan 1 webshop, en dan gebruiken we ook nog eens een enterprise product, maar goed als jij denkt dat een webshop iets simpels is....

Vandaar dat met mensen als jou de kwaliteit van 99 procent van de webshops bedroevend is.
🕰️₿🕰️₿🕰️₿🕰️₿🕰️₿🕰️ TikTok next Block
  donderdag 8 mei 2014 @ 08:11:21 #152
91039 mstx
2x1/2 = 1/2 x 1/2
pi_139687976
quote:
0s.gif Op woensdag 7 mei 2014 10:58 schreef raptorix het volgende:

[..]

Waarom je uberhaupt Magento zou gebruiken is me een raadsel, ik heb het ooit wel eens bekeken, wat een bagger zeg, alleen al de honderden zo niet duizenden files waarmee je te maken hebt. :')
Yep, ik heb nu ook 2 shops in Magento moeten maken, het is ook best wel bagger. ;(
En dan heb je waarschijnlijk nog niet naar de database gekeken, een standaardinstallatie heeft 348 (!!!) tabellen. :'( Je kan ook niet even een simpel importscriptje voor producten ofzo schrijven want dan moet je dus in superveel tabellen shit wegschrijven. :')
Op donderdag 2 juli 2009 22:41 schreef RTB het volgende:
als ik elk rap"liedje" een kans moest geven was ik aan het eind van dit millennium nog bezig met het tempo waarin die kotshoop uitgebraakt wordt.
👾
pi_139687995
quote:
0s.gif Op donderdag 8 mei 2014 08:11 schreef mstx het volgende:

[..]

Yep, ik heb nu ook 2 shops in Magento moeten maken, het is ook best wel bagger. ;(
En dan heb je waarschijnlijk nog niet naar de database gekeken, een standaardinstallatie heeft 348 (!!!) tabellen. :'( Je kan ook niet even een simpel importscriptje voor producten ofzo schrijven want dan moet je dus in superveel tabellen shit wegschrijven. :')
Veel tabellen zegt niet alles, maar 348 is idioot, ik heb ooit in 1999 mijn eigen webshop geschreven die vrij uitgebreid was, en toen kwam ik volgens mij op een tabel of 25, overigens ook wel eens met een database gewerkt van boven de 1000 tables :D
🕰️₿🕰️₿🕰️₿🕰️₿🕰️₿🕰️ TikTok next Block
  FOK!mycroftheld donderdag 8 mei 2014 @ 08:23:07 #154
128465 verified  bondage
Ingewikkeld
pi_139688090
quote:
0s.gif Op donderdag 8 mei 2014 08:12 schreef raptorix het volgende:

[..]
overigens ook wel eens met een database gewerkt van boven de 1000 tables :D
Ik mag toch hopen dat er goede documentatie beschikbaar was voor dat monster. Het grootste aantal tables dat ik ooit heb gezien zal ergens rond de 100 liggen. De documentatie was helaas erg beperkt en ik moest zelf uit gaan zoeken welke tables met elkaar te linken waren en op welke velden. Velden hadden, om het nog erger te maken, veelal onduidelijke namen wat dit gedoe er niet makkelijker op maakte. Heeft me erg veel tijd gekost om dat ding in kaart te brengen en alsnog te beschrijven.
pi_139688127
quote:
11s.gif Op donderdag 8 mei 2014 08:23 schreef bondage het volgende:

[..]

Ik mag toch hopen dat er goede documentatie beschikbaar was voor dat monster. Het grootste aantal tables dat ik ooit heb gezien zal ergens rond de 100 liggen. De documentatie was helaas erg beperkt en ik moest zelf uit gaan zoeken welke tables met elkaar te linken waren en op welke velden. Velden hadden, om het nog erger te maken, veelal onduidelijke namen wat dit gedoe er niet makkelijker op maakte. Heeft me erg veel tijd gekost om dat ding in kaart te brengen en alsnog te beschrijven.
Dit was de global product database van Ericson, zat op zich goed en logisch in elkaar, maar alles wat ook maar bekend was qua producten van Ericsson zat in dat ding, opzich als je gewend bent met complexe databases kom je er best goed uit, zaten wel wat vervelende dingen in, omdat zoveel applicaties er van gebruik maakten was men heel huiverig op changes, dus maakte men al snel weer een nieuw table aan. Zo waren er een stuk of 8 tables met regions/landen wat het niet echt mooi maakte.
🕰️₿🕰️₿🕰️₿🕰️₿🕰️₿🕰️ TikTok next Block
  donderdag 8 mei 2014 @ 08:33:34 #156
91039 mstx
2x1/2 = 1/2 x 1/2
pi_139688200
Zolang de tabellen en kolommen maar logische namen hebben. Opencart heeft bijv. ook 115 tabellen maar daar heb ik de documentatie nog nooit voor nodig gehad. Veel simpeler kan het ook niet:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
oc_product
oc_product_attribute
oc_product_description
oc_product_discount
oc_product_filter
oc_product_image
oc_product_option
oc_product_option_value
oc_product_profile
oc_product_recurring
oc_product_related
oc_product_reward
oc_product_special
oc_product_to_category
oc_product_to_download
oc_product_to_layout
oc_product_to_store
Al vaak importscriptjes gemaakt om producten te importeren vanuit csv/xml/db en dat was zo gedaan.

Ter vergelijking, Magento:
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
61
62
63
64
65
66
catalog_product_bundle_option
catalog_product_bundle_option_value
catalog_product_bundle_price_index
catalog_product_bundle_selection
catalog_product_bundle_selection_price
catalog_product_bundle_stock_index
catalog_product_enabled_index
catalog_product_entity
catalog_product_entity_datetime
catalog_product_entity_decimal
catalog_product_entity_gallery
catalog_product_entity_group_price
catalog_product_entity_int
catalog_product_entity_media_gallery
catalog_product_entity_media_gallery_value
catalog_product_entity_text
catalog_product_entity_tier_price
catalog_product_entity_varchar
catalog_product_flat_1
catalog_product_index_eav
catalog_product_index_eav_decimal
catalog_product_index_eav_decimal_idx
catalog_product_index_eav_decimal_tmp
catalog_product_index_eav_idx
catalog_product_index_eav_tmp
catalog_product_index_group_price
catalog_product_index_price
catalog_product_index_price_bundle_idx
catalog_product_index_price_bundle_opt_idx
catalog_product_index_price_bundle_opt_tmp
catalog_product_index_price_bundle_sel_idx
catalog_product_index_price_bundle_sel_tmp
catalog_product_index_price_bundle_tmp
catalog_product_index_price_cfg_opt_agr_idx
catalog_product_index_price_cfg_opt_agr_tmp
catalog_product_index_price_cfg_opt_idx
catalog_product_index_price_cfg_opt_tmp
catalog_product_index_price_downlod_idx
catalog_product_index_price_downlod_tmp
catalog_product_index_price_final_idx
catalog_product_index_price_final_tmp
catalog_product_index_price_idx
catalog_product_index_price_opt_agr_idx
catalog_product_index_price_opt_agr_tmp
catalog_product_index_price_opt_idx
catalog_product_index_price_opt_tmp
catalog_product_index_price_tmp
catalog_product_index_tier_price
catalog_product_index_website
catalog_product_link
catalog_product_link_attribute
catalog_product_link_attribute_decimal
catalog_product_link_attribute_int
catalog_product_link_attribute_varchar
catalog_product_link_type
catalog_product_option
catalog_product_option_price
catalog_product_option_title
catalog_product_option_type_price
catalog_product_option_type_title
catalog_product_option_type_value
catalog_product_relation
catalog_product_super_attribute
catalog_product_super_attribute_label
catalog_product_super_attribute_pricing
catalog_product_super_link
:')
Op donderdag 2 juli 2009 22:41 schreef RTB het volgende:
als ik elk rap"liedje" een kans moest geven was ik aan het eind van dit millennium nog bezig met het tempo waarin die kotshoop uitgebraakt wordt.
👾
pi_139688440
quote:
0s.gif Op donderdag 8 mei 2014 08:00 schreef raptorix het volgende:

[..]

Wat snap je niet aan een goede webshop?
Ik snap niet dat jij zegt dat een goede webshop niet in een halfjaar te bouwen is, weet niet op welk slakken tempo jij typt, maar beetje webshop valt ECHT wel in een halfjaar te ontwikkelen. Maar goed, voor de ene is goed goed en de ander slecht! *)

Oh en je zegt dat jullie met 10 man werken, mooi man, zal wel een extreem uitgebreid product zijn, met bergen met opties etc.. wat een gemiddelde webshop dus niet nodig heeft, lijkt mij.
En als jij zegt dat 99% niet goed is, zowww dan kunnen we beter maar stoppen met internetten want er zijn zoveel webshops geschreven door 1 persoon, die zijn dus bij deze allemaal uitermate slecht..
The people who lost my respect will never get a capital letter for their name again.
Like trump...
pi_139688536
quote:
0s.gif Op donderdag 8 mei 2014 08:51 schreef Chandler het volgende:

[..]

Ik snap niet dat jij zegt dat een goede webshop niet in een halfjaar te bouwen is, weet niet op welk slakken tempo jij typt, maar beetje webshop valt ECHT wel in een halfjaar te ontwikkelen. Maar goed, voor de ene is goed goed en de ander slecht! *)

Oh en je zegt dat jullie met 10 man werken, mooi man, zal wel een extreem uitgebreid product zijn, met bergen met opties etc.. wat een gemiddelde webshop dus niet nodig heeft, lijkt mij.
En als jij zegt dat 99% niet goed is, zowww dan kunnen we beter maar stoppen met internetten want er zijn zoveel webshops geschreven door 1 persoon, die zijn dus bij deze allemaal uitermate slecht..
Natuurlijk kun je wel een webshop bouwen in een halfjaar, maar we hadden het over een goede webshop, maar mijn punt blijft dat het onzin is om zelf webshops te gaan bouwen, verspilling van tijd en geld, want het loont gewoon niet, er zijn zat prima producten op de markt waarbij men 10.000 uren heeft geinvesteerd om het te optimaliseren, daar kan je gewoon niet tegen op werken.
🕰️₿🕰️₿🕰️₿🕰️₿🕰️₿🕰️ TikTok next Block
  donderdag 8 mei 2014 @ 08:58:35 #159
187069 slacker_nl
Sicko pur sang
pi_139688542
quote:
19s.gif Op woensdag 7 mei 2014 18:18 schreef TwenteFC het volgende:

[..]

:9 Je doet alsof een webshop een heel gecompliceerd iets is, dat valt ook wel weer mee.

Je hebt alleen flexibiliteit nodig om al die seo meuk handelbaar te houden op een lange termijn.
De functionaliteit van een webshop is snel te maken. Tis een CMS met een Ogone koppeling. Echter heb je ook te maken met wat werkt prettig voor de gebruiker. Alles is te maken. Maar ben het met raptor eens dat je ook flink moet investeren in je product als je een goede bruikbare shop wilt hebben. Werkende prototypes zijn een, goed werkende eindproducten zijn een ander verhaal.

[ Bericht 0% gewijzigd door slacker_nl op 08-05-2014 10:00:36 ]
In theory there is no difference between theory and practice. In practice there is.
pi_139688684
quote:
0s.gif Op donderdag 8 mei 2014 08:57 schreef raptorix het volgende:
Natuurlijk kun je wel een webshop bouwen in een halfjaar, maar we hadden het over een goede webshop, maar mijn punt blijft dat het onzin is om zelf webshops te gaan bouwen, verspilling van tijd en geld, want het loont gewoon niet, er zijn zat prima producten op de markt waarbij men 10.000 uren heeft geïnvesteerd om het te optimaliseren, daar kan je gewoon niet tegen op werken.
Is het absoluut geen onzin, als iedereen dacht zoals jij zaten we nog steeds te internetten op een modem en moesten we downloaden vanaf bbsjes...

Juist doordat mensen zelf dingen proberen te maken leert men, kijkt men dingen van elkaar af. Ik heb zat sites ontwikkeld die NOOIT het daglicht hebben gezien, waarom, onvrede van mijn kant over het product wat ik had gemaakt, niet goed genoeg, maar heb ook zat sites wel afgemaakt die ik zo kon 'kopen' ipv zelf te schrijven, maar juist het zelf schrijven is vaak veel leuker dan het moeten werken met bv magento/wordpress/etc.

Het is jou mening dat het verspilling van geld en tijd is, ik verspeel ook veel tijd met vissen, uren aan de waterkant en totaal NIETS doen... god wat een verspilling van 'energie en geld'.. maar ik geniet er wel op en top van, leer iedere keer wat... dat heb je niet als je dingen gaat toevoegen aan bestaande producten, je hebt geen flauw idee wat er allemaal in het systeem gebeurd, hebt weinig controle over plus je leert niet hoe het allemaal in elkaar zit. Ik snap best dat je kiest voor pakketten die al bestaan, maar snap niet dat je het afraad om het zelf te maken.. zeg maar..

quote:
1s.gif Op donderdag 8 mei 2014 08:58 schreef slacker_nl het volgende:
De functionaliteit van een webshop is snel te maken. Tis een CMS met een Ogone koppeling. Echter heb ook te maken met wat werkt prettig voor de gebruiker. Alles is te maken. Maar ben het met raptor eens dat je ook flink moet investeren in je product als je een goede bruikbare shop wilt hebben. Werkende prototypes zijn een, goed werkende eindproducten zijn een ander verhaal.
Ik ben het ook met je eens, maar meeste webshops hoeven geen detail tree, of bergen met opties, die willen producten aanbieden om te verkopen, met betaal mogelijkheid, klanten database... je kunt het jezelf zo moeilijk maken als je zelf wilt, maar het is in mijn ogen de uitdaging om het allemaal zelf te schrijven.
Daarom zie je ook bergen met mensen zelf blogs schrijven, vroeger gastenboeken etc maken... waarom? omdat het leuk is om het zelf te doen.. ipv iets te gebruiken wat van een ander is.
The people who lost my respect will never get a capital letter for their name again.
Like trump...
  donderdag 8 mei 2014 @ 09:22:38 #161
187069 slacker_nl
Sicko pur sang
pi_139688970
Qua educational value heb ik er geen bezwaar tegen. Maar we hebben het hier over bedrijven, dan zijn de belangen anders en liggen ze niet bij het 'leren', maar winst maken.
In theory there is no difference between theory and practice. In practice there is.
  donderdag 8 mei 2014 @ 09:31:05 #162
91039 mstx
2x1/2 = 1/2 x 1/2
pi_139689122
Alsof het de klant iets interesseert of je het leuk vindt en er wat van leert. Die wil gewoon zo snel en zo goedkoop mogelijk zijn nieuwe shop online hebben. Als die dan moet kiezen tussen het gebruik van een bestaande oplossing (die zich al heeft bewezen) waar alle functionaliteit in zit die hij nodig heeft, of een custom iets wat from scratch wordt gebouwd, 5x zo veel tijd kost en allerlei kinderziektes heeft is de keuze vaak snel gemaakt.
Op donderdag 2 juli 2009 22:41 schreef RTB het volgende:
als ik elk rap"liedje" een kans moest geven was ik aan het eind van dit millennium nog bezig met het tempo waarin die kotshoop uitgebraakt wordt.
👾
  † In Memoriam † donderdag 8 mei 2014 @ 10:02:13 #163
159335 Boze_Appel
Vrij Fruit
pi_139689871
quote:
0s.gif Op donderdag 8 mei 2014 08:01 schreef raptorix het volgende:

[..]

ASP? C#/.net
quote:
nopCommerce is a fully customizable shopping cart. It's stable and highly usable. nopCommerce is an open source ecommerce solution that is ASP.NET (MVC) based with a MS SQL 2008 (or higher) backend database.
Staat op hun site.
Carpe Libertatem
  donderdag 8 mei 2014 @ 10:06:20 #164
187069 slacker_nl
Sicko pur sang
pi_139689953
quote:
7s.gif Op donderdag 8 mei 2014 10:02 schreef Boze_Appel het volgende:

Staat op hun site.
ASP.NET uses the multi-language abilities of the .NET Common Language Runtime, allowing Web pages to be coded in VB.NET, C#, J#, Delphi.NET, Chrome, etc.
In theory there is no difference between theory and practice. In practice there is.
pi_139689969
Het kan nog wel eens vies tegenvallen wat er aan 'goede' webshops op de markt is. Veel van ditsoort producten zijn ofwel proprietary met alle beperkingen van dien, ofwel van moeilijk belabberde kwaliteit. Als je echt een op maat gesneden oplossing zoekt, is beiden vaak geen optie en is inhouse ontwikkelen vaak echt de beste keus.
pi_139690071
quote:
0s.gif Op donderdag 8 mei 2014 09:07 schreef Chandler het volgende:

[..]

Is het absoluut geen onzin, als iedereen dacht zoals jij zaten we nog steeds te internetten op een modem en moesten we downloaden vanaf bbsjes...

Juist doordat mensen zelf dingen proberen te maken leert men, kijkt men dingen van elkaar af. Ik heb zat sites ontwikkeld die NOOIT het daglicht hebben gezien, waarom, onvrede van mijn kant over het product wat ik had gemaakt, niet goed genoeg, maar heb ook zat sites wel afgemaakt die ik zo kon 'kopen' ipv zelf te schrijven, maar juist het zelf schrijven is vaak veel leuker dan het moeten werken met bv magento/wordpress/etc.

Het is jou mening dat het verspilling van geld en tijd is, ik verspeel ook veel tijd met vissen, uren aan de waterkant en totaal NIETS doen... god wat een verspilling van 'energie en geld'.. maar ik geniet er wel op en top van, leer iedere keer wat... dat heb je niet als je dingen gaat toevoegen aan bestaande producten, je hebt geen flauw idee wat er allemaal in het systeem gebeurd, hebt weinig controle over plus je leert niet hoe het allemaal in elkaar zit. Ik snap best dat je kiest voor pakketten die al bestaan, maar snap niet dat je het afraad om het zelf te maken.. zeg maar..

[..]

Ik ben het ook met je eens, maar meeste webshops hoeven geen detail tree, of bergen met opties, die willen producten aanbieden om te verkopen, met betaal mogelijkheid, klanten database... je kunt het jezelf zo moeilijk maken als je zelf wilt, maar het is in mijn ogen de uitdaging om het allemaal zelf te schrijven.
Daarom zie je ook bergen met mensen zelf blogs schrijven, vroeger gastenboeken etc maken... waarom? omdat het leuk is om het zelf te doen.. ipv iets te gebruiken wat van een ander is.
Iets doen omdat je het leuk vind of om te leren is heel wat anders dan professioneel een site ontwikkelen, daarnaast kan ik zeggen dat ik juist heel erg voor vooruitgang ben, en daarom liever nieuwe dingen ontwikkel dan het wiel opnieuw uitvinden.
🕰️₿🕰️₿🕰️₿🕰️₿🕰️₿🕰️ TikTok next Block
pi_139690081
quote:
7s.gif Op donderdag 8 mei 2014 10:02 schreef Boze_Appel het volgende:

[..]

[..]

Staat op hun site.
ASP is niet te vergelijken met ASP.NET , ongeveer zelfde om java te vergelijken met javascript.
🕰️₿🕰️₿🕰️₿🕰️₿🕰️₿🕰️ TikTok next Block
pi_139690088
Dan denken we niet hetzelfde, dat kan hoor ;) ik zou het liefst het wiel opnieuw uitvinden, is veel stoerder dan de spaken poetsen! *) _O_
The people who lost my respect will never get a capital letter for their name again.
Like trump...
pi_139690107
quote:
14s.gif Op donderdag 8 mei 2014 10:07 schreef KomtTijd... het volgende:
Het kan nog wel eens vies tegenvallen wat er aan 'goede' webshops op de markt is. Veel van ditsoort producten zijn ofwel proprietary met alle beperkingen van dien, ofwel van moeilijk belabberde kwaliteit. Als je echt een op maat gesneden oplossing zoekt, is beiden vaak geen optie en is inhouse ontwikkelen vaak echt de beste keus.
Het probleem met inhouse ontwikkelen is dat je een product aan het maken bent, dat is een compleet andere tak van sport dan het verlenen van een dienst.
🕰️₿🕰️₿🕰️₿🕰️₿🕰️₿🕰️ TikTok next Block
pi_139690129
quote:
0s.gif Op donderdag 8 mei 2014 10:12 schreef Chandler het volgende:
Dan denken we niet hetzelfde, dat kan hoor ;) ik zou het liefst het wiel opnieuw uitvinden, is veel stoerder dan de spaken poetsen! *) _O_
Het gaat erom wat het nut is, ik denk dat het veel nuttiger is om nieuwe features van bijvoorbeeld een opensource project te ontwikkelen, profiteren ook nog meer mensen van.
🕰️₿🕰️₿🕰️₿🕰️₿🕰️₿🕰️ TikTok next Block
pi_139690156
I agree, maar vaak (zeker in jou geval) zal alleen het bedrijf er van kunnen genieten en niet de 'open source' wereld :) en in mijn geval is dat wel zo, praktisch alles wat ik schrijf is open source! *)
The people who lost my respect will never get a capital letter for their name again.
Like trump...
  † In Memoriam † donderdag 8 mei 2014 @ 10:14:47 #172
159335 Boze_Appel
Vrij Fruit
pi_139690164
quote:
0s.gif Op donderdag 8 mei 2014 10:11 schreef raptorix het volgende:

[..]

ASP is niet te vergelijken met ASP.NET , ongeveer zelfde om java te vergelijken met javascript.
Allebei meuk, dus prima te vergelijken. :P
Carpe Libertatem
pi_139690224
quote:
7s.gif Op donderdag 8 mei 2014 10:14 schreef Boze_Appel het volgende:

[..]

Allebei meuk, dus prima te vergelijken. :P
Naja, laat ik niet gaan bashen in het PHP topic ;)
🕰️₿🕰️₿🕰️₿🕰️₿🕰️₿🕰️ TikTok next Block
pi_139690278
Wees vrij rap, tis hier toch meer slowchat... dan praten over 'php op zich' ;)
The people who lost my respect will never get a capital letter for their name again.
Like trump...
pi_139690372
quote:
0s.gif Op donderdag 8 mei 2014 10:19 schreef Chandler het volgende:
Wees vrij rap, tis hier toch meer slowchat... dan praten over 'php op zich' ;)
Ik heb gewoon slechte ervaringen met PHP, nu zal ik de laatste zijn die zal beweren dat er slechte talen zijn, want zelfs in een goede taal kun je slecht programmeren, maar ik vind het in PHP gewoon omslachtig, probeer maar eens c# in visual studio met Resharper en er zal een wereld voor je open gaan.
🕰️₿🕰️₿🕰️₿🕰️₿🕰️₿🕰️ TikTok next Block
pi_139690400
quote:
0s.gif Op donderdag 8 mei 2014 10:13 schreef raptorix het volgende:

[..]

Het gaat erom wat het nut is, ik denk dat het veel nuttiger is om nieuwe features van bijvoorbeeld een opensource project te ontwikkelen, profiteren ook nog meer mensen van.
Mja ik ben zelf bezig met het inhouse ontwikkelen van een CRM systeem. Na een jaar gekut met een open-source CRM systeem (Vtiger) ben ik wel enigszins teruggekomen op deze mening.

OS-producten gebruiken is alleen nuttig als er ook daadwerkelijk iets beschikbaar is wat een goeie basis heeft, en dat is lang niet altijd het geval.
pi_139690413
quote:
14s.gif Op donderdag 8 mei 2014 10:23 schreef KomtTijd... het volgende:

[..]

Mja ik ben zelf bezig met het inhouse ontwikkelen van een CRM systeem. Na een jaar gekut met een open-source CRM systeem (Vtiger) ben ik wel enigszins teruggekomen op deze mening.

OS-producten gebruiken is alleen nuttig als er ook daadwerkelijk iets beschikbaar is wat een goeie basis heeft, en dat is lang niet altijd het geval.
Wel eens gekeken naar Salesforce (niet opensource) maar wel zeer betaalbaar.
🕰️₿🕰️₿🕰️₿🕰️₿🕰️₿🕰️ TikTok next Block
pi_139690482
quote:
0s.gif Op donderdag 8 mei 2014 10:22 schreef raptorix het volgende:
Ik heb gewoon slechte ervaringen met PHP, nu zal ik de laatste zijn die zal beweren dat er slechte talen zijn, want zelfs in een goede taal kun je slecht programmeren, maar ik vind het in PHP gewoon omslachtig, probeer maar eens c# in visual studio met Resharper en er zal een wereld voor je open gaan.
+1 maar wat voor slechte ervaringen dan? maar C, C++, C# is niet mijn ding, nooit iets mee gedaan en zal het ws ook nooit gaan doen... php/python vind ik wel erg leuk, vooral nu Python omdat het lijkt op PHP maar toch compleet anders is :+
The people who lost my respect will never get a capital letter for their name again.
Like trump...
pi_139690594
quote:
0s.gif Op donderdag 8 mei 2014 10:26 schreef Chandler het volgende:

[..]

+1 maar wat voor slechte ervaringen dan? maar C, C++, C# is niet mijn ding, nooit iets mee gedaan en zal het ws ook nooit gaan doen... php/python vind ik wel erg leuk, vooral nu Python omdat het lijkt op PHP maar toch compleet anders is :+
Naja het is alweer tijd geleden dat ik er wat mee gedaan heb, ik had veel problemen met configuratie onder windows.

Ter voorbeeld, hoe zou je dit in bijvoorbeeld PHP aanpakken?

1
2
3
4
5
            string[] colors = Enum.GetNames(typeof(System.Drawing.KnownColor));
            foreach (string color in colors.Where(c => c.ToLower().Contains("blue")))
            {
                    Console.WriteLine(color);    
            }
🕰️₿🕰️₿🕰️₿🕰️₿🕰️₿🕰️ TikTok next Block
pi_139690708
Geen idee, zo goed is mijn Python na een maand ook alweer niet :+
The people who lost my respect will never get a capital letter for their name again.
Like trump...
  donderdag 8 mei 2014 @ 10:38:08 #181
25889 Sitethief
Fulltime Flapdrol
pi_139690824
quote:
0s.gif Op donderdag 8 mei 2014 10:31 schreef raptorix het volgende:

[..]

Naja het is alweer tijd geleden dat ik er wat mee gedaan heb, ik had veel problemen met configuratie onder windows.

Ter voorbeeld, hoe zou je dit in bijvoorbeeld PHP aanpakken?
[ code verwijderd ]

Je hebt een lijst met kleuren en wilt alle kleuren zien die blauw in hun naam hebben ofzo?
Stroek: Sitethief, die is heel groot en sterk :Y.
Faat: *zucht* zoals gewoonlijk hoor Sitethief weer in de bocht &gt;:)
pi_139690893
ok
1
2
3
4
5
6
7
<?php
foreach ($lijstmetKleuren as $k=>$v) {
    if (
strpos(strtolower($v),"blue") > 0) {
        
// gevonden
    
}
}
?>

Jammere van PHP is dat de ene keer je string, zoekwoord hebt en de andere keer zoekwoord, string

zo omslachtig is't niet :) maar moet zeggen dat ik het puntjes systeem van Python heerlijk vind .toLower().find('lol') etc ;)
The people who lost my respect will never get a capital letter for their name again.
Like trump...
pi_139691066
quote:
0s.gif Op donderdag 8 mei 2014 10:40 schreef Chandler het volgende:
ok
[ code verwijderd ]

Jammere van PHP is dat de ene keer je string, zoekwoord hebt en de andere keer zoekwoord, string

zo omslachtig is't niet :) maar moet zeggen dat ik het puntjes systeem van Python heerlijk vind .toLower().find('lol') etc ;)
Dat vind ik echt zo heerlijk met Linq, vrij complexe zaken kun je op prachtige manieren shortcutten.
🕰️₿🕰️₿🕰️₿🕰️₿🕰️₿🕰️ TikTok next Block
pi_139691086
quote:
0s.gif Op donderdag 8 mei 2014 10:47 schreef raptorix het volgende:

[..]

Dat vind ik echt zo heerlijk met Linq, vrij complexe zaken kun je op prachtige manieren shortcutten.
Maar juist shortcutten kan er ook voor zorgen dat de code onleesbaar wordt als het slecht is geprogrammeerd ;)
------___------ 53
----.(___).---- 42
---(o\_!_/o)---
pi_139691101
quote:
0s.gif Op donderdag 8 mei 2014 10:48 schreef Rockfire het volgende:

[..]

Maar juist shortcutten kan er ook voor zorgen dat de code onleesbaar wordt als het slecht is geprogrammeerd ;)
Uiteraard, je moet het niet overdrijven.

Ik had laatst deze constructie nodig, simpel en effectie, maar toch leesbaar:

1
2
3
4
5
6
7
8
9
10
11
            decimal total = new decimal();
            decimal petesTotalNumberOfRolls = petes.Sum(x => x.Value);
            decimal colinsTotalNumberOfRolls = colins.Sum(x => x.Value);

            foreach (KeyValuePair<int, int> kvpPetes in petes)
            {

                decimal colinsNumberOfThrows = colins.Where(x => x.Key < kvpPetes.Key).Sum(x => x.Value);
                decimal petesNumberOfThrows = kvpPetes.Value;
                total = total + ((petesNumberOfThrows / petesTotalNumberOfRolls) * (colinsNumberOfThrows / colinsTotalNumberOfRolls));
            }
🕰️₿🕰️₿🕰️₿🕰️₿🕰️₿🕰️ TikTok next Block
pi_139691138
Nee maar op zich is het best duidelijk en zo moet je natuurlijk geen 10tallen dingen achter elkaar zetten! :) max 80 karakters per regel :+
The people who lost my respect will never get a capital letter for their name again.
Like trump...
  donderdag 8 mei 2014 @ 10:53:14 #187
12221 Tijn
Powered by MS Paint
pi_139691201
quote:
0s.gif Op donderdag 8 mei 2014 10:40 schreef Chandler het volgende:
ok
[ code verwijderd ]

Jammere van PHP is dat de ene keer je string, zoekwoord hebt en de andere keer zoekwoord, string

zo omslachtig is't niet :) maar moet zeggen dat ik het puntjes systeem van Python heerlijk vind .toLower().find('lol') etc ;)
Strpos geeft de positie van de gevonden string terug, dus dat kan ook 0 zijn. Om te weten of-ie gevonden is, kun je beter een sterke comparison doen met false (dus === false voor niet en !== false voor wel gevonden). En als je stripos() gevruikt, is toLower() niet nodig :)
pi_139691218
Klopt Tijn, !== moest het zijn maar dan nog, ging even snel om het voorbeeld :+
The people who lost my respect will never get a capital letter for their name again.
Like trump...
  donderdag 8 mei 2014 @ 10:55:51 #189
12221 Tijn
Powered by MS Paint
pi_139691269
quote:
0s.gif Op donderdag 8 mei 2014 10:53 schreef Chandler het volgende:
Klopt Tijn, !== moest het zijn maar dan nog, ging even snel om het voorbeeld :+
Ook voorbeelden moeten kloppen, je weet nooit wat iemand copy-paste en in z'n applicatie stopt.
pi_139691279
quote:
3s.gif Op donderdag 8 mei 2014 10:53 schreef Tijn het volgende:

[..]

Strpos geeft de positie van de gevonden string terug, dus dat kan ook 0 zijn. Om te weten of-ie gevonden is, kun je beter een sterke comparison doen met false (dus === false voor niet en !== false voor wel gevonden). En als je stripos() gevruikt, is toLower() niet nodig :)
Je zou bijvoorbeeld in PHP een library kunnen oproepen met daarin de kleuren. Maar voor de overzichtelijkheid, stop ik de kleuren in een array.
Dat zou bijv. kunnen uitzien:
1
2
3
4
$colors = array("red", "blue", "yellow");
if $(in_array("blue", $colors)     {
     echo array_search("blue", $colors);
     }
pi_139691329
quote:
14s.gif Op donderdag 8 mei 2014 10:55 schreef Tijn het volgende:

[..]

Ook voorbeelden moeten kloppen, je weet nooit wat iemand copy-paste en in z'n applicatie stopt.
Juist :'(

SPOILER
Om spoilers te kunnen lezen moet je zijn ingelogd. Je moet je daarvoor eerst gratis Registreren. Ook kun je spoilers niet lezen als je een ban hebt.
The people who lost my respect will never get a capital letter for their name again.
Like trump...
  donderdag 8 mei 2014 @ 10:59:21 #192
12221 Tijn
Powered by MS Paint
pi_139691354
Sowieso is Linq natuurlijk gewoon te implementeren in PHP, als je het echt zo graag zou willen gebruiken :)

Er zijn meerdere libraries te vinden die je zo kunt toepassen, zoals http://phplinq.codeplex.com
pi_139691402
quote:
2s.gif Op donderdag 8 mei 2014 10:59 schreef Tijn het volgende:
Sowieso is Linq natuurlijk gewoon te implementeren in PHP, als je het echt zo graag zou willen gebruiken :)

Er zijn meerdere libraries te vinden die je zo kunt toepassen, zoals http://phplinq.codeplex.com
Het punt is dat het niet native in je framework zit, ben wel benieuwd naar de performance op wat grotere collecties.
🕰️₿🕰️₿🕰️₿🕰️₿🕰️₿🕰️ TikTok next Block
  donderdag 8 mei 2014 @ 11:01:17 #194
25889 Sitethief
Fulltime Flapdrol
pi_139691404
quote:
0s.gif Op donderdag 8 mei 2014 10:47 schreef raptorix het volgende:

[..]

Dat vind ik echt zo heerlijk met Linq, vrij complexe zaken kun je op prachtige manieren shortcutten.
In PHP kun je ook gewoon methods chainen...
Stroek: Sitethief, die is heel groot en sterk :Y.
Faat: *zucht* zoals gewoonlijk hoor Sitethief weer in de bocht &gt;:)
  donderdag 8 mei 2014 @ 11:04:58 #195
12221 Tijn
Powered by MS Paint
pi_139691502
quote:
0s.gif Op donderdag 8 mei 2014 11:01 schreef raptorix het volgende:

[..]

Het punt is dat het niet native in je framework zit, ben wel benieuwd naar de performance op wat grotere collecties.
Tsja, geen idee natuurlijk. Maar ook dan is er vast wel iets te bedenken om het wel te laten performen lijkt me :)
pi_139691526
quote:
0s.gif Op donderdag 8 mei 2014 10:24 schreef raptorix het volgende:

[..]

Wel eens gekeken naar Salesforce (niet opensource) maar wel zeer betaalbaar.
Meh, zal al snel net zo duur zijn als dat ik ben, plus dan moet ik er nog steeds tegenaan ontwikkelen. Voor zover dat uberhaupt mag.
  donderdag 8 mei 2014 @ 11:11:13 #197
12221 Tijn
Powered by MS Paint
pi_139691657
quote:
14s.gif Op donderdag 8 mei 2014 11:05 schreef KomtTijd... het volgende:

[..]

Meh, zal al snel net zo duur zijn als dat ik ben, plus dan moet ik er nog steeds tegenaan ontwikkelen. Voor zover dat uberhaupt mag.
Vooral op lange termijn is in-house natuurlijk veel goedkoper, als je het goed doet. Voor zo'n Salesforce mag je voor een klein team al snel 30K per jaar neerleggen, dus als je dat 10 jaar gebruikt heb je 3 ton verbrand.
pi_139691820
quote:
0s.gif Op donderdag 8 mei 2014 11:01 schreef Sitethief het volgende:

[..]

In PHP kun je ook gewoon methods chainen...
Voorbeeldje?
  donderdag 8 mei 2014 @ 11:19:52 #199
12221 Tijn
Powered by MS Paint
pi_139691903
quote:
0s.gif Op donderdag 8 mei 2014 11:16 schreef Robuustheid het volgende:

[..]

Voorbeeldje?
PDO bijvoorbeeld:

1
2
3
<?php
$row 
$db->query('SELECT * FROM `example`')->fetch();
?>

Je kunt dit ook heel makkelijk met je eigen classes doen, het is gewoon een kwestie van de methodes zichzelf laten returnen.
pi_139691988
quote:
2s.gif Op donderdag 8 mei 2014 11:19 schreef Tijn het volgende:
PDO bijvoorbeeld:
[ code verwijderd ]

Je kunt dit ook heel makkelijk met je eigen classes doen, het is gewoon een kwestie van de methodes zichzelf laten returnen.
Kan, maar ik zou juist dit los van elkaar willen ivm fouten etc :)
The people who lost my respect will never get a capital letter for their name again.
Like trump...
abonnement Unibet Coolblue Bitvavo
Forum Opties
Forumhop:
Hop naar:
(afkorting, bv 'KLB')