abonnement Unibet Coolblue Bitvavo
pi_62629203

cd niet bijgeleverd

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

Vorige delen:
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,


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

    Deze OP en instructies voor nieuw topic: http://wiki.fok.nl/index.php/OP/PHP
  • "Reality is an illusion created by a lack of alcohol."
    pi_62629237
    Lapo:

    Aangezien hij die constructie met [] ook niet kende zal hij het nog wel niet zo lang doen, dus ook een vrij grote kans dat hij nog maar net begonnen is met programmeren, dan is dat allemaal nog niet zo vanzelfsprekend.
    "Reality is an illusion created by a lack of alcohol."
      vrijdag 24 oktober 2008 @ 00:50:05 #3
    63192 ursel
    "Het Is Hier Fantastisch!
    pi_62629504
    Ook weer even koekeloeren..
      vrijdag 24 oktober 2008 @ 00:50:13 #4
    12880 CraZaay
    prettig gestoord
    pi_62629506
    Even in een notendop dan De [] zorgt ervoor dat de inputs (of meer: hun waarden) als elementen in een array terecht komen. Met print_r() kun je de inhoud van een array human-readable tonen. Zo, dat was de les voor vandaag (tevens TVP)
      vrijdag 24 oktober 2008 @ 07:26:25 #5
    137676 TommyGun
    Stik er maar in!
    pi_62632373
    quote:
    Op vrijdag 24 oktober 2008 00:35 schreef Dzy het volgende:
    Lapo:

    Aangezien hij die constructie met [] ook niet kende zal hij het nog wel niet zo lang doen, dus ook een vrij grote kans dat hij nog maar net begonnen is met programmeren, dan is dat allemaal nog niet zo vanzelfsprekend.
    Je hebt het goed begrepen
      vrijdag 24 oktober 2008 @ 07:26:54 #6
    137676 TommyGun
    Stik er maar in!
    pi_62632380
    quote:
    Op vrijdag 24 oktober 2008 00:50 schreef CraZaay het volgende:
    Even in een notendop dan De [] zorgt ervoor dat de inputs (of meer: hun waarden) als elementen in een array terecht komen. Met print_r() kun je de inhoud van een array human-readable tonen. Zo, dat was de les voor vandaag (tevens TVP)
    Bedankt, zal er eens mee gaan spelen.
      vrijdag 24 oktober 2008 @ 08:55:50 #7
    107951 JortK
    Immer kwaliteitsposts
    pi_62633166
    quote:
    Op vrijdag 24 oktober 2008 00:50 schreef CraZaay het volgende:
    Even in een notendop dan De [] zorgt ervoor dat de inputs (of meer: hun waarden) als elementen in een array terecht komen. Met print_r() kun je de inhoud van een array human-readable tonen. Zo, dat was de les voor vandaag (tevens TVP)
    Dan neem ik deze TVP even van je over
    pi_62633675
    TVPhp
    Enschede, onze stad! ons domein!
      vrijdag 24 oktober 2008 @ 09:42:49 #9
    62215 qu63
    ..de tijd drinkt..
    pi_62634115
    quote:
    Op vrijdag 24 oktober 2008 08:55 schreef JortK het volgende:

    [..]

    Dan neem ik deze TVP even van je over
    Doe ik mee
    It's Time To Shine
    [i]What would life be like without rhethorical questions?[/i]
    pi_62634126
    THP
    The people who lost my respect will never get a capital letter for their name again.
    Like trump...
      vrijdag 24 oktober 2008 @ 10:24:50 #11
    136730 PiRANiA
    All thinking men are atheists.
    pi_62635082
    Wie weet hoe je het beste resultaten van queries kan cachen?
      vrijdag 24 oktober 2008 @ 10:28:04 #12
    63192 ursel
    "Het Is Hier Fantastisch!
    pi_62635162
    quote:
    Op vrijdag 24 oktober 2008 10:24 schreef PiRANiA het volgende:
    Wie weet hoe je het beste resultaten van queries kan cachen?
    Memcache was daar voor geloof ik
      vrijdag 24 oktober 2008 @ 11:03:31 #14
    137676 TommyGun
    Stik er maar in!
    pi_62636053
    quote:
    Op vrijdag 24 oktober 2008 00:50 schreef CraZaay het volgende:
    Even in een notendop dan De [] zorgt ervoor dat de inputs (of meer: hun waarden) als elementen in een array terecht komen. Met print_r() kun je de inhoud van een array human-readable tonen. Zo, dat was de les voor vandaag (tevens TVP)
    De output is als volgt:

    1
    2
    3
    4
    5
    6
    7
    Array ( [werknemer] => 5 
    [specificatie] => 2 
    [afdeling] => 24 
    [uren] => Array ( [0] => 8 [1] => 4 [2] => 3 [3] => 1 [4] => 2 ) 
    [callnr] => Array ( [0] => 1234 [1] => 4321 [2] => 1243 [3] => 1343 [4] => 1344 ) 
    [omschrijving] => Array ( [0] => omschrijving1 [1] => omschrijving2 [2] => omschrijving3 [3] => omschrijving4 [4] => omschrijving5 ) 
    [submit] => Submit )


    Alles klopt in principe, behalve specificatie en afdeling. Ik krijg het niet voor elkaar om die in een array te zetten.

    Deze worden als volgt aangeroepen:

    <td width=\"10%\">";include("spec.php");echo "</td>
    <td width=\"20%\">";include("afd.php");echo "</td>

    spec.php
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    <?php
    $query2 
    mysql_query(
    "SELECT `specid`,
    `specificatie`
    FROM `specificatie`
    ORDER BY `specificatie` ASC"
    ) or die (mysql_error());

    echo 
    "<select name='specificatie'>\n";
    while (
    $data mysql_fetch_assoc($query2))
    {
    echo 
    "<option value='".$data['specid']."'>".$data['specificatie']."</option>\n";
    }
    echo 
    "</select>\n";
    ?>


    afd.php
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    <?php
    $query2 
    mysql_query(
    "SELECT `afdelingid`,
    `afdeling`
    FROM `afdelingen`
    ORDER BY `afdeling` ASC"
    ) or die (mysql_error());

    echo 
    "<select name='afdeling'>\n";
    while (
    $data mysql_fetch_assoc($query2))
    {
    echo 
    "<option value='".$data['afdelingid']."'>".$data['afdeling']."</option>\n";
    }
    echo 
    "</select>\n";
    ?>


    Hoe kan ik dit doen? B.v.d
      vrijdag 24 oktober 2008 @ 11:11:54 #15
    12880 CraZaay
    prettig gestoord
    pi_62636295
    quote:
    Op vrijdag 24 oktober 2008 10:24 schreef PiRANiA het volgende:
    Wie weet hoe je het beste resultaten van queries kan cachen?
    Ik gebruik altijd memcached (nu bezig met een project met 4 memcached servers, samen goed voor 16GB gereserveerd geheugen voor memcached ), maar je zou het ook op schijf op kunnen slaan (serialized).
      vrijdag 24 oktober 2008 @ 11:13:58 #16
    12880 CraZaay
    prettig gestoord
    pi_62636355
    quote:
    Op vrijdag 24 oktober 2008 11:03 schreef TommyGun het volgende:

    Alles klopt in principe, behalve specificatie en afdeling. Ik krijg het niet voor elkaar om die in een array te zetten.
    Waarom wil je dat? Wil je meerdere afdelingen aan whatever-je-doet hangen? Zo ja, dan heb je iets nodig waarmee je meerdere waarden kunt selecteren (dus geen standaard <select>). Wil je gewoon één afdeling hebben, dan heb je ook geen array nodig toch?
      vrijdag 24 oktober 2008 @ 11:15:29 #17
    107951 JortK
    Immer kwaliteitsposts
    pi_62636404
    quote:
    Op vrijdag 24 oktober 2008 11:11 schreef CraZaay het volgende:

    [..]

    Ik gebruik altijd memcached (nu bezig met een project met 4 memcached servers, samen goed voor 16GB gereserveerd geheugen voor memcached ), maar je zou het ook op schijf op kunnen slaan (serialized).
    Serializen, hoe werkt dat?
      vrijdag 24 oktober 2008 @ 11:24:16 #18
    12880 CraZaay
    prettig gestoord
    pi_62636667
    quote:
    Op vrijdag 24 oktober 2008 11:15 schreef JortK het volgende:

    Serializen, hoe werkt dat?
    Je hebt een array/object/whatever en gooit het door serialize(), waarna het een string is geworden. Deze kun je bijvoorbeeld opslaan in een bestand (of database, of wherever). Later kun je deze string met unserialize() weer omzetten naar het originele type & structuur. Zo doet memcached het bijvoorbeeld ook op de achtergrond: je gooit er een object en een key in, deze wordt serialized opgeslagen in het geheugen onder "key", en later wanneer je de waarde van "key" terug vraagt weer unserialized.\

    Het mooie van memcached is ten eerste natuurlijk dat het geheugen rete-snel is (sneller dan welke schijf dan ook) en dat je een pool kunt maken van meerdere servers. Is het geheugen vol, dan wordt de oudste entry weer verwijderd.

    Waar je natuurlijk wel rekening mee moet houden is dat je moet checken of iets al in de cache zit, dus in je model (als je dat gebruikt) "indien X in geheugen zit, geef dan de waarde terug, zo niet voer dan deze code uit en sla het resultaat op als X". Je kunt dan als je memcached gebruikt nog aangeven na hoeveel tijd het vanzelf geinvalideerd (verwijdert) moet worden, of dit op oneindig zetten. In het laatste geval moet je bij een update niet vergeten om het resultaat van je select handmatig te invalideren.

    Memcached is de enige reden waarom grote sites kunnen bestaan zonder downtime Iets als Netlog (zoiets als Hyves, maar dan veel groter (30 miljoen gebruikers)) bijvoorbeeld gebruikt 60 memcached servers met samen 450GB geheugen voor memcached. Hiermee worden 250.000 request per seconde afgevangen die anders naar een van de 200 MySQL servers zou gaan (die hierdoor nog maar 60.000 request per seconde moeten afhandelen).

    [ Bericht 19% gewijzigd door CraZaay op 24-10-2008 11:34:00 ]
      vrijdag 24 oktober 2008 @ 11:32:08 #19
    137676 TommyGun
    Stik er maar in!
    pi_62636890
    quote:
    Op vrijdag 24 oktober 2008 11:13 schreef CraZaay het volgende:

    [..]

    Waarom wil je dat? Wil je meerdere afdelingen aan whatever-je-doet hangen? Zo ja, dan heb je iets nodig waarmee je meerdere waarden kunt selecteren (dus geen standaard <select>). Wil je gewoon één afdeling hebben, dan heb je ook geen array nodig toch?
    De entries komen zo in de DB te staan:

    http://www.uploader.gamergun.com/files/1/urendb.PNG

    Dmv dit formulier:

    http://www.uploader.gamergun.com/files/1/ureninvoer.PNG

    Stel dat een medewerker alle 5 de regels invult, dan moeten er dus 5 entries in de DB komen met zijn medewerker ID en de andere gegevens.

    Is het zo duidelijker? Bedankt
      vrijdag 24 oktober 2008 @ 11:35:48 #20
    12880 CraZaay
    prettig gestoord
    pi_62637014
    quote:
    Op vrijdag 24 oktober 2008 11:32 schreef TommyGun het volgende:

    Is het zo duidelijker? Bedankt
    Dan heb je dus geen array nodig voor afdeling (etc), want die is voor iedere entry gelijk. Je kunt daarvoor bij iedere insert dezelfde waarde gebruiken (en hebt dus geen array nodig).
      vrijdag 24 oktober 2008 @ 11:56:56 #21
    137676 TommyGun
    Stik er maar in!
    pi_62637705
    quote:
    Op vrijdag 24 oktober 2008 11:35 schreef CraZaay het volgende:

    [..]

    Dan heb je dus geen array nodig voor afdeling (etc), want die is voor iedere entry gelijk. Je kunt daarvoor bij iedere insert dezelfde waarde gebruiken (en hebt dus geen array nodig).
    Nee, alles kan verschillen, op de afbeelding idd niet te zien maar de dropdown menu's geven meerdere keuzes.
      vrijdag 24 oktober 2008 @ 12:08:36 #22
    12880 CraZaay
    prettig gestoord
    pi_62638012
    quote:
    Op vrijdag 24 oktober 2008 11:56 schreef TommyGun het volgende:

    [..]

    Nee, alles kan verschillen, op de afbeelding idd niet te zien maar de dropdown menu's geven meerdere keuzes.
    Ah, ok.

    Ik zie in "echo "<select name='specificatie'>\n";" geen [] achter specificatie. Is dat het probleem
      vrijdag 24 oktober 2008 @ 12:22:14 #23
    137676 TommyGun
    Stik er maar in!
    pi_62638324
    quote:
    Op vrijdag 24 oktober 2008 12:08 schreef CraZaay het volgende:

    [..]

    Ah, ok.

    Ik zie in "echo "<select name='specificatie'>\n";" geen [] achter specificatie. Is dat het probleem
    Dat werkt idd voor specificatie, maar niet voor afdeling vreemd genoeg.

    1
    2
    3
    4
    5
    6
    7
    Array ( [werknemer] => 5 
    [specificatie] => Array ( [0] => 1 [1] => 4 [2] => 2 [3] => 1 [4] => 2 ) 
    [afdeling] => 22 
    [uren] => Array ( [0] => uur1 [1] => uur2 [2] => uur3 [3] => uur4 [4] => uur5 ) 
    [callnr] => Array ( [0] => call1 [1] => call2 [2] => call3 [3] => call4 [4] => call5 ) 
    [omschrijving] => Array ( [0] => test1 [1] => test2 [2] => test3 [3] => test4 [4] => test5 ) 
    [submit] => Submit ) 


    echo "<select name='afdeling[]'>\n";
    pi_62643678
    Een snelle vraag.

    Ik heb deze query:
    quote:
    SELECT *,ADDTIME(last_action,"31:15:00") AS `first_run` FROM background_scheduler_timeout WHERE `first_run` <= NOW();
    MySQL beweert `first_run` niet te kennen welke eerder in de query gedefineerd staat.

    Wat doe ik fout?
    pi_62648076
    De waarde voor first_run moet voor ieder record nog bepaald worden, terwijl je hetzelfde record hier wel op probeert te selecteren, dat gaat niet

    Je zou wel "WHERE last_action + 31:15 <= NOW()" (pseudocode) kunnen doen, dan heb je een harde waarde
    pi_62665517
    Mensen ik heb ook iets waar ik niet uit kom.

    Ik wil nieuws op een site kunnen plaatsen, daar kan ik zelf een datum aan geven (pub_date) (Die pub_date is een Unixtimestamp voorbeeld: 1224934001 = 25-10-2008 13:26) Het nieuws wat met een pub_date wat later is dan vandaag, mag nog niet op de site komen.

    Nu heb ik daarvoor de volgende query:
    1select * from nieuws where pub_date < UNIX_TIMESTAMP() ORDER BY pub_date


    Ik heb echter ook een nieuw nieuwsbericht met pubdate van 26 oktober 2008 ingevoerd, die wordt gewoon weergeven. Ik snap dat niet helemaal... Zijn er mensen die weten wat ik fout doe?

    Alvast bedankt! :)
    pi_62666226
    Sorry de query was toch goed, de datum invoer gaat nog niet helemaal goed, hij pakt opeens de lokale datum en tijd ipv de ingevoerde

    Had ik niet eerder gezien

    Maar goed het werkt, en ik had dus in de query niks fout gedaan
    pi_62677741
    quote:
    Op zaterdag 25 oktober 2008 14:43 schreef Twisted_Logic het volgende:
    Sorry de query was toch goed, de datum invoer gaat nog niet helemaal goed, hij pakt opeens de lokale datum en tijd ipv de ingevoerde

    Had ik niet eerder gezien

    Maar goed het werkt, en ik had dus in de query niks fout gedaan
    Kan gebeuren

    Overigens zou ik in die query <= gebruiken ipv <
    pi_62679001
    Even een korte vraag:

    1mysql_query = ("UPDATE ur_pstats SET goals=goals+$goals, assists=assists+$assists, games=games+1, wins='$win', points=points+$points WHERE user='$user'"); 


    Gaat dit werken? Het gaat mij om het gedeelte goals=goals+$goals. Ik weet dat games=games+1 werkt, maar of het ook op deze manier kan weet ik niet. Zo nee, hoe zou ik de query moeten veranderen?
      zondag 26 oktober 2008 @ 00:46:04 #30
    63192 ursel
    "Het Is Hier Fantastisch!
    pi_62679301
    quote:
    Op zondag 26 oktober 2008 00:28 schreef Irix het volgende:
    Even een korte vraag:
    [ code verwijderd ]

    Gaat dit werken? Het gaat mij om het gedeelte goals=goals+$goals. Ik weet dat games=games+1 werkt, maar of het ook op deze manier kan weet ik niet. Zo nee, hoe zou ik de query moeten veranderen?
    Niet op deze manier, omdat je variabelen binnen de "" staan.
    Maar waarom zou je de berekening zelf binnen je query willen doen?

    Ik ben eigenlijk zelf nooit echt een voorstander van geweest om in de UPDATE/INSERT query zelf al te veel "functionaliteit" te zetten.
    pi_62680026
    Op de andere manier die ik ik ken zou ik eerst de variabele goals moeten opvragen voor deze user. Ik hoopte dat het korter kon.
    pi_62681776
    quote:
    Op zondag 26 oktober 2008 00:46 schreef ursel het volgende:

    [..]

    Niet op deze manier, omdat je variabelen binnen de "" staan.
    Juist omdat de variabelen binnen "" staan, gaat het wel werken.
    quote:
    Maar waarom zou je de berekening zelf binnen je query willen doen?

    Ik ben eigenlijk zelf nooit echt een voorstander van geweest om in de UPDATE/INSERT query zelf al te veel "functionaliteit" te zetten.
    Heb je een ander voorstel voor "verhoog de huidige waarde met x"?
    pi_62681782
    quote:
    Op zondag 26 oktober 2008 00:28 schreef Irix het volgende:
    Even een korte vraag:
    [ code verwijderd ]

    Gaat dit werken? Het gaat mij om het gedeelte goals=goals+$goals. Ik weet dat games=games+1 werkt, maar of het ook op deze manier kan weet ik niet. Zo nee, hoe zou ik de query moeten veranderen?
    Voor zover ik kan zien, werkt het gewoon. Je moet uiteraard wel zorgen dat je variabelen vooraf worden gecontroleerd zodat ze geldige data bevatten.
      zondag 26 oktober 2008 @ 09:12:36 #34
    12880 CraZaay
    prettig gestoord
    pi_62682039
    Spuit 11 modus: wat Light zegt

    Ursel, waarom denk je dat het niet werkt doot die " "?
    pi_62684120
    1
    2
    3
    <?php
    echo "tvp";
    ?>
      zondag 26 oktober 2008 @ 12:15:48 #36
    63192 ursel
    "Het Is Hier Fantastisch!
    pi_62684796
    quote:
    Op zondag 26 oktober 2008 08:27 schreef Light het volgende:

    [..]

    Voor zover ik kan zien, werkt het gewoon. Je moet uiteraard wel zorgen dat je variabelen vooraf worden gecontroleerd zodat ze geldige data bevatten.
    Mja, zoals ik eigenlijk zei :
    quote:
    Ik ben eigenlijk zelf nooit echt een voorstander van geweest om in de UPDATE/INSERT query zelf al te veel "functionaliteit" te zetten.
    Doormiddel van een kleine functie welke voor je de berekeningen doet. Hierin verwerk je gelijk een validatie op je variabele en return je de uitgerekende waarde welke je in je query kan zetten. Met vaste "verhoogwaarde" zou ik het nog wel doen, maar met een variabele eigenlijk niet.

    Zal vast wel persoonlijke voorkeur zijn anders..

    Dat van die variabele tusse "" gebruik ik eigenlijk nooit en dacht dat het niet werkte / dan wel not done was.
    Maar blijkbaar heb ik dat dus mis.
    pi_62684926
    quote:
    Op zondag 26 oktober 2008 12:15 schreef ursel het volgende:

    [..]

    Mja, zoals ik eigenlijk zei :
    [..]

    Doormiddel van een kleine functioe welke voor je de berekeningen doet. Hierin verwerk je gelijk een validatie op je variabele en return je de uitgerekende waarde welke je in je query kan zetten.
    Dan moet je dus eerst alles uitlezen, vervolgens de nieuwe waardes berekenen en dan alles terugzetten. Het kan, maar je doet een onnodige query en je maakt een atomaire actie niet meer atomair. Dus kans op fouten.
    quote:
    Zal vast wel persoonlijke voorkeur zijn anders..

    Dat van die variabele tusse "" gebruik ik eigenlijk nooit en dacht dat het niet werkte / dan wel not done was.
    Maar blijkbaar heb ik dat dus mis.
    Ik gebruik het zelf niet, geef de voorkeur aan ''. En bij '' werkt het niet om variabelen in de string te zetten, die worden dan niet geparsed. Iets als een \n voor een newline werkt ook alleen tussen "", als je dat tussen '' zet krijg je gewoon \n te zien.
      zondag 26 oktober 2008 @ 12:32:31 #38
    63192 ursel
    "Het Is Hier Fantastisch!
    pi_62685134
    quote:
    Op zondag 26 oktober 2008 12:21 schreef Light het volgende:

    [..]

    Dan moet je dus eerst alles uitlezen, vervolgens de nieuwe waardes berekenen en dan alles terugzetten. Het kan, maar je doet een onnodige query en je maakt een atomaire actie niet meer atomair. Dus kans op fouten.
    [..]
    Mja, 9 van de 10 keer heb ik nagenoeg alle waarde welke ik wil inserten/updaten al ter beschikking dus valt die extra query in het niets.
    Maar ik begrijp je punt.
    quote:
    Ik gebruik het zelf niet, geef de voorkeur aan ''. En bij '' werkt het niet om variabelen in de string te zetten, die worden dan niet geparsed. Iets als een \n voor een newline werkt ook alleen tussen "", als je dat tussen '' zet krijg je gewoon \n te zien.
    Dat heb ik zelf eigenlijk ook nooit begrepen. Gebruik zelf namelijk ook altijd de enkele quote.
    Weet je misschien ook waarom dat zo is eigenlijk?
    pi_62685909
    Strings tussen enkele quotes worden niet geparsed op variabelen / andere meuk die erin staan... Dat zou dus een snelheidswinstje op moeten leveren, omdat PHP er niet over na hoeft te denken

    Ik zet altijd alles tussen single quotes, tenzij ik echt een linebreak moet hebben oid
    pi_62686098
    quote:
    Op zondag 26 oktober 2008 13:08 schreef Xcalibur het volgende:
    Strings tussen enkele quotes worden niet geparsed op variabelen / andere meuk die erin staan... Dat zou dus een snelheidswinstje op moeten leveren, omdat PHP er niet over na hoeft te denken :)

    Ik zet altijd alles tussen single quotes, tenzij ik echt een linebreak moet hebben oid
    Ik ook. Daarbij zijn single quotes makkelijker om te typen :)
    Als ik een linebreak aan het eind wil hebben doe ik ook nog wel eens
    1
    2
    3
    <?php
    echo 'string voor line break'."\n";
    ?>
      zondag 26 oktober 2008 @ 13:50:50 #41
    63192 ursel
    "Het Is Hier Fantastisch!
    pi_62686911
    quote:
    Op zondag 26 oktober 2008 13:17 schreef Light het volgende:

    [..]

    Ik ook. Daarbij zijn single quotes makkelijker om te typen
    Als ik een linebreak aan het eind wil hebben doe ik ook nog wel eens
    [ code verwijderd ]
    zo doe ik het ook ja..
    pi_62692796
    Ik hoef niet zo vaak een linebreak, tenzij ik eens een XML uitpoep die ik een beetje leesbaar wil houden ofzo
    pi_62692977
    Even een TVP plaatsen want ik heb een vraag maar ben hem op het moment vergeten.
    Bodybuilding #1
    Hardlopen #2
    pi_62693353
    Klein vraagje,

    Stel ik heb het volgende:
    1
    2
    3
    4
    5
    <?php
    return <<<TEMPLATE
    <title>&nbsp;{$news['title']}</title>
    TEMPLATE;
    ?>


    Hoe is het mogelijk om binnen de template een functie aan te roepen? bv {strtolower($news['title']);} dit werkt namelijk niet :{
    The people who lost my respect will never get a capital letter for their name again.
    Like trump...
      zondag 26 oktober 2008 @ 17:16:01 #45
    12880 CraZaay
    prettig gestoord
    pi_62693431
    quote:
    Op zondag 26 oktober 2008 12:32 schreef ursel het volgende:

    Dat heb ik zelf eigenlijk ook nooit begrepen. Gebruik zelf namelijk ook altijd de enkele quote.
    Weet je misschien ook waarom dat zo is eigenlijk?
    Parse snelheid. PHP gaat geen moeite doen om vars te parsen binnen enkele quotes, terwijl dat wel geprobeerd gaat worden binnen dubbele quotes. Het netste is imo om het gebruik hierop af te stemmen, dus echo('bla'); binnen enkele quotes en echo("$var"); binnen dubbele quotes (of echo("{$object->var}"); met accolades erbij).
      zondag 26 oktober 2008 @ 17:17:59 #46
    12880 CraZaay
    prettig gestoord
    pi_62693489
    quote:
    Op zondag 26 oktober 2008 17:13 schreef Chandler het volgende:
    Klein vraagje,

    Stel ik heb het volgende:
    [ code verwijderd ]

    Hoe is het mogelijk om binnen de template een functie aan te roepen? bv {strtolower($news['title']);} dit werkt namelijk niet
    Een non-breaking-space in een <title>?

    En als antwoord op je vraag: beetje moeilijk te zeggen zonder iets te weten van je template engine Sowieso, templates? Is dat wat we gebruikten voor er "views" kwamen?
    pi_62693554
    Dat is de template engine gewoon return van een tekst die begint met <<<TEMPLATE en afsluit met TEMPLATE; echter kan ik niet de documentatie van php terug vinden waar de uitleg staat en eventueel meerdere mogelijkheden.

    The people who lost my respect will never get a capital letter for their name again.
    Like trump...
    pi_62693674
    quote:
    Op zondag 26 oktober 2008 17:13 schreef Chandler het volgende:
    Klein vraagje,

    Stel ik heb het volgende:
    [ code verwijderd ]

    Hoe is het mogelijk om binnen de template een functie aan te roepen? bv {strtolower($news['title']);} dit werkt namelijk niet
    Nee, in een heredoc-notatie kun je geen functies aanroepen.
    pi_62694559
    Weer wat geleerd Light! tnx alleen maar variabelen, duidelijk!
    The people who lost my respect will never get a capital letter for their name again.
    Like trump...
      zondag 26 oktober 2008 @ 18:26:45 #50
    12880 CraZaay
    prettig gestoord
    pi_62695454
    Waarom gebruik je überhaupt heredoc, en niet gewoon quotes rond je string (die in PHP gewoon linebreaks mag hebben)? Scheelt weer wat code en is volgens mij net zo duidelijk?
      zondag 26 oktober 2008 @ 18:43:10 #51
    12221 Tijn
    Powered by MS Paint
    pi_62696018
    Hmm... PHP krijgt definitief namespaces, maar op Slashdot.org zijn ze er toch niet zo over te spreken
    pi_62696502
    quote:
    Op zondag 26 oktober 2008 18:26 schreef CraZaay het volgende:
    Waarom gebruik je überhaupt heredoc, en niet gewoon quotes rond je string (die in PHP gewoon linebreaks mag hebben)? Scheelt weer wat code en is volgens mij net zo duidelijk?
    dat hele heredoc gebeuren ontgaat me een beetje eerlijk gezegd...
    pi_62696617
    Het is geen source van mij maar van een vriend, en ik moest daar iets in gaan aanpassen.
    The people who lost my respect will never get a capital letter for their name again.
    Like trump...
    pi_62713009
    Pff, wat een gezeik met MATCH AGAINST

    Als ik een query doe op een aantal kolommen (MATCH(col1, col2, col3, etc.) duurt ie 1,6 seconden.
    Als ik een query doe op MATCH(col1) AND MATCH(col2), etc. duurt ie maar 0,02 seconden, maar kan ik niet op meer dan 1 woord zoeken.
    Een query op MATCH(col1) OR MATCH(col2) levert weer de juiste resultaten, maar duur ook 1,6 seconden

    Nu doe ik 8 losse queries, die ieder 0,02 seconden duren, en daarvan voeg ik de resultaten samen
    Dat moet toch anders kunnen zou je denken...

    Het probleem 1,5+ seconden van de 1,6 zit in de "copying to tmp table" actie, maar hoe ik dat kan voorkomen / versnellen wordt me niet duidelijk
    pi_62713363
    quote:
    Op maandag 27 oktober 2008 11:16 schreef Xcalibur het volgende:
    Pff, wat een gezeik met MATCH AGAINST

    Als ik een query doe op een aantal kolommen (MATCH(col1, col2, col3, etc.) duurt ie 1,6 seconden.
    Als ik een query doe op MATCH(col1) AND MATCH(col2), etc. duurt ie maar 0,02 seconden, maar kan ik niet op meer dan 1 woord zoeken.
    Een query op MATCH(col1) OR MATCH(col2) levert weer de juiste resultaten, maar duur ook 1,6 seconden

    Nu doe ik 8 losse queries, die ieder 0,02 seconden duren, en daarvan voeg ik de resultaten samen
    Dat moet toch anders kunnen zou je denken...

    Het probleem 1,5+ seconden van de 1,6 zit in de "copying to tmp table" actie, maar hoe ik dat kan voorkomen / versnellen wordt me niet duidelijk
    Als het over MySQL gaat kun je altijd met EXPLAIN kijken wat er ongeveer gebeurd.
    pi_62713954
    Ja, heb ik gedaan... indexen lijken allemaal goed te staan enzo

    Als ik alles uit de query sloop behalve de MATCH AGAINST win ik ook niks, dus het zit echt daarin.... en dan met name in die tmp table kennelijk, maar ik zou niet weten hoe ik die moet omzeilen...
      maandag 27 oktober 2008 @ 13:26:11 #57
    12880 CraZaay
    prettig gestoord
    pi_62716760
    quote:
    Op maandag 27 oktober 2008 11:50 schreef Xcalibur het volgende:
    Ja, heb ik gedaan... indexen lijken allemaal goed te staan enzo
    Teveel indexen? Of misschien ergens FORCE INDEX gebruiken?
    pi_62728158
    quote:
    Op vrijdag 24 oktober 2008 17:51 schreef Xcalibur het volgende:
    De waarde voor first_run moet voor ieder record nog bepaald worden, terwijl je hetzelfde record hier wel op probeert te selecteren, dat gaat niet

    Je zou wel "WHERE last_action + 31:15 <= NOW()" (pseudocode) kunnen doen, dan heb je een harde waarde
    Ik heb ergens de oplossing gevonden.

    In standaard SQL schijnt het niet toegstaan te zijn dat je je WHERE clause op aliasses doet. MySQL heeft hier de clause 'HAVING' voor gemaakt en dit werkt wel

    Link: http://dev.mysql.com/doc/refman/6.0/en/problems-with-alias.html

    Het staat gewoon in de f-Manual
      dinsdag 28 oktober 2008 @ 08:14:36 #59
    137676 TommyGun
    Stik er maar in!
    pi_62741060
    quote:
    Op vrijdag 24 oktober 2008 12:22 schreef TommyGun het volgende:

    [..]

    Dat werkt idd voor specificatie, maar niet voor afdeling vreemd genoeg.
    [ code verwijderd ]

    echo "<select name='afdeling[]'>\n";
    Iemand?
      dinsdag 28 oktober 2008 @ 10:38:56 #60
    187069 slacker_nl
    Sicko pur sang
    pi_62744129
    1
    2
    3
    4
    5
    6
    <?php
    foreach(array(116118112) as $v) {
        print 
    chr($v);
    }
    print 
    "\n";
    ?>
    In theory there is no difference between theory and practice. In practice there is.
      dinsdag 28 oktober 2008 @ 10:42:57 #61
    187069 slacker_nl
    Sicko pur sang
    pi_62744226
    quote:
    Op zondag 26 oktober 2008 18:57 schreef Xcalibur het volgende:

    [..]

    dat hele heredoc gebeuren ontgaat me een beetje eerlijk gezegd...
    Bijzonder handig voor grote lappen tekst.

    $str = <<OEF
    Dit is een hele grote lap tekst..
    ..
    ..
    ..
    OEF

    Ipv:

    $str = "Dit is een hele grote lap tekst..\n..\n..\n..\n";
    In theory there is no difference between theory and practice. In practice there is.
      dinsdag 28 oktober 2008 @ 10:54:17 #62
    137676 TommyGun
    Stik er maar in!
    pi_62744631
    quote:
    Op dinsdag 28 oktober 2008 10:38 schreef slacker_nl het volgende:

    [ code verwijderd ]
    Was dit voor mij bedoeld? En zoja; waar dient dit voor?

    B.v.d
      dinsdag 28 oktober 2008 @ 10:57:40 #63
    187069 slacker_nl
    Sicko pur sang
    pi_62744737
    quote:
    Op dinsdag 28 oktober 2008 10:54 schreef TommyGun het volgende:

    [..]

    Was dit voor mij bedoeld? En zoja; waar dient dit voor?

    B.v.d
    Het print tvp, en het was niet voor jou bedoeld

    Overigens werkt je code niet omdat afdeling geen array is, maar een scalar value..
    In theory there is no difference between theory and practice. In practice there is.
      dinsdag 28 oktober 2008 @ 11:14:21 #64
    137676 TommyGun
    Stik er maar in!
    pi_62745340
    quote:
    Op dinsdag 28 oktober 2008 10:57 schreef slacker_nl het volgende:

    [..]

    Het print tvp, en het was niet voor jou bedoeld

    Overigens werkt je code niet omdat afdeling geen array is, maar een scalar value..
    Hoe bedoel je dat?

    Mijn insert.php is nu als volgt:

    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
    <?php
    $current_time 
    date("Y-m-d");
    $con mysql_connect("localhost","root","password");
    if (!
    $con)
      {
      die(
    'Could not connect: ' mysql_error());
      }

    mysql_select_db("urendatabase"$con);

    print_r($_POST);

    for (
    $i 0$i 5; ++$i){
    $sql="INSERT INTO uren (userid, specid, afdelingid, uren, omschrijving, callnr, datum)
    VALUES ('$_POST[werknemer]','$_POST[specificatie][$i]','$_POST[afdeling][$i]','$_POST[uren][$i]','$_POST[omschrijving][$i]','$_POST[callnr][$i]','$current_time')"
    ;

    if (!
    mysql_query($sql,$con))
      {
      die(
    'Error: ' mysql_error());
      }
    }

    echo 
    "Werkzaamheden toegevoegd";
    echo 
    "<br><br>";
    echo(
    "<form><input type=\"button\" value=\"Vorige pagina\" onclick=\"parent.location='index.php'\" /></form>");
    echo(
    "<form><input type=\"button\" value=\"Terug naar Home\" onclick=\"parent.location='../index.php'\" /></form>");

    mysql_close($con)
    ?>


    Met deze output:

    1
    2
    3
    4
    5
    6
    7
    Array ( [werknemer] => 5 
    [specificatie] => Array ( [0] => 3 [1] => 1 [2] => 4 [3] => 2 [4] => 3 ) 
    [afdeling] => Array ( [0] => 10 [1] => 16 [2] => 14 [3] => 17 [4] => 14 ) 
    [uren] => Array ( [0] => 3 [1] => 4 [2] => 5 [3] => 6 [4] => 7 ) 
    [callnr] => Array ( [0] => 2342 [1] => 4234 [2] => 4234 [3] => 5456 [4] => 7657 ) 
    [omschrijving] => Array ( [0] => test1 [1] => test2 [2] => ttest3 [3] => test4 [4] => test5 ) 
    [submit] => Submit )


    Vreemd genoeg laat "afdeling" nu wel de array zijn terwijl ik niks heb aangepast.

    In de DB:



    B.v.d

    [ Bericht 42% gewijzigd door TommyGun op 28-10-2008 11:57:57 ]
      dinsdag 28 oktober 2008 @ 11:52:04 #65
    187069 slacker_nl
    Sicko pur sang
    pi_62746514
    quote:
    Op dinsdag 28 oktober 2008 11:14 schreef TommyGun het volgende:
    Hoe bedoel je dat?
    Daarmee wilde ik zeggen dat je een string/int whatever behandeld alsof het een array is, wat het niet is (in je voorgaande voorbeeld). Iets is een scalar als het maar een (1) waarde kan bevatten, een string, integer, float, double, etc. Arrays zijn geen scalar values.
    quote:
    Vreemd genoeg laat "afdeling" nu wel de array zijn terwijl ik niks heb aangepast.
    Kennelijk heeft die user uren verspreid over meerdere afdelingen?!
    quote:
    In de DB:
    [ afbeelding ]
    Kloppen die waardes wel met Array[3] enzo?

    Als je arrays wilt opslaan in mysql moet je wellicht zoiets doen: http://forums.mysql.com/read.php?101,158517,158517 . Al denk ik niet dat je dat nodig hebt..
    In theory there is no difference between theory and practice. In practice there is.
      dinsdag 28 oktober 2008 @ 11:56:03 #66
    137676 TommyGun
    Stik er maar in!
    pi_62746639
    Ja, de waardes kloppen. Het is juist de bedoeling dat je per afdeling en specificatie verschillende uren e.d. op kunt geven. Of begrijp ik je nu verkeerd?

    Bedankt
      dinsdag 28 oktober 2008 @ 12:58:11 #67
    187069 slacker_nl
    Sicko pur sang
    pi_62748468
    quote:
    Op dinsdag 28 oktober 2008 11:56 schreef TommyGun het volgende:
    Ja, de waardes kloppen. Het is juist de bedoeling dat je per afdeling en specificatie verschillende uren e.d. op kunt geven. Of begrijp ik je nu verkeerd?

    Bedankt
    Hoe kan je weten wat Array[1] is? Is het niet veel handiger om je uren gewoon als int op te slaan, je omschrijving als tekst, en je callnummer als int?

    Als je vervolgens de data ophaalt krijg je een resultset terug die ongeveer er zo uit ziet (select * from table where userid = 5)

    array(
    0 => array( uurid => 46,userid => 5, afdelingid => 0, uren => 2, omschrijving => "blaat", callnummer => 1234),
    1 => array( uurid => 47,userid => 5, afdelingid => 0, uren => 2, omschrijving => "blah", callnummer => 1234),
    2 => array( uurid => 48,userid => 5, afdelingid => 0, uren => 2, omschrijving => "nah", callnummer => 1234),
    )
    In theory there is no difference between theory and practice. In practice there is.
      dinsdag 28 oktober 2008 @ 13:25:58 #68
    137676 TommyGun
    Stik er maar in!
    pi_62749314
    Het werkt inmiddels dmv:

    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
    <?php
    $current_time 
    date("Y-m-d");
    $con mysql_connect("localhost","root","password");
    if (!
    $con)
      {
      die(
    'Could not connect: ' mysql_error());
      }

    mysql_select_db("urendatabase"$con);

    $werknemer $_POST['werknemer'];
    $afdeling $_POST['afdeling'];
    $uren $_POST['uren'];
    $specificatie $_POST['specificatie'];
    $omschrijving $_POST['omschrijving'];
    $callnr $_POST['callnr'];

    for (
    $i 0$i 5; ++$i){
    $sql="INSERT INTO uren (userid, specid, afdelingid, uren, omschrijving, callnr, datum)
    VALUES ('$werknemer', '$specificatie[$i]', '$afdeling[$i]', '$uren[$i]', '$omschrijving[$i]', '$callnr[$i]', '$current_time')"
    ;

    if (!
    mysql_query($sql,$con))
      {
      die(
    'Error: ' mysql_error());
      }
    }

    echo 
    "Werkzaamheden toegevoegd";
    echo 
    "<br><br>";
    echo(
    "<form><input type=\"button\" value=\"Vorige pagina\" onclick=\"parent.location='index.php'\" /></form>");
    echo(
    "<form><input type=\"button\" value=\"Terug naar Home\" onclick=\"parent.location='../index.php'\" /></form>");

    mysql_close($con)
    ?>


    Bedankt!
      dinsdag 28 oktober 2008 @ 13:55:24 #69
    159761 Arn0
    Abbey Road
    pi_62750242
    Hoi, ben een absolute beginner met MySQL en ik vroeg me af hoe groot de MySQL database van een IPB forum met +100 000 leden en +75 000 berichten? (het is voor een prijsvraag van iets)
    By hook or by crook, I'll be last in this book.
      dinsdag 28 oktober 2008 @ 13:58:07 #70
    63192 ursel
    "Het Is Hier Fantastisch!
    pi_62750334
    quote:
    Op dinsdag 28 oktober 2008 13:55 schreef Arn0 het volgende:
    Hoi, ben een absolute beginner met MySQL en ik vroeg me af hoe groot de MySQL database van een IPB forum met +100 000 leden en +75 000 berichten? (het is voor een prijsvraag van iets)
    Tja, da's ook lekker te zeggen..
    Is elke post een boekwerk of gewoon allemaal tvp's
    pi_62751093
    Een paar honderd MB? 100.000 leden zal een paar mb's in beslag nemen maar 75.000 posts zou ik toch minimaal een paar honderd mbtjes rekenen, tenzij de opzet brak is
    The people who lost my respect will never get a capital letter for their name again.
    Like trump...
    pi_62751371
    Wel wazig, een forum met meer leden dan posts
    pi_62753015
    quote:
    Op dinsdag 28 oktober 2008 @ 13:55 schreef Arn0 het volgende:
    Hoi, ben een absolute beginner met MySQL en ik vroeg me af hoe groot de MySQL database van een IPB forum met +100 000 leden en +75 000 berichten? (het is voor een prijsvraag van iets)
    Ik heb wel eens begrepen dan heel FOK! (volgens mij incl. alle subsites) een GB of 60 was.
      dinsdag 28 oktober 2008 @ 15:27:19 #74
    159761 Arn0
    Abbey Road
    pi_62753173
    Hmm ok, dan weet ik genoeg. Bedankt!
    By hook or by crook, I'll be last in this book.
      dinsdag 28 oktober 2008 @ 15:28:29 #75
    136730 PiRANiA
    All thinking men are atheists.
    pi_62753216
    quote:
    Op dinsdag 28 oktober 2008 15:21 schreef mcDavid het volgende:

    [..]

    Ik heb wel eens begrepen dan heel FOK! (volgens mij incl. alle subsites) een GB of 60 was.
    Ik denk echt veel en veel meer.
    Misschien het 3-dubbele.. minimaal..
      dinsdag 28 oktober 2008 @ 15:31:49 #76
    107951 JortK
    Immer kwaliteitsposts
    pi_62753331
    quote:
    Op dinsdag 28 oktober 2008 15:28 schreef PiRANiA het volgende:

    [..]

    Ik denk echt veel en veel meer.
    Misschien het 3-dubbele.. minimaal..
    90GB volgens mij wat ik laatste gehoord heb
      dinsdag 28 oktober 2008 @ 15:32:30 #77
    136730 PiRANiA
    All thinking men are atheists.
    pi_62753357
    quote:
    Op dinsdag 28 oktober 2008 15:31 schreef JortK het volgende:

    [..]

    90GB volgens mij wat ik laatste gehoord heb
    hm, okee.. valt me mee
    pi_62753957
    quote:
    Op dinsdag 28 oktober 2008 @ 15:31 schreef JortK het volgende:

    [..]

    90GB volgens mij wat ik laatste gehoord heb
    zou best kunnen, is al weer een poosje geleden dat ik het hoorde
    quote:
    Op dinsdag 28 oktober 2008 @ 15:27 schreef Arn0 het volgende:
    Hmm ok, dan weet ik genoeg. Bedankt!
    Take in mind dat FOK! onder de grootste internetcommunity's ter wereld valt heh!

    [ Bericht 18% gewijzigd door mcDavid op 28-10-2008 15:57:36 ]
      dinsdag 28 oktober 2008 @ 15:56:38 #79
    136730 PiRANiA
    All thinking men are atheists.
    pi_62754246
    grootte FOK! database (2006)
    quote:
    Op zondag 16 juli 2006 21:40 schreef Danny het volgende:
    forum: 40.1Gb
    frontpage: 2.7Gb
    fotoboek: 1.0Gb
    fokgames: 481.1Mb
    sport: 397.9Mb
    weblog: 198.5Mb
    pi_62754366
    -edit-

    je bent me voor
      dinsdag 28 oktober 2008 @ 16:05:26 #81
    159761 Arn0
    Abbey Road
    pi_62754575
    quote:
    Take in mind dat FOK! onder de grootste internetcommunity's ter wereld valt heh!
    Ik weet het, maar er waren keuzemogelijkheden en ik twijfelde tussen 300 MB en 1,1 GB (heb dat laatste maar genomen)
    By hook or by crook, I'll be last in this book.
    pi_62756564
    Ik heb hier een database van een messageboard met ruim 3400 leden en bijna 210.000 posts, en die is 157,5 MB.... standaard phpBB installatie
      dinsdag 28 oktober 2008 @ 17:12:16 #83
    12221 Tijn
    Powered by MS Paint
    pi_62756715
    Ik vind 1,1 GB een beetje veel voor 75000 posts. Maar er is natuurlijk verder niks zinnigs over te zeggen als je niet weet wat er allemaal wordt opgeslagen per bericht en hoe lang die berichten zijn.
      dinsdag 28 oktober 2008 @ 18:14:16 #84
    159761 Arn0
    Abbey Road
    pi_62758206
    Er zijn wel wat lange berichten op dat forum , dat wel, en dit waren de keuzemogelijkheden(heb even teruggekeken):
    A. 9,6 MB
    B. 148 MB
    C. 1,6 GigaByte
    D. 23,8 TeraByte

    Heb dus voor C gekozen.
    By hook or by crook, I'll be last in this book.
      dinsdag 28 oktober 2008 @ 18:32:20 #85
    75592 GlowMouse
    l'état, c'est moi
    pi_62758664
    Dat is vrijwel zeker B
    eee7a201261dfdad9fdfe74277d27e68890cf0a220f41425870f2ca26e0521b0
      dinsdag 28 oktober 2008 @ 18:36:54 #86
    159761 Arn0
    Abbey Road
    pi_62758770
    Denk je? Het forum lijkt niet echt op FOK, als je weet wat ik bedoel. (gemiddelde post is langer dan 1 lijn)

    EDIT: Ze hebben ook een soort Wiki, maar geen idee of die erbij wordt gerekend of niet. Denk het niet, mja.

    [ Bericht 11% gewijzigd door Arn0 op 28-10-2008 18:43:56 ]
    By hook or by crook, I'll be last in this book.
      dinsdag 28 oktober 2008 @ 18:43:51 #87
    75592 GlowMouse
    l'état, c'est moi
    pi_62758945
    Als je die eerste post van Danny neemt, kom je op ongeveer 1 miljoen posts per gigabyte, ofwel 75 MB voor jouw vraagstuk. In veel fora worden nog best wel lange posts geplaatst, het zijn niet alleen tvp's.
    Maar ik baseer mij op cijfers van een ander forum (kom je in de buurt van B) en op wat Xcalibur zegt (zit je ver onder B), en daar zit je geen factor 10 boven.
    eee7a201261dfdad9fdfe74277d27e68890cf0a220f41425870f2ca26e0521b0
      dinsdag 28 oktober 2008 @ 18:45:06 #88
    159761 Arn0
    Abbey Road
    pi_62758971
    Hmm, tot zover mijn kans op de hoofdprijs Nuja, bedankt voor de moeite.
    By hook or by crook, I'll be last in this book.
    pi_62759147
    Ga je nog even met ons delen waar we die hoofdprijs kunnen winnen? :
      dinsdag 28 oktober 2008 @ 18:57:48 #90
    159761 Arn0
    Abbey Road
    pi_62759266
    Dat zou ik kunnen doen, maar zal niet veel zin hebben mits je een 'oldbie' moet zijn op dat forum (sommige vragen gaan over de geschiedenis van dat forum zal ik maar zeggen.)
    By hook or by crook, I'll be last in this book.
    pi_62759475
    Vervolg op opheffing domein

    Op dat we met zijn allen nķķit zullen vergeten onze scripts fatsoenlijk te beschermen!
    pi_62766745
    quote:
    Op dinsdag 28 oktober 2008 18:14 schreef Arn0 het volgende:
    Er zijn wel wat lange berichten op dat forum , dat wel, en dit waren de keuzemogelijkheden(heb even teruggekeken):
    A. 9,6 MB
    B. 148 MB
    C. 1,6 GigaByte
    D. 23,8 TeraByte

    Heb dus voor C gekozen.
    Uit mijn eigen ervaring zou ik dus B kiezen
      woensdag 29 oktober 2008 @ 00:57:46 #93
    85919 Likkende_Lassie
    Doe eens wat aan je ondertitel
    pi_62770739
    Ik heb het volgende als een soort van beveiliging op een website, zodat er geen programma's kunenn worden losgelaten om de server vast te laten lopen:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <?php
    $memcache_obj 
    memcache_connect('127.0.0.1'11211);
    $delay_requests =  memcache_get($memcache_obj'site[delay_requests]['.$_SERVER['REMOTE_ADDR'].']');

    if (
    $delay_requests 5){
       
    memcache_set($memcache_obj'site[delay_requests]['.$_SERVER['REMOTE_ADDR'].']', ($delay_requests+1), 010);
       die(
    'Er is een fout opgetreden. U dient 10 seconden te wachten alvorens u de pagina kan herladen.');
    }
    memcache_set($memcache_obj'site[delay_requests]['.$_SERVER['REMOTE_ADDR'].']', ($delay_requests+1), 01);
    ?>


    Iemand op/aanmerkingen?
    pi_62771019
    Ik zoek zoiets als het volgende, maar helaas werkt dit script alleen in Internet Explorer (niet in Chrome of Firefox iig). Weet iemand hoe het makkelijk in php kan of een betere javascript code?

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    <html><head><title>Voorbeeldbrief</title>
    <script type="text/javascript">
    // _w : ID
    // _h : 'h' (=hide(verbergen)), of 's' (=show(tonen))
    function wisselen(_w,_h) {
    if (document.all) { 
    if (_h=='s') eval("document.all."+_w+".style.visibility='visible';");
    if (_h=='h') eval("document.all."+_w+".style.visibility='hidden';");
    } else { 
    if (_h=='s') eval("document.layers['"+_w+"'].visibility='show';");
    if (_h=='h') eval("document.layers['"+_w+"'].visibility='hide';");
    }
    }
    </script>
    </head><body>
    <!-- Invoegen van het script gebeurt door toevoegen van onClick: -->
    <form>
    Tonen <input name="r1" type="radio" checked value="" onClick="wisselen('deel1','s')">
    Verbergen <input name="r1" type="radio" value="" onClick="wisselen('deel1','h')">
    </form> 
    <form>
    Jaar <input name="t1" type="text">
    <label>
    <input type="submit" name="b1" id="b1" value="Invoeren">
    </label>
    </form> 

    <!-- Het formuliergedeelte dat je wil tonen/verbergen plaats je tussen <span>-tags: -->
    <span id="deel1" style="visibility:visible;position:relative;top:0;left:0">
    <form>
    Hier een te verbergen of te tonen tekst.
    </form>
    </span>
    <span id="deel2">
    <!-- en hier wil ik graag de tekst van t1 hebben -->
    </span>
    </body></html>
    pi_62771068
    quote:
    Op woensdag 29 oktober 2008 @ 01:17 schreef killko het volgende:
    Ik zoek zoiets als het volgende, maar helaas werkt dit script alleen in Internet Explorer (niet in Chrome of Firefox iig). Weet iemand hoe het makkelijk in php kan of een betere javascript code?
    [ code verwijderd ]
    euh, wat heeft dat precies met PHP te maken?

    [Javascript] voor dummies (deel 8)

    -edit-
    gewoon document.getElementById gebruiken ipv 'layers' of 'all' shizle. Weet niet waarom ze dat verzonnen hebt maar is nergens voor nodig in deze vorm.

    [ Bericht 6% gewijzigd door mcDavid op 29-10-2008 01:38:27 ]
      woensdag 29 oktober 2008 @ 08:13:55 #96
    12880 CraZaay
    prettig gestoord
    pi_62772583
    quote:
    Op woensdag 29 oktober 2008 01:20 schreef mcDavid het volgende:

    gewoon document.getElementById gebruiken ipv 'layers' of 'all' shizle. Weet niet waarom ze dat verzonnen hebt maar is nergens voor nodig in deze vorm.
    Ter aanvulling: en die eval() mag ook wel overal weg.
    pi_62775410
    quote:
    Op woensdag 29 oktober 2008 01:20 schreef mcDavid het volgende:

    [..]

    euh, wat heeft dat precies met PHP te maken?
    Eeh, niks, maar ik dacht dat het misschien wel makkelijker in php kon.
    quote:
    Zal't hier wel ff plaatsen.
    quote:
    -edit-
    gewoon document.getElementById gebruiken ipv 'layers' of 'all' shizle. Weet niet waarom ze dat verzonnen hebt maar is nergens voor nodig in deze vorm.
    OK, zal het eens proberen.
      woensdag 29 oktober 2008 @ 11:53:18 #98
    85919 Likkende_Lassie
    Doe eens wat aan je ondertitel
    pi_62778250
    iemand nog iets aan te merken op mijn post, of tips? :

    Ik heb het volgende als een soort van beveiliging op een website, zodat er geen programma's kunenn worden losgelaten om de server vast te laten lopen:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <?php
    $memcache_obj 
    memcache_connect('127.0.0.1'11211);
    $delay_requests =  memcache_get($memcache_obj'site[delay_requests]['.$_SERVER['REMOTE_ADDR'].']');

    if (
    $delay_requests 5){
       
    memcache_set($memcache_obj'site[delay_requests]['.$_SERVER['REMOTE_ADDR'].']', ($delay_requests+1), 010);
       die(
    'Er is een fout opgetreden. U dient 10 seconden te wachten alvorens u de pagina kan herladen.');
    }
    memcache_set($memcache_obj'site[delay_requests]['.$_SERVER['REMOTE_ADDR'].']', ($delay_requests+1), 01);
    ?>


    Iemand op/aanmerkingen?

    [ Bericht 93% gewijzigd door Likkende_Lassie op 29-10-2008 21:34:04 ]
      woensdag 29 oktober 2008 @ 21:37:52 #99
    85919 Likkende_Lassie
    Doe eens wat aan je ondertitel
    pi_62794777
    Dan nog even een andere vraag:

    In het kort, ik heb een zoekmachine, en nu wil ik per resultaat wat wordt weergegeven (max. 10 op een pagina) dit opslaan voor de statistieken die per resultaat te bekijken moeten zijn. Tevens moet het worden opgeslagen als er daadwerkelijk op een resultaat wordt geklikt.

    Aangezien er per seconde zo'n 3,5 zoekopdrachten worden gedaan, kan dit het performance nogal beinvloeden. Hoe kan ik dit het beste opslaan? Misschien via memcached eerst opslaan, en op een rustig moment van de dag het in de database verwerken?
      woensdag 29 oktober 2008 @ 22:35:08 #100
    75592 GlowMouse
    l'état, c'est moi
    pi_62797131
    Ik neem aan dat je zelf weet wat die memcache-code doet. Of het afdoende beveiliging biedt, hangt van je site af. Zijn er pagina's die erg veel tijd kosten om te genereren, dan zal de beveiliging niet zo goed werken.
    Daarnaast zit je al in PHP voordat deze code wordt uitgevoerd. Een mod voor Apache of wat firewall-regels kunnen dit efficiënter. Ook wil je wellicht een log bijhouden.

    Voor de reguliere storage engines (MyISAM/InnoDB) is gemiddeld 35 rijen/seconde invoegen in een tabel geen enkel probleem. Probeer wel zoveel mogelijk rijen met één INSERT-query te behandelen.
    eee7a201261dfdad9fdfe74277d27e68890cf0a220f41425870f2ca26e0521b0
      woensdag 29 oktober 2008 @ 22:40:05 #101
    85919 Likkende_Lassie
    Doe eens wat aan je ondertitel
    pi_62797283
    quote:
    Op woensdag 29 oktober 2008 22:35 schreef GlowMouse het volgende:
    Ik neem aan dat je zelf weet wat die memcache-code doet. Of het afdoende beveiliging biedt, hangt van je site af. Zijn er pagina's die erg veel tijd kosten om te genereren, dan zal de beveiliging niet zo goed werken.
    Daarnaast zit je al in PHP voordat deze code wordt uitgevoerd. Een mod voor Apache of wat firewall-regels kunnen dit efficiënter. Ook wil je wellicht een log bijhouden.

    Voor de reguliere storage engines (MyISAM/InnoDB) is gemiddeld 35 rijen/seconde invoegen in een tabel geen enkel probleem. Probeer wel zoveel mogelijk rijen met één INSERT-query te behandelen.

    Ik heb de memcached code voor het zware gedeelte staan van de pagina's (search etc.)
    Aangezien het een custom iets is, dus soms voor andere pagina's een andere waarde, zal
    een firewall niet naar behoeven werken. Een mod misschien wel?

    Als dat geen probleem is, prima! Ik zal het inderdaad in één query stoppen, ipv losse queries zoals nu.
    En qua updates, geldt hiervoor hetzelfde?
      donderdag 30 oktober 2008 @ 00:08:20 #102
    12880 CraZaay
    prettig gestoord
    pi_62799832
    quote:
    Op woensdag 29 oktober 2008 00:57 schreef Likkende_Lassie het volgende:
    Iemand op/aanmerkingen?
    Ja Sla het resultaat van die zware bewerking die je server vast doet lopen (moet nogal wat zijn dan) op in memcached, en zet geen limiet op het aantal requests.
      dinsdag 4 november 2008 @ 20:32:16 #103
    74548 Jo0Lz
    Lick the box!
    pi_62945144
    Ehm, ik heb even een vraag.
    Ik heb een scriptje, dat ik gebruik om een plaatje op te roepen op basis van de titel van die pagina.

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    <?php
       $bloginfo_link = get_bloginfo('template_directory');
       $image_folder = $bloginfo_link . '/images/sidebar';
       $page = get_the_title();
    if (file_exists($image_folder . '/'.$page.'.png'))
       { 
       echo "<img src=\"$image_folder/".$page.".png\">";
        }
    else 
       {  
       echo "<img src=\"$image_folder/Nieuws.png\">";
       }
    ?> 


    Hij laat alleen het plaatje "Nieuws.png" zien. Terwijl, als ik de check weghaal, bij alle pagina's correct de afbeelding wordt weergegeven.

    Iemand een idee, wat ik fout doe? Is die "if file_exists" zo goed?
    Blijkbaar, faalt hij op dat punt, en laat hij de afbeelding "Nieuws.png" zien, terwijl dat "Welkom.png" moet zijn.

    Als ik "echo $page" in het script verwerk, krijg ik wel de juiste terugkoppeling, namelijk "Welkom".
    Yes we can! | I didn't fail, it's just postponed success.
      dinsdag 4 november 2008 @ 20:35:23 #104
    75592 GlowMouse
    l'état, c'est moi
    pi_62945252
    file_exists kijkt op het lokale filesystem. Dat betekent dat als jij een url opgeeft als http://.. hij, om te kijken of het bestaat, die site op moet vragen. En dat doet file_exists niet, dus geeft hij false en krijg je Nieuws.png.
    eee7a201261dfdad9fdfe74277d27e68890cf0a220f41425870f2ca26e0521b0
    pi_62945268
    hoofletters/kleine letters zijn correct in de bestandsnamen?

    doe anders ff echo ($image_folder . '/'.$page.'.png');, dan kun je zien welk bestand hij precies probeert te checken.
      dinsdag 4 november 2008 @ 20:54:06 #106
    74548 Jo0Lz
    Lick the box!
    pi_62945876
    quote:
    Op dinsdag 4 november 2008 20:35 schreef mcDavid het volgende:
    hoofletters/kleine letters zijn correct in de bestandsnamen?

    doe anders ff echo ($image_folder . '/'.$page.'.png');, dan kun je zien welk bestand hij precies probeert te checken.
    Ja, ik heb de afbeeldingen met hoofdletters geupload. Als ik dus echo $image_folder .'/'.$page.'.png') invoer, dan geeft hij die afbeelding weer. Dat stukje werkt dus, maar de check niet.
    Yes we can! | I didn't fail, it's just postponed success.
      dinsdag 4 november 2008 @ 21:03:44 #107
    74548 Jo0Lz
    Lick the box!
    pi_62946210
    Het complete pad, van het lokale systeem, wat ik weet is:
    1/public_html/wp/wp-content/themes/mijnthema/images/sidebar

    Hoe krijg ik het nou zover dat die check op die directory gedaan wordt?
    Een nieuwe var aanmaken, met iets van 'images/sidebar', en dan daar de check op proberen?
    Yes we can! | I didn't fail, it's just postponed success.
      dinsdag 4 november 2008 @ 21:06:43 #108
    75592 GlowMouse
    l'état, c'est moi
    pi_62946302
    In dat geval moet '/public_html/wp/wp-content/themes/mijnthema/images/sidebar/' . $page . '.png' bestaan
    eee7a201261dfdad9fdfe74277d27e68890cf0a220f41425870f2ca26e0521b0
    pi_62946576
    sidenote:

    ook op het lokale systeem kun je met relatieve paden werken.
      dinsdag 4 november 2008 @ 21:20:17 #110
    74548 Jo0Lz
    Lick the box!
    pi_62946726
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
       <?php
       $bloginfo_link = get_bloginfo('template_directory');
       $image_folder = $bloginfo_link . '/images/sidebar';
       $images = 'wp-content/themes/mijnthema/images/sidebar';
       $page = get_the_title();
    if (file_exists($images.'/'.$page.'.png'))
       { 
       echo "<img src=\"$image_folder/".$page.".png\">";
        }
    else 
       {  
       echo "<img src=\"$image_folder/Nieuws.png\">";
       }
    ?> 

    Nu werkt het . Blijkbaar was dat genoeg, ik had namelijk nog een
    1       echo "<img src=\"$images/Nieuws.png\">";
    toegevoegd, en daarin zag ik wat hij probeerde weer te geven, zo kwam ik erachter, dat dat public_html er niet bij hoefde.

    Trial en error, maar wel overwinning.
    Yes we can! | I didn't fail, it's just postponed success.
    pi_62948272
    quote:
    Op dinsdag 4 november 2008 20:32 schreef Jo0Lz het volgende:
    Ehm, ik heb even een vraag.
    Ik heb een scriptje, dat ik gebruik om een plaatje op te roepen op basis van de titel van die pagina.
    [ code verwijderd ]

    Hij laat alleen het plaatje "Nieuws.png" zien. Terwijl, als ik de check weghaal, bij alle pagina's correct de afbeelding wordt weergegeven.

    Iemand een idee, wat ik fout doe? Is die "if file_exists" zo goed?
    Blijkbaar, faalt hij op dat punt, en laat hij de afbeelding "Nieuws.png" zien, terwijl dat "Welkom.png" moet zijn.

    Als ik "echo $page" in het script verwerk, krijg ik wel de juiste terugkoppeling, namelijk "Welkom".
    Ik denk dat het fout gaat met $image_folder. Met file_exists() kijk je op het file system en als je diezelfde directory in een <img> gebruikt dan is het waarschijnlijk niet de goede directory.

    Met echo dirname(__FILE__); kun je zien wat het volledige pad is van het bestand waar je die tekst in hebt staan.
    pi_62961900
    Ik heb een vraag, ik wil statistieken achterhalen per website en opslaan in een database (dit gaat erg goed) maar nu zit ik met het volgende probleem.

    Een site in Nederland heeft GMT 0 maar een site in america heeft heel andere tijden, nu gebruik ik NOW() in mijn MySQL queries maar wil eingelijk de tijd opslaan van de gebruiker zijn website, hoe moet ik dit realiseren?
    The people who lost my respect will never get a capital letter for their name again.
    Like trump...
      woensdag 5 november 2008 @ 09:48:30 #113
    62215 qu63
    ..de tijd drinkt..
    pi_62962006
    quote:
    Op woensdag 5 november 2008 09:42 schreef Chandler het volgende:
    Ik heb een vraag, ik wil statistieken achterhalen per website en opslaan in een database (dit gaat erg goed) maar nu zit ik met het volgende probleem.

    Een site in Nederland heeft GMT 0 maar een site in america heeft heel andere tijden, nu gebruik ik NOW() in mijn MySQL queries maar wil eingelijk de tijd opslaan van de gebruiker zijn website, hoe moet ik dit realiseren?
    Met javascript de lokale datum/tijd ophalen en die in je database stoppen?
    It's Time To Shine
    [i]What would life be like without rhethorical questions?[/i]
      woensdag 5 november 2008 @ 10:21:27 #114
    63192 ursel
    "Het Is Hier Fantastisch!
    pi_62962828
    quote:
    Op woensdag 5 november 2008 09:42 schreef Chandler het volgende:
    Ik heb een vraag, ik wil statistieken achterhalen per website en opslaan in een database (dit gaat erg goed) maar nu zit ik met het volgende probleem.

    Een site in Nederland heeft GMT 0 maar een site in america heeft heel andere tijden, nu gebruik ik NOW() in mijn MySQL queries maar wil eingelijk de tijd opslaan van de gebruiker zijn website, hoe moet ik dit realiseren?
    GMT +1
    pi_62964041
    maar met javascript is geen optie, want het gaat om dynamisch gegenereerde afbeeldingen die kan helaas geen javascript uitlezen
    The people who lost my respect will never get a capital letter for their name again.
    Like trump...
      woensdag 5 november 2008 @ 11:12:20 #116
    62215 qu63
    ..de tijd drinkt..
    pi_62964165
    quote:
    Op woensdag 5 november 2008 11:07 schreef Chandler het volgende:
    maar met javascript is geen optie, want het gaat om dynamisch gegenereerde afbeeldingen die kan helaas geen javascript uitlezen
    Dus je wil server-side iets client-side uitlezen?
    It's Time To Shine
    [i]What would life be like without rhethorical questions?[/i]
    pi_62964399
    Als dat mogelijk is maar zelf wil ik nu inbouwen dat een gebruiker een keuze kan maken middels een select welke timezone hun site zit en dat ik deze timezone dan ga gebruiken maar ben er dus nog niet achter hoe ik dit m.b.t NOW() moet verwerken.

    BV ik heb +1 (1 uur) hoe kan ik dit dan inserten bij NOW() (oftewel in combinatie van NOW +1)

    Ik hoop dat jullie het snappen
    The people who lost my respect will never get a capital letter for their name again.
    Like trump...
      woensdag 5 november 2008 @ 11:31:42 #118
    63192 ursel
    "Het Is Hier Fantastisch!
    pi_62964723
    quote:
    Op woensdag 5 november 2008 11:20 schreef Chandler het volgende:
    Als dat mogelijk is maar zelf wil ik nu inbouwen dat een gebruiker een keuze kan maken middels een select welke timezone hun site zit en dat ik deze timezone dan ga gebruiken maar ben er dus nog niet achter hoe ik dit m.b.t NOW() moet verwerken.

    BV ik heb +1 (1 uur) hoe kan ik dit dan inserten bij NOW() (oftewel in combinatie van NOW +1)

    Ik hoop dat jullie het snappen
    Kan je het niet per website alleen de tijdsinstelling opslaan?
    Als je dan gegevens ophaalt van de website combineer je tijdsinstelling + de NOW gegevens.

    Overigens heb ik me er nooit in verdiept, maar ken applicaties welke je taalinstellingen overnemen van de gegevens van je browser. Kan je zoiets ook niet met de tijdsinstellingen doen?
    pi_62970201
    Dat wil ik dus, echter heb ik dan +1 -1 -5.5 etc qua uren staan, en hoe kan ik deze aan NOW() toevoegen qua uren?

    Verder wil ik wel eens weten of deze routine korter kan om random wachtwoorden te geneneren
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    <?php
    function randomCode($len 8)
    {
        
    $rts '';
        
    $str '';
        
    $a = array(65=>90,97=>122,48=>57);
        foreach (
    $a AS $i=>$v)
        {
            for (
    $x $i$x <= $v$x++)
            {
                
    $rts .= chr($x);
            }
        }
        for (
    $i 1$i <= $len$i++)
        {
            
    $str .= $rts[rand(1strlen($rts)-1)];
        }
        return 
    $str;
    }
    ?>


    en op 1 regel
    1
    2
    3
    <?php
    function randomCode($len=8){$rts='';$str='';$a=array(65=>90,97=>122,48=>57);foreach($a AS $i=>$v){for $x=$i;$x<=$v;$x++){$rts.=chr($x);}}for ($i=1;$i<=$len;$i++){$str.=$rts[rand(1,strlen($rts)-1)];}return $str;}
    ?>




    [ Bericht 2% gewijzigd door Chandler op 05-11-2008 15:41:09 (kleine aanpassing ;)) ]
    The people who lost my respect will never get a capital letter for their name again.
    Like trump...
    pi_62976918
    quote:
    Op woensdag 5 november 2008 14:50 schreef Chandler het volgende:
    Dat wil ik dus, echter heb ik dan +1 -1 -5.5 etc qua uren staan, en hoe kan ik deze aan NOW() toevoegen qua uren?
    Even een gedachtenkronkel, weet niet zeker of het het juiste resultaat oplevert:

    De timestamp in de database opslaan en dan per klant via date_default_timezone_set() en date_default_timezone_get() + date() functie de tijd correct laten zien?
      woensdag 5 november 2008 @ 19:03:44 #121
    75592 GlowMouse
    l'état, c'est moi
    pi_62977830
    Het aanmaken van $rts kan korter door
    1
    2
    3
    <?php
    $rts 
    'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';
    ?>

    of anders door:
    1
    2
    3
    4
    <?php
    $rts 
    array_mergerange('A''Z'), range('a''z'), range('0''9'));
    $rts implode(''$rts);
    ?>
    eee7a201261dfdad9fdfe74277d27e68890cf0a220f41425870f2ca26e0521b0
    pi_62978336
    quote:
    Op woensdag 5 november 2008 14:50 schreef Chandler het volgende:
    Dat wil ik dus, echter heb ik dan +1 -1 -5.5 etc qua uren staan, en hoe kan ik deze aan NOW() toevoegen qua uren?

    Verder wil ik wel eens weten of deze routine korter kan om random wachtwoorden te geneneren
    [ code verwijderd ]

    en op 1 regel :P
    [ code verwijderd ]

    :D
    Je maakt wachtwoorden zonder hoofdletter A? Of heb je een andere reden om in het stukje
    1
    2
    3
    <?php
    $rts
    [rand(1strlen($rts)-1)]
    ?>
    niet 0 mee te geven als eerste parameter aan rand()?
    pi_62978363
    quote:
    Op woensdag 5 november 2008 19:03 schreef GlowMouse het volgende:
    Het aanmaken van $rts kan korter door
    [ code verwijderd ]

    of anders door:
    [ code verwijderd ]
    Eigenljik hoef je er niet eens een string van te maken. De code werkt ook met een array.
      woensdag 5 november 2008 @ 20:15:32 #124
    136730 PiRANiA
    All thinking men are atheists.
    pi_62979982
    quote:
    Op woensdag 5 november 2008 19:03 schreef GlowMouse het volgende:
    Het aanmaken van $rts kan korter door
    [ code verwijderd ]

    of anders door:
    [ code verwijderd ]
    ja, maar wat is efficiënter als het gaat om processorsnelheid?
    pi_62981418
    quote:
    Op woensdag 5 november 2008 20:15 schreef PiRANiA het volgende:

    [..]

    ja, maar wat is efficiënter als het gaat om processorsnelheid?
    De eerste oplossing van GlowMouse.
      woensdag 5 november 2008 @ 21:40:30 #126
    107951 JortK
    Immer kwaliteitsposts
    pi_62983036
    Vraagje, ik declareer een array in mijn class:

    1
    2
    3
    <?php
    public $sub = array();
    ?>


    Vervolgens heb ik een functie waarmee ik deze array wil vullen:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    <?php
        
    function GetSub()
        {
            
    $matches = array();
            
    preg_match_all('pregstring',$this->data,$this->sub);
        }
        
    ?>


    Hier moeten twee matches uitkomen.

    Wanneer ik nu de functie ga aanroepen en de array ga weergeven, krijg ik de volgende zooi terug:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    Array
    (
        [0] => Array
            (
            )

        [1] => Array
            (
            )

        [2] => Array
            (
            )

    )


    Terwijl wanneer ik het op een simpele manier test de array wel gevuld is, iemand een idee? :)
      woensdag 5 november 2008 @ 21:48:14 #127
    75592 GlowMouse
    l'état, c'est moi
    pi_62983344
    Waarom noem je $matches in je voorbeeld?

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    <?php
    class JortK {
        public 
    $sub = array();
        function 
    GetSub() {
            
    preg_match_all('/s/''asdfasdfasdf'$this->sub);
        }

    }
    $j = new JortK();
    $j->GetSub();
    print_r($j->sub);
    ?>

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Array
    (
        [0] => Array
            (
                [0] => s
                [1] => s
                [2] => s
            )

    )
    eee7a201261dfdad9fdfe74277d27e68890cf0a220f41425870f2ca26e0521b0
      woensdag 5 november 2008 @ 22:02:33 #128
    107951 JortK
    Immer kwaliteitsposts
    pi_62983913
    Thanks Glowmouse, maar het bleek in de access modifier van een andere variabel te zitten
      donderdag 6 november 2008 @ 15:18:32 #129
    63192 ursel
    "Het Is Hier Fantastisch!
    pi_63001850
    Kan je een "SELECT * " SQL uitvoeren waarbij je 1 kolom exclude uit de resultaten?
      donderdag 6 november 2008 @ 15:28:03 #130
    107951 JortK
    Immer kwaliteitsposts
    pi_63002094
    quote:
    Op donderdag 6 november 2008 15:18 schreef ursel het volgende:
    Kan je een "SELECT * " SQL uitvoeren waarbij je 1 kolom exclude uit de resultaten?
    Waarom niet gewoon dan SELECT veld1, veld2, veld3 FROM table doen?
    pi_63002173
    Ik heb nog niet zo heel veel met SQL gewerkt ofzo, maar je kunt toch gewoon de gegevens uit die kolom dan niet gebruiken?

    Maar de manier van JortK lijkt me idd beter, dat zal een (iets) minder zware query zijn.
      donderdag 6 november 2008 @ 15:31:51 #132
    63192 ursel
    "Het Is Hier Fantastisch!
    pi_63002201
    quote:
    Op donderdag 6 november 2008 15:28 schreef JortK het volgende:

    [..]

    Waarom niet gewoon dan SELECT veld1, veld2, veld3 FROM table doen?
    Ik ben momenteel bezig om van ons archive-proces deze ook te gebruiken om producten te kunnen klonen.
    Bij het archiveren heb ik geen last van DUPLICATE KEYS omdat deze keys nog niet in de archive database zitten.

    Tijdens het kloon process blijf ik dus in dezelfde database en moet eigenlijk alleen sommige ID's gebruik gaan maken van de auto-incremental.

    Het product te klonen heeft informatie in +/- 10 tables, waarbij de main-table zelfs tot 35 kolommen bevat. Ik hoopte dus eigenlijk dat ik grote delen van het archive proces kon hergebruiken..
      donderdag 6 november 2008 @ 15:32:13 #133
    12221 Tijn
    Powered by MS Paint
    pi_63002213
    Het is sowieso netter om geen "SELECT *" te gebruiken.
      donderdag 6 november 2008 @ 15:33:07 #134
    63192 ursel
    "Het Is Hier Fantastisch!
    pi_63002239
    quote:
    Op donderdag 6 november 2008 15:32 schreef Tijn het volgende:
    Het is sowieso netter om geen "SELECT *" te gebruiken.
    Afhankelijk van je doel.
    Voor het archiveren gebruiken we nu dus de query

    INSERT INTO targetDB.table SELECT * FROM sourceDB.table WHERE ID = X
      donderdag 6 november 2008 @ 16:11:26 #135
    12880 CraZaay
    prettig gestoord
    pi_63003389
    quote:
    Op donderdag 6 november 2008 15:32 schreef Tijn het volgende:
    Het is sowieso netter om geen "SELECT *" te gebruiken.
    Want? Het is netter om 10 kolommen op te sommen wanneer je 10 kolommen hebt, i.p.v. *? Says who?
      donderdag 6 november 2008 @ 17:10:39 #136
    187069 slacker_nl
    Sicko pur sang
    pi_63005160
    quote:
    Op donderdag 6 november 2008 16:11 schreef CraZaay het volgende:

    [..]

    Want? Het is netter om 10 kolommen op te sommen wanneer je 10 kolommen hebt, i.p.v. *? Says who?
    Tis eerder dat je de order kan garanderen als je niet * gebruikt, maar elk veld apart definieert. Anders kan het zijn dat iemand een table wijzigt en de order daarmee wijzigt, je app breekt omdat ie X verwacht daar waar hij Y krijgt.

    Tenminste, dat is het argument wat ik gelezen heb hierover. Zie bijvoorbeeld hier: http://dbaforums.org/oracle/index.php?showtopic=8443
    In theory there is no difference between theory and practice. In practice there is.
      donderdag 6 november 2008 @ 19:03:47 #137
    12880 CraZaay
    prettig gestoord
    pi_63007952
    quote:
    Op donderdag 6 november 2008 17:10 schreef slacker_nl het volgende:

    Tis eerder dat je de order kan garanderen als je niet * gebruikt, maar elk veld apart definieert. Anders kan het zijn dat iemand een table wijzigt en de order daarmee wijzigt, je app breekt omdat ie X verwacht daar waar hij Y krijgt.
    Ik ken het hele concept van "breekbare order" niet, leg uit? Daarnaast lijkt het me niet eenvoudig om met een select iets te wijzigen in een tabel
      donderdag 6 november 2008 @ 19:11:28 #138
    75592 GlowMouse
    l'état, c'est moi
    pi_63008182
    Het zal eerder over een INSERT gaan, waarbij je niet je veldnamen specificeert.
    eee7a201261dfdad9fdfe74277d27e68890cf0a220f41425870f2ca26e0521b0
      donderdag 6 november 2008 @ 20:01:23 #139
    187069 slacker_nl
    Sicko pur sang
    pi_63009750
    quote:
    Op donderdag 6 november 2008 19:03 schreef CraZaay het volgende:
    Ik ken het hele concept van "breekbare order" niet, leg uit? Daarnaast lijkt het me niet eenvoudig om met een select iets te wijzigen in een tabel
    De orde is de volgorde, bij * is de volgorde zoals de table is aangemaakt, als ik vervolgens twee alters op een table uitvoer waarbij de orde van de velden veranderd, bijv:

    create table blaat ( id int, val varchar(10), val2 varchar(10));

    De volgorde is id, val, val2. Als ik nou val2 naar val rename en val naar val2 dan wordt de volgorde:
    id, val2, val

    Logisch, maar als ik dan een applicatie heb die select * from blaat uitvoert en bij val altijd koe of paard terugkrijgt (om maar een willekeurig iets te zeggen), maar nu omdat het val2 is, wordt dit boer of boerin. M'n applicatie verwacht dit niet, dan breek ik de applicatie (en niet de database uiteraard!). Als je checks op de data uitvoert zullen die checks failen, omdat je impliciet uitgaat van een bepaalde volgorde. Als je dit expliciet aangeeft in je query heb je dit hele probleem niet.

    Nu kan je natuurlijk ook de zooi dmv een hash terugkrijgen, waardoor het niet echt veel uitmaakt, maar dit is wel degelijk van belang bij een sequentiele array.

    In het kort, als je SELECT * uitvoert, laat je de DB bepalen wat de volgorde is, als je de velden zelf definieert bepaal je het zelf en heb je in theorie minder wijzigingen in je code als je wijzigingen in je DB maakt.

    Hoop dat dit e.e.a. duidelijker maakt. Je hoeft het er niet mee eens te zijn, ik ben er voor mezelf ook nog niet uit of SELECT * nou echt zo'n zonde is als men zegt.. Maar goed, als iemand wat wijzigt in de DB en je hebt het expliciet de volgorde aangegeven dan weet je zeker dat er niks fout gaat en anders moet je hopen dat men de volgorde niet heeft aangepast....
    In theory there is no difference between theory and practice. In practice there is.
      donderdag 6 november 2008 @ 20:40:46 #140
    159635 Spike1506
    NullPointerException
    pi_63011013
    @slacker_nl:
    Je hebt inderdaad een goed punt. Sowieso is het fijner om de output van de DB zelf in "controle" te hebben door zelf de volgorde aan te geven.
    pi_63011412
    Slacker_nl heeft een goed punt, hoewel dit ook weer een nadeel is.

    Ik moet vaak (Excel) exports vanuit een tabel maken, waar in principe alle data in terecht komt. Bij wijzigingen in de tabel is het wel prettig om dan * te dumpen, in plaats van dat je alle wijzigingen in de db ook in je exportcode moet gaan doorvoeren
      donderdag 6 november 2008 @ 21:05:58 #142
    148588 rulerofdeath
    Ruler the Rotting-BrainEater
    pi_63011835
    hallo

    ik probeer de inhoud van een bestand in mijn database te krijgen en gebruik hiervoor deze code:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    $lines = gzfile('http://nl1.tribalwars.nl/map/village.txt.gz');
             if(!is_array($lines)) die("File kan niet worden geopend."); 
             foreach($lines as $line) {
                list($id, $name,$x, $y, $player, $points, $rank) = explode(',', $line);
                $name = urldecode($name);

                $name = addslashes($name);
                mysql_query("INSERT INTO village SET id='$id', name='$name', x='$x', y='$y', 
                   player='$player', points='$points', rank='$rank'");
    }


    ik krijg telkens
    quote:
    File kan niet worden geopend.
    wat doe ik verkeerd?
    Learn as if you're going to live forever, Live as if you're going to die tomorrow
    De BIEŽTAFELop youtube en dumpert _O_ &gt;100k views *O*
    I wanna die the same way I was born: Screaming and covered with blood
    Arbeit macht frei. Ik heb nu 40 jaar vakantie *O*
    pi_63012184
    Wat geeft var_dump( $lines )?
      donderdag 6 november 2008 @ 21:20:23 #144
    148588 rulerofdeath
    Ruler the Rotting-BrainEater
    pi_63012419
    bool(false)
    Learn as if you're going to live forever, Live as if you're going to die tomorrow
    De BIEŽTAFELop youtube en dumpert _O_ &gt;100k views *O*
    I wanna die the same way I was born: Screaming and covered with blood
    Arbeit macht frei. Ik heb nu 40 jaar vakantie *O*
    pi_63012774
    quote:
    Op donderdag 6 november 2008 21:05 schreef rulerofdeath het volgende:
    hallo

    ik probeer de inhoud van een bestand in mijn database te krijgen en gebruik hiervoor deze code:
    [ code verwijderd ]

    ik krijg telkens
    [..]

    wat doe ik verkeerd?
    Waarschijnlijk ondersteunt gzfile() het http://-protocol niet.
      donderdag 6 november 2008 @ 21:48:00 #146
    148588 rulerofdeath
    Ruler the Rotting-BrainEater
    pi_63013536
    ik krijg nu een andere melding, ik zit nu ook bij een andere provider:

    Fatal error: Allowed memory size of 16777216 bytes exhausted (tried to allocate 1048576 bytes) in /var/www/vhosts/biertafel.eu/httpdocs/index.php on line 1

    (lijnnummer aangepast aan codefragment)
    Learn as if you're going to live forever, Live as if you're going to die tomorrow
    De BIEŽTAFELop youtube en dumpert _O_ &gt;100k views *O*
    I wanna die the same way I was born: Screaming and covered with blood
    Arbeit macht frei. Ik heb nu 40 jaar vakantie *O*
      donderdag 6 november 2008 @ 21:53:14 #147
    12880 CraZaay
    prettig gestoord
    pi_63013748
    quote:
    Op donderdag 6 november 2008 20:01 schreef slacker_nl het volgende:

    De volgorde is id, val, val2. Als ik nou val2 naar val rename en val naar val2 dan wordt de volgorde:
    id, val2, val

    Logisch, maar als ik dan een applicatie heb die select * from blaat uitvoert en bij val altijd koe of paard terugkrijgt (om maar een willekeurig iets te zeggen), maar nu omdat het val2 is, wordt dit boer of boerin. M'n applicatie verwacht dit niet, dan breek ik de applicatie (en niet de database uiteraard!). Als je checks op de data uitvoert zullen die checks failen, omdat je impliciet uitgaat van een bepaalde volgorde. Als je dit expliciet aangeeft in je query heb je dit hele probleem niet.
    Als je expliciet aangeeft dat je "SELECT val FROM ..." wilt, en deze kolom bevat opeens de data die voorheen bekend was als val2, dan heb je toch alsnog hetzelfde probleem, of begrijp ik je verkeerd?
    pi_63014748
    quote:
    Op donderdag 6 november 2008 21:48 schreef rulerofdeath het volgende:
    ik krijg nu een andere melding, ik zit nu ook bij een andere provider:

    Fatal error: Allowed memory size of 16777216 bytes exhausted (tried to allocate 1048576 bytes) in /var/www/vhosts/biertafel.eu/httpdocs/index.php on line 1

    (lijnnummer aangepast aan codefragment)
    De melding zegt het al, je systeem/profiel heeft te weinig geheugen voor deze opdracht. Of je moet meer geheugen aanvragen of je moet je script op een andere manier gaan realiseren (bv via commandline de zip file extracten en dan rustig aan inlezen)
    The people who lost my respect will never get a capital letter for their name again.
    Like trump...
      donderdag 6 november 2008 @ 22:55:11 #149
    187069 slacker_nl
    Sicko pur sang
    pi_63016772
    quote:
    Op donderdag 6 november 2008 21:53 schreef CraZaay het volgende:

    [..]

    Als je expliciet aangeeft dat je "SELECT val FROM ..." wilt, en deze kolom bevat opeens de data die voorheen bekend was als val2, dan heb je toch alsnog hetzelfde probleem, of begrijp ik je verkeerd?
    Je begrijpt me verkeerd, stel... iemand dumpt de database, maakt wijzigingen in de dump, dropped de originele table en creeert opnieuw de table, alleen zijn val en val2 van volgorde gewijzigd. Bij select * is de volgorde van val en val2 dus anders dan jij in eerste instantie verwacht.. Als je select val, val2 gebruikt veranderd er niks, en heb je dus ook geen problemen met deze wijziging..

    Dit is de kern van het verhaal:

    1) select veld, veld2, veld3: expliciet aangeven in welke volgorde (de keuze wordt gemaakt door jou).
    2) select *: impliciet aangeven in welke volgorde (de keuze wordt gemaakt door de DB)

    Welke je prefereert, of toepast, dat maakt mij weinig uit, maar je moet rekening houden dat je met select * onverwachte dingen kunt tegenkomen als men een wijziging uitvoert op de database. That is all.
    In theory there is no difference between theory and practice. In practice there is.
      donderdag 6 november 2008 @ 23:27:46 #150
    63192 ursel
    "Het Is Hier Fantastisch!
    pi_63018001
    Ik begrijp dus eigenlijk dat het niet mogelijk is om een kolom te excluden??

    @slacker, Maar als je nou een associative array fetched?? Dan maakt dit toch ook niet uit? Of zie ik iets over het hoofd?
    pi_63018604
    quote:
    Op donderdag 6 november 2008 23:27 schreef ursel het volgende:
    Ik begrijp dus eigenlijk dat het niet mogelijk is om een kolom te excluden??

    @slacker, Maar als je nou een associative array fetched?? Dan maakt dit toch ook niet uit? Of zie ik iets over het hoofd?
    Dan maakt het idd weinig uit, maar dat schreef Slacker ook al. Hij heeft het dan over hashes, maar da's gewoon hetzelfde.

    En imho ben je gewoon onhandig bezig als je arrays met numerieke indexen gebruikt voor het uitlezen van een database. Dan moet je altijd terugzoeken in welke volgorde de velden gespecificeerd zijn om te achterhalen waar $row[2] ook alweer voor stond. $row['name'] is gewoon veel duidelijker.
    abonnement Unibet Coolblue Bitvavo
    Forum Opties
    Forumhop:
    Hop naar:
    (afkorting, bv 'KLB')