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.
      vrijdag 7 november 2008 @ 00:09:15 #152
    187069 slacker_nl
    Sicko pur sang
    pi_63018892
    Wat Light zei over hashes, das hetzelfde als een associatieve array.
    quote:
    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 theory there is no difference between theory and practice. In practice there is.
      vrijdag 7 november 2008 @ 00:10:54 #153
    12880 CraZaay
    prettig gestoord
    pi_63018930
    quote:
    Op donderdag 6 november 2008 22:55 schreef slacker_nl het volgende:

    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..
    Ik snap je nu. Maar ik ging er eigenlijk ook vanuit dat iedereen die "SELECT *" doet alsnog gebruik maakt van een named/associatieve array, object, whatever, en $result['val'] gebruikt bijvoorbeeld. Ik vind het uitermate ranzig om in welke situatie dan ook maar klakkeloos uit te gaan van een volgorde, los van of je * gebruik of kolomnamen.

    edit: En er was nog een pagina Wat Light zegt dus.
    pi_63100207
    Schop!

    Of zet 'm eens centraal ofzo....
      maandag 10 november 2008 @ 13:27:43 #155
    187069 slacker_nl
    Sicko pur sang
    pi_63100409
    Waarom centraal, dev forum is niet zo groot dat je 'm over het hoofd ziet. En dat ie in het weekend wat zakt..
    In theory there is no difference between theory and practice. In practice there is.
    pi_63100460
    toch staan er weer een stuk of 3 php-topics open omdat'ie uit het moederforum DIG gezakt is.
      maandag 10 november 2008 @ 18:52:13 #157
    85919 Likkende_Lassie
    Doe eens wat aan je ondertitel
    pi_63108691
    Volgende vraag!

    Ik heb het volgende
    1
    2
    3
    4
    5
    <?php
    SELECT reg
    .idreg.branche_code AS branche_codebranche.name AS branche_namebranche.total_in AS total 
                                       FROM reg_reg reg
                                        LEFT JOIN reg_branche branche ON reg
    .branche_code ON branche.code
    ?>


    Maar zou het graag als volgt willen doen:

    1
    2
    3
    4
    5
    <?php
    SELECT reg
    .idreg.branche_code AS branche_codebranche.name AS branche_namebranche.total_in AS total 
                                       FROM reg_reg reg
                                        LEFT JOIN reg_branche branche ON reg
    .branche_code LIKE '%,'branche.code',%'
    ?>



    Let op de LIKE in de LEFT JOIN.... is dit mogelijk? Het lukt iig niet, hoe zou het wel kunnen lukken?
      maandag 10 november 2008 @ 19:23:23 #158
    107951 JortK
    Immer kwaliteitsposts
    pi_63109572
    Die LIKE moet in je WHERE clause, je JOIN clause is om tabellen aan elkaar te koppelen, niet om criteria in aan te leggen
      maandag 10 november 2008 @ 19:31:48 #159
    85919 Likkende_Lassie
    Doe eens wat aan je ondertitel
    pi_63109825
    Weet ik, maar ik heb zo'n idee dat dat niet in WHERE kan?
      maandag 10 november 2008 @ 19:41:00 #160
    85919 Likkende_Lassie
    Doe eens wat aan je ondertitel
    pi_63110137
    Het moet namelijk een like zijn met een veld van de tabel
    pi_63110391
    JOINS zijn alleen maar syntax sugar, dus iets als dit zou ook moeten werken:

    Voor een INNER JOIN:
    1
    2
    3
    4
    5
    6
    <?php
    SELECT
    reg
    .idreg.branche_code AS branche_codebranche.name AS branche_namebranche.total_in AS total 
    FROM reg_reg reg
    reg_branche branche
    WHERE reg
    .branche_code LIKE '%,'branche.code',%'
    ?>


    Of een LEFT JOIN
    1
    2
    3
    4
    5
    6
    <?php
    SELECT
    reg
    .idreg.branche_code AS branche_codebranche.name AS branche_namebranche.total_in AS total 
    FROM reg_reg reg
    reg_branche branche
    WHERE 
    (reg.branche_code LIKE '%,'branche.code',%' OR reg.branche_code IS NULL)
    ?>
    pi_63111925
    quote:
    Op maandag 10 november 2008 19:41 schreef Likkende_Lassie het volgende:
    Het moet namelijk een like zijn met een veld van de tabel
    Wat staat er in dat veld?
    Over het algemeen moet je LIKE met "%text%" zien te vermijden. Door de % vooraan kan er namelijk geen gebruik gemaakt worden van indexen, dus is je query per definitie inefficient.
    pi_63112061
    quote:
    Op maandag 10 november 2008 19:23 schreef JortK het volgende:
    Die LIKE moet in je WHERE clause, je JOIN clause is om tabellen aan elkaar te koppelen, niet om criteria in aan te leggen
    Onzin
    quote:
    Op maandag 10 november 2008 19:48 schreef Arjan321 het volgende:
    JOINS zijn alleen maar syntax sugar, dus iets als dit zou ook moeten werken:

    Voor een INNER JOIN:
    [ code verwijderd ]

    Of een LEFT JOIN
    [ code verwijderd ]
    Ook onzin, maar dan met niet werkende voorbeelden.


    Een LIKE in een JOIN kan prima (wat niet wil zeggen dat het altijd de beste keus is om een like in een join te gebruiken). En joins zijn meer dan alleen syntax sugar, ze maken query's bijvoorbeeld beter leesbaar (wat de kans op fouten verkleint).

    1
    2
    3
    SELECT *
    FROM reg_reg r
    LEFT JOIN reg_branche b ON r.branche_code LIKE Concat('%', b.code, '%')


    Je moet de string die je voor de like gebruikt op de juiste manier aan elkaar plakken. Je kunt in MySql strings niet bij elkaar optellen. D.w.z. het kan wel (heet geeft geen fouten), maar aan het resultaat heb je niets.

    Maar als je zo'n constructie nodig hebt dan zit je datamodel misschien niet al te handig in elkaar.
    Wil iedereen die in telekinese gelooft nu mijn hand op steken?
    | Foto's van toen en nu | Icons | Whatpulse keyboard | .NET developer? |
      maandag 10 november 2008 @ 20:44:23 #164
    85919 Likkende_Lassie
    Doe eens wat aan je ondertitel
    pi_63112320
    quote:
    Op maandag 10 november 2008 20:33 schreef Light het volgende:

    [..]

    Wat staat er in dat veld?
    Over het algemeen moet je LIKE met "%text%" zien te vermijden. Door de % vooraan kan er namelijk geen gebruik gemaakt worden van indexen, dus is je query per definitie inefficient.
    In dat veld staan de ID's van de branches, als volgt: ,6543,34543,4323,65432,1234,
    Bedankt voor de reacties tot nu toe!

    Bovenstaande oplossingen werken overigens niet.
    Hierbij de gehele query, zoals de laatst genoemde mogelijkheid, niet werkend.

    1
    2
    3
    4
    5
    mysql_query("SELECT register.id, register.branche_code AS branche_code, branche.name AS branche_name, branche.total_in AS total 
                                       FROM register_register register
                                        LEFT JOIN register_branches branche ON branche.code = LIKE Concat('%', register.branche_code, '%')
                                       WHERE register.id IN (".$sphinx['result']." 0) AND total_in > 0 AND branche.in_small_overview > 0 GROUP BY `branche_code` 
                                       ORDER BY total_in DESC LIMIT 10")
    pi_63112905
    quote:
    Op maandag 10 november 2008 20:44 schreef Likkende_Lassie het volgende:

    [..]

    In dat veld staan de ID's van de branches, als volgt: ,6543,34543,4323,65432,1234,
    Bedankt voor de reacties tot nu toe!
    Daar was ik al bang voor. Een koppeltabel is dan een veel betere oplossing. Gewoon een tabel met id's, kun je ook indexen op zetten. Is ook veel sneller met doorzoeken.
    quote:
    Bovenstaande oplossingen werken overigens niet.
    Hierbij de gehele query, zoals de laatst genoemde mogelijkheid, niet werkend.
    [ code verwijderd ]
    Zoek eens op databasenormalisatie. Je kunt wel proberen om dit werkend te krijgen (en het kan vast ook) maar je kunt veel beter je tijd investeren in uitzoeken hoe het beter kan.
    pi_63112995
    Zo veel moeite is het toch niet om zo'n query op een leesbare manier op te schrijven zodat je misschine een beetje een idee heb waar je mee bezig bent?

    1
    2
    3
    4
    5
    6
    7
    8
    9
    "SELECT r.id, r.branche_code AS branche_code, b.name AS branche_name, b.total_in AS total 
    FROM register_register r
    LEFT JOIN register_branches b ON b.code = LIKE Concat('%', r.branche_code, '%')
    WHERE r.id IN (". $sphinx['result']. " 0) 
       AND b.total_in > 0 
       AND b.in_small_overview > 0 
    GROUP BY branche_code
    ORDER BY total_in DESC 
    LIMIT 10"


    Probeer het eerst eens met een wat eenvoudigere versie van die query en lijk of je dan terug krijgt wat je zoekt. Die GROUP B klopt bijvoorbeeld ook niet.
    Wil iedereen die in telekinese gelooft nu mijn hand op steken?
    | Foto's van toen en nu | Icons | Whatpulse keyboard | .NET developer? |
      maandag 10 november 2008 @ 21:05:03 #167
    12880 CraZaay
    prettig gestoord
    pi_63113047
    quote:
    Op maandag 10 november 2008 20:44 schreef Likkende_Lassie het volgende:

    In dat veld staan de ID's van de branches, als volgt: ,6543,34543,4323,65432,1234,
    GAD-VER-DAM-ME

      maandag 10 november 2008 @ 21:06:02 #168
    85919 Likkende_Lassie
    Doe eens wat aan je ondertitel
    pi_63113079
    quote:
    Op maandag 10 november 2008 21:01 schreef Light het volgende:

    [..]

    Daar was ik al bang voor. Een koppeltabel is dan een veel betere oplossing. Gewoon een tabel met id's, kun je ook indexen op zetten. Is ook veel sneller met doorzoeken.
    [..]

    Zoek eens op databasenormalisatie. Je kunt wel proberen om dit werkend te krijgen (en het kan vast ook) maar je kunt veel beter je tijd investeren in uitzoeken hoe het beter kan.
    Een koppeltabel, zou die er zou uit kunnen zien?

    brancheID registerID
    04200 123456
    0915 123456
    3116 654321


    dus meerdere regels voor een registerid?
    pi_63113095
    En Als je even
    1SELECT * FROM register_branches WHERE code LIKE '%6543,34543,4323,65432,1234%'

    had geprobeerd dan had je kunnen zien dat dat niet oplevert wat je wil (en dat het dus niet aan de join ligt)
    Wil iedereen die in telekinese gelooft nu mijn hand op steken?
    | Foto's van toen en nu | Icons | Whatpulse keyboard | .NET developer? |
    pi_63113463
    quote:
    Op maandag 10 november 2008 21:06 schreef Likkende_Lassie het volgende:

    [..]

    Een koppeltabel, zou die er zou uit kunnen zien?

    brancheID registerID
    04200 123456
    0915 123456
    3116 654321


    dus meerdere regels voor een registerid?
    Yep
    brancheID registerID
    04200 123456
    0915 123456
    0915 654321
    3116 654321

    Zowel brancheID als registerID komen meerdere keren voor (of kunnen dat iig). Alleen de combinatie is wel uniek.
      maandag 10 november 2008 @ 21:32:26 #171
    85919 Likkende_Lassie
    Doe eens wat aan je ondertitel
    pi_63114000
    Ok! Hij is nu bezig alles in te voeren, moet heel wat records inlezen en verwerken, duurt dus even.
    De tabel ziet er zo uit:

    1
    2
    3
    4
    5
    6
    7
    8
    CREATE TABLE IF NOT EXISTS `register_branches_register` (
      `id` int(11) NOT NULL auto_increment,
      `brancheID` int(11) NOT NULL,
      `registerID` int(11) NOT NULL,
      PRIMARY KEY  (`id`),
      KEY `brancheID` (`brancheID`),
      KEY `registerID` (`registerID`)
    ) ENGINE=MyISAM  DEFAULT CHARSET=latin1 AUTO_INCREMENT=1;
    pi_63116678
    quote:
    Op maandag 10 november 2008 21:32 schreef Likkende_Lassie het volgende:
    Ok! Hij is nu bezig alles in te voeren, moet heel wat records inlezen en verwerken, duurt dus even.
    De tabel ziet er zo uit:
    [ code verwijderd ]
    Dat veld ID is niet echt nuttig. Ik zou de tabel anders maken:
    1
    2
    3
    4
    5
    6
    CREATE TABLE `register_branches_register` (
      `brancheID` int(11) NOT NULL,
      `registerID` int(11) NOT NULL,
      PRIMARY KEY  (`brancheID`,`registerID`),
      KEY `registerID` (`registerID`)
    ) ENGINE=MyISAM DEFAULT CHARSET=latin1;

    De combinatie (brancheID, registerID) is uniek, en daardoor heb je ook meteen een index op brancheID.
    pi_63123172
    Is de vertaling naar het Nederlands makkelijker/logischer te doen?

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    <?php
    $Month    
    "11";
    $Year    "2008";

    $DaysMonth cal_days_in_month(CAL_GREGORIAN$Month$Year);

    for (
    $i 1$i <= $DaysMonth$i++) {
        echo 
    'De datum ' .$i'-' .$Month'-' .$Year', valt op ';
        
    $day date("l"mktime(000$Month$i$Year));
        if (
    $day == "Monday") { echo 'Maandag'; }
        if (
    $day == "Tuesday") { echo 'Dinsdag'; }
        if (
    $day == "Wednesday") { echo 'Woensdag'; }
        if (
    $day == "Thursday") { echo 'Donderdag'; }
        if (
    $day == "Friday") { echo 'Vrijdag'; }
        if (
    $day == "Saturday") { echo 'Zaterdag'; }
        if (
    $day == "Sunday") { echo 'Zondag'; }
        echo 
    '<br />';
    }
    ?>
    ne okuyon, bokmu var?
      dinsdag 11 november 2008 @ 10:32:04 #174
    63192 ursel
    "Het Is Hier Fantastisch!
    pi_63123473
    Ik zou het zelf in een switch gooien.
      dinsdag 11 november 2008 @ 10:33:12 #175
    75592 GlowMouse
    l'état, c'est moi
    pi_63123493
    Kijk eens naar setlocale en strftime.
    eee7a201261dfdad9fdfe74277d27e68890cf0a220f41425870f2ca26e0521b0
      dinsdag 11 november 2008 @ 10:58:59 #176
    187069 slacker_nl
    Sicko pur sang
    pi_63124090
    In theory there is no difference between theory and practice. In practice there is.
      dinsdag 11 november 2008 @ 11:08:17 #177
    136730 PiRANiA
    All thinking men are atheists.
    pi_63124323
    1
    2
    3
    4
    <?php
    $nlDagen
    =Array('','Maandag','Dinsdag','Woensdag','Donderdag','Vrijdag','Zaterdag','Zondag');
    $dagNaam=$nlDagen[time(N)];
    ?>


    [ Bericht 2% gewijzigd door PiRANiA op 11-11-2008 14:39:15 ]
      dinsdag 11 november 2008 @ 14:54:33 #178
    12880 CraZaay
    prettig gestoord
    pi_63129726
    Ik zoek een goede PHP library/script voor het parsen van RSS, voornamelijk 2.0 (maar als het even kan ook andere formaten). Aan MagpieRSS is inmiddels al 3 jaar niets gedaan, dus ik vroeg me af of er inmiddels iets nieuwers/beters is?
      dinsdag 11 november 2008 @ 15:04:12 #179
    12221 Tijn
    Powered by MS Paint
    pi_63129981
    Zend Framework heeft een component genaamd Zend_Feed die RSS en Atom feeds kan handlen. Die kun je volgens mij ook los gebruiken (dus zonder het hele Zend Framework eromheen). Is dat wat?
      dinsdag 11 november 2008 @ 15:41:51 #180
    187069 slacker_nl
    Sicko pur sang
    pi_63131052
    In theory there is no difference between theory and practice. In practice there is.
      dinsdag 11 november 2008 @ 16:52:19 #181
    148588 rulerofdeath
    Ruler the Rotting-BrainEater
    pi_63133079
    hallo,

    ik probeer een website in te delen met het div-statement. maar hoe kan ik van tijd tot tijd de 'main' veranderen?
    is de code hieronder goed daarvoor te gebruiken of is dit anders te doen?

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    <div id="navigatie">
          <ul>
             <li><a href="/">Home</a></li>
             <li><a href="http://www.biertafel.eu/index.php?submit">Over ons</a></li>
             <li><a href="/">Archief</a></li>
             <li><a href="http://forum.biertafel.eu">Forum</a></li>
             <li><a href="/">Winkel</a></li>
             <li><a href="/">Contact</a></li>
          </ul>
          </div>
          
          <div id="main">
          <?php            
             if(isSet($_GET['submit'])) {
                include('polladmin.php');
             }
             else {
                include('poll.php');
             }
          ?>
          <P>
    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_63133949
    op zich een prima manier, maar ik zou het includen van de admin niet af laten hangen van het gezet zijn van een get-variabele... dat is nogal een security risk namelijk
      dinsdag 11 november 2008 @ 17:29:35 #183
    62215 qu63
    ..de tijd drinkt..
    pi_63134046
    quote:
    Op dinsdag 11 november 2008 17:26 schreef Xcalibur het volgende:
    op zich een prima manier, maar ik zou het includen van de admin niet af laten hangen van het gezet zijn van een get-variabele... dat is nogal een security risk namelijk
    kijk maar naar de poll op de homepage
    It's Time To Shine
    [i]What would life be like without rhethorical questions?[/i]
    pi_63134296
    uh, poll, homepage?
    Ik geloof niet dat ik snap waar je het over hebt....
      dinsdag 11 november 2008 @ 17:42:51 #185
    62215 qu63
    ..de tijd drinkt..
    pi_63134359
    quote:
    Op dinsdag 11 november 2008 17:40 schreef Xcalibur het volgende:
    uh, poll, homepage?
    Ik geloof niet dat ik snap waar je het over hebt....
    De poll op zn homepage heeft totaal geen beveiliging, iedereen kan een nieuwe poll aanmaken..
    It's Time To Shine
    [i]What would life be like without rhethorical questions?[/i]
      dinsdag 11 november 2008 @ 17:44:05 #186
    148588 rulerofdeath
    Ruler the Rotting-BrainEater
    pi_63134397
    quote:
    Op dinsdag 11 november 2008 17:26 schreef Xcalibur het volgende:
    op zich een prima manier, maar ik zou het includen van de admin niet af laten hangen van het gezet zijn van een get-variabele... dat is nogal een security risk namelijk :)
    ik weet dat iedereen de admin-pagina kan bereiken. dit is ook alleen maar om te testen.
    ben een beetje aan het klooien met m'n webpagina.

    is het ook mogelijk om onderstaande te vervangen door variabelen en dat ik niet alles hoef te hardcoden? (Dat ik dus de naam van de webpagina als variabele kan gebruiken)
    1
    2
    if(isSet($_GET['submit'])) {
                include('polladmin.php');
    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*
      dinsdag 11 november 2008 @ 17:46:09 #187
    148588 rulerofdeath
    Ruler the Rotting-BrainEater
    pi_63134443
    quote:
    Op dinsdag 11 november 2008 17:42 schreef qu63 het volgende:

    [..]

    De poll op zn homepage heeft totaal geen beveiliging, iedereen kan een nieuwe poll aanmaken..
    klopt, dat weet ik.
    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*
      dinsdag 11 november 2008 @ 17:46:55 #188
    63192 ursel
    "Het Is Hier Fantastisch!
    pi_63134465
    quote:
    Op dinsdag 11 november 2008 17:26 schreef Xcalibur het volgende:
    op zich een prima manier, maar ik zou het includen van de admin niet af laten hangen van het gezet zijn van een get-variabele... dat is nogal een security risk namelijk
    En een extra check op je polladmin kan ook geen kwaad..
    Spuit 11 op zijn trage laptop
    pi_63135079
    quote:
    Op dinsdag 11 november 2008 17:44 schreef rulerofdeath het volgende:

    [..]

    ik weet dat iedereen de admin-pagina kan bereiken. dit is ook alleen maar om te testen.
    ben een beetje aan het klooien met m'n webpagina.

    is het ook mogelijk om onderstaande te vervangen door variabelen en dat ik niet alles hoef te hardcoden? (Dat ik dus de naam van de webpagina als variabele kan gebruiken)
    [ code verwijderd ]
    Zoiets bedoel je?

    /path/to/site/index.php?page=poll
    1
    2
    3
    <?php
    include($_GET['page'].'.php');
    ?>


    Dat werkt gewoon. Het is absoluut niet veilig, maar dat vroeg je ook niet.
      dinsdag 11 november 2008 @ 19:18:09 #190
    148588 rulerofdeath
    Ruler the Rotting-BrainEater
    pi_63136968
    quote:
    Op dinsdag 11 november 2008 18:11 schreef Light het volgende:

    [..]

    Zoiets bedoel je?

    /path/to/site/index.php?page=poll
    [ code verwijderd ]

    Dat werkt gewoon. Het is absoluut niet veilig, maar dat vroeg je ook niet.
    bedankt. zoiets bedoel ik.

    Qua veiligheid maakt het toch niets uit als ik op deze manier alleen pagina's wil weergeven en niet een pagina als die polladmin.php wil bereiken?
    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_63137824
    quote:
    Op dinsdag 11 november 2008 19:18 schreef rulerofdeath het volgende:

    [..]

    bedankt. zoiets bedoel ik.

    Qua veiligheid maakt het toch niets uit als ik op deze manier alleen pagina's wil weergeven en niet een pagina als die polladmin.php wil bereiken?
    Het probleem met variabelen uit de QueryString is dat ze zo makkelijk te beïnvloeden zijn en dus erg vatbaar zijn voor kwaadwillige injectie vanuit de gebruikerskant. Er kunnen op die manier dus allerlei onverwachte problemen opduiken.

    Beter zou zijn als je bijvoorbeeld een nummer uit de QueryString zou uitlezen, en aan de hand van dat nummer middels een switch() de corresponderende pagina meepikken met include().
      dinsdag 11 november 2008 @ 19:46:38 #192
    148588 rulerofdeath
    Ruler the Rotting-BrainEater
    pi_63137958
    dus ietsjes meer typewerk scheelt wel in de veiligheid?

    dan gaat dat voor.
    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_63138089
    Op zich is het natuurlijk niet zo'n probleem dat je de naam van de pagina's in de querystring meegeeft, maar je moet wel zorgen dat alleen je éigen pagina's geopend kunnen worden

    Dat niet iemand dus /site/index.php?page=http://www.h4x0r.com gaat openen, en vervelend gaat doen. Zoiets kan je vrij eenvoudig voorkomen door een variabele in je include te zetten die je checked, of natuurlijk door je GET te checken voordat je er uberhaupt wat mee doet
    pi_63138139
    quote:
    Op dinsdag 11 november 2008 19:46 schreef rulerofdeath het volgende:
    dus ietsjes meer typewerk scheelt wel in de veiligheid?

    dan gaat dat voor.
    Laat ik je een geheimpje verklappen: Met het programmeerwerk voor expliciet hetgeen dat je wilt doen, ben je meestal zo klaar. Vaak ben je echter meer dan de helft van de tijd bezig met het 'hufterproof' maken van je script/programma.
    pi_63138511
    ja, zorgen dat het werkt is niet zo ingewikkeld.... zorgen dat het niet kapot gaat als je lomp doet is de echte uitdaging
      woensdag 12 november 2008 @ 08:43:53 #196
    85919 Likkende_Lassie
    Doe eens wat aan je ondertitel
    pi_63150109
    Even een update, ik heb een koppeltabel gemaakt, en het draait nu als een zonnetje! Werkt lekker snel!

    Bedankt allen!
      vrijdag 14 november 2008 @ 09:28:36 #197
    85919 Likkende_Lassie
    Doe eens wat aan je ondertitel
    pi_63212870
    Vraagje, als ik waardes door de volgende functie haal, om ze veilig te maken, komen ze alsnog met quotes en zonder slashes in de database, ik weet waarom, maar is het veilig genoeg?

    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
    <?php
    function quote_smart($value$type false$NULL false) {
       
    $value trim($value);
       
       
       if (
    $type != 'html'){
          
    $value strip_tags($value);
       }
       
       if (
    strlen($value)) {
          
    # We have something
          
    if ($type == 'num'){
             if (
    is_numeric($value)){
                return 
    $value;
             }else{
                
    trigger_error(sprintf("%s: '%s' is not a number!"__FUNCTION__$value), E_USER_ERROR);
                return 
    null;
             }
          }else{
             if (
    get_magic_quotes_gpc()) {
                
    $value stripslashes($value);
             }
             
             if(
    version_compare(phpversion(),"4.3.0") == "-1") {
                return 
    mysql_escape_string($value);
             } else {
                return 
    mysql_real_escape_string($value);
             }
          }
       }else{
          if (
    $NULL) {
             return 
    null;
          }
       }
    }
    ?>
    pi_63213052
    quote:
    Op vrijdag 14 november 2008 09:28 schreef Likkende_Lassie het volgende:
    Vraagje, als ik waardes door de volgende functie haal, om ze veilig te maken, komen ze alsnog met quotes en zonder slashes in de database, ik weet waarom, maar is het veilig genoeg?
    [ code verwijderd ]
    Ja, het is wanneer we het over data-opslag hebben natuurlijk logisch dat data opgeslagen wordt hoe het door de gebruiker ingevoerd wordt. Het beveiligen is nodig op het moment dat de invoer-query uitgevoerd wordt, op dat moment worden aanhalingstekens e.d. dusdanig onschadelijk gemaakt zodat de uitvoerende functie niet geïnjecteerd kan worden met bagger.

    Een functie als deze is overigens al voldoende om kwaadwillige invoer in geval van MySQL queries te filteren:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    function safeValue($value){
       if(get_magic_quotes_gpc()){
          $value=stripslashes($value);
       }
       if(!is_numeric($value)){
          $value=mysql_real_escape_string($value);
       }
       return $value;
    }
    pi_63214155
    Om te voorkomen dat ik 30 keer een query moet doen in een for bouw ik een array op buiten mijn for, dit doe ik door middel van:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    <?php
    $Month 
    '11';
    $Year '2008';

    $a_query    mysql_query("SELECT `datum` FROM `data` WHERE `datum` LIKE '%-$Month-$Year'");
    while (
    $array mysql_fetch_array($a_queryMYSQL_ASSOC)) {
        
    $arrays[] = $array;
    }
    ?>


    Nu heb ik de data wat uit de terug komt gezet in $arrays.

    Vervolgens wil ik in een for checken of de datum in mijn for voorkomt in de array, door middel van:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <?php
    $DaysMonth    
    cal_days_in_month(CAL_GREGORIAN$Month$Year);

    for (
    $i 1$i <= $DaysMonth$i++) {

    $date '' .$i'-' .$Month'-' .$Year'';
    if (
    in_array('$date'$arrays)) { echo "yes"; }

    }
    ?>


    Echter werkt dit niet omdat ik in mijn while een array in een array maak.
    Wat is hier de oplossing van?
    ne okuyon, bokmu var?
    pi_63214336
    quote:
    Op vrijdag 14 november 2008 10:25 schreef saban het volgende:
    Om te voorkomen dat ik 30 keer een query moet doen in een for bouw ik een array op buiten mijn for, dit doe ik door middel van:
    [ code verwijderd ]

    Nu heb ik de data wat uit de terug komt gezet in $arrays.

    Vervolgens wil ik in een for checken of de datum in mijn for voorkomt in de array, door middel van:
    [ code verwijderd ]

    Echter werkt dit niet omdat ik in mijn while een array in een array maak.
    Wat is hier de oplossing van?
    Waarom zo omslachtig? Je kunt toch ook al door middel van DAY() / MONTH() / YEAR() MySQL functies in je query de records ophalen die je moet hebben?
      vrijdag 14 november 2008 @ 10:33:42 #201
    137690 Pizzahut
    Het Bora Bora Gebergte
    pi_63214395
    Vraagje voor MySQL:
    Ik heb een MySQL query browser van de officiële website.
    Nu gebruik ik die heel veel voor localhost wat ook prima werkt.
    Maar nu wil ik ook een externe host, bij voorkeur dus mijn eigen website eraan toevoegen.
    Kan iemand mij vertellen wat ik moet invullen bij host? (waar normaal localhost staat).
    ik heb dus al http://dbadmin.one.com gedaan als mijn website.
    Disturbed Mind
    Het leven: Soms ben je de duif, soms het standbeeld.
    pi_63214564
    quote:
    Op vrijdag 14 november 2008 10:33 schreef Pizzahut het volgende:
    Vraagje voor MySQL:
    Ik heb een MySQL query browser van de officiële website.
    Nu gebruik ik die heel veel voor localhost wat ook prima werkt.
    Maar nu wil ik ook een externe host, bij voorkeur dus mijn eigen website eraan toevoegen.
    Kan iemand mij vertellen wat ik moet invullen bij host? (waar normaal localhost staat).
    ik heb dus al http://dbadmin.one.com gedaan als mijn website.
    MySQL draait gewoon op een server waarmee met een server adres/IP, gebruikersnaam en wachtwoord op ingelogd dient te worden. In plaats van localhost dus gewoon de MySQL/database server of het IP adres daarvan, en uiteraard de correcte gebruikersnaam en wachtwoord voor die server, zou genoeg moeten zijn.
      vrijdag 14 november 2008 @ 10:42:03 #203
    137690 Pizzahut
    Het Bora Bora Gebergte
    pi_63214643
    quote:
    Op vrijdag 14 november 2008 10:39 schreef Tuvai.net het volgende:

    [..]

    MySQL draait gewoon op een server waarmee met een server adres/IP, gebruikersnaam en wachtwoord op ingelogd dient te worden. In plaats van localhost dus gewoon de MySQL/database server of het IP adres daarvan, en uiteraard de correcte gebruikersnaam en wachtwoord voor die server, zou genoeg moeten zijn.
    Ik heb nu dit gedaan:
    Host: http://dbadmin.one.com <- link naar mijn database
    Gebr.: mijn gebruikersnaam
    WW: mijn wachtwoord

    Host: http://puddingbroodje.nl <- link naar mijn website
    Gebr.: mijn gebruikersnaam
    WW: mijn wachtwoord

    beide werken niet. Standaart staat de poort op 3308 ofzo, moet dit anders staan?
    Disturbed Mind
    Het leven: Soms ben je de duif, soms het standbeeld.
    pi_63214661
    quote:
    Op vrijdag 14 november 2008 10:31 schreef Tuvai.net het volgende:

    [..]

    Waarom zo omslachtig? Je kunt toch ook al door middel van DAY() / MONTH() / YEAR() MySQL functies in je query de records ophalen die je moet hebben?
    Dat kan.
    Echter de query doet nu wat het moet doen, daar kom ik later op.

    Het probleem zit nu in de array
    ne okuyon, bokmu var?
    pi_63214776
    quote:
    Op vrijdag 14 november 2008 10:42 schreef Pizzahut het volgende:

    [..]

    Ik heb nu dit gedaan:
    Host: http://dbadmin.one.com <- link naar mijn database
    Gebr.: mijn gebruikersnaam
    WW: mijn wachtwoord

    Host: http://puddingbroodje.nl <- link naar mijn website
    Gebr.: mijn gebruikersnaam
    WW: mijn wachtwoord

    beide werken niet. Standaart staat de poort op 3308 ofzo, moet dit anders staan?
    Je MySQL server adres is NIET hetzelfde als het adres van de betreffende website / DB admin panel. Mijn websites draaien bijvoorbeeld op website.nl, terwijl de achterliggende databaseserver altijd dbserver.website.nl is.
    quote:
    Op vrijdag 14 november 2008 10:42 schreef saban het volgende:

    [..]

    Dat kan.
    Echter de query doet nu wat het moet doen, daar kom ik later op.

    Het probleem zit nu in de array
    Dat snap ik, maar je hoeft helemaal niet met arrays te liggen kutten als je de corresponderende data al op haalt door middel van een goede query. Scheelt ook weer onnodig heen en weer geslinger en performance aangezien je op die manier ook niet eerst een boel records op haalt waar je vervolgens toch niks tot weinig mee doet.
    pi_63214916
    quote:
    Op vrijdag 14 november 2008 10:46 schreef Tuvai.net het volgende:

    [..]

    Je MySQL server adres is NIET hetzelfde als het adres van de betreffende website / DB admin panel. Mijn websites draaien bijvoorbeeld op website.nl, terwijl de achterliggende databaseserver altijd dbserver.website.nl is.
    [..]

    Dat snap ik, maar je hoeft helemaal niet met arrays te liggen kutten als je de corresponderende data al op haalt door middel van een goede query. Scheelt ook weer onnodig heen en weer geslinger en performance aangezien je op die manier ook niet eerst een boel records op haalt waar je vervolgens toch niks tot weinig mee doet.
    Ik denk dat ik mijn probleem verkeerd hebt uitgelegd.
    Met een for geef ik alle dagen van een maand weer, echter in die for moet ik checken of die datum voorkomt in de database. Ik kan dus bij iedere keer dat de for loopt wel een query uitvoeren om te checken of het voorkomt, maar dan moet ik dus per request 30 keer een query uitvoeren (30 dagen in een maand).

    Dus ik dacht, ik haal eerst alle data uit de database, deze stop ik in een array. Vervolgens check ik in de for of de datum voorkomt in de array(database).
    ne okuyon, bokmu var?
    pi_63215050
    quote:
    Op vrijdag 14 november 2008 10:50 schreef saban het volgende:

    [..]

    Ik denk dat ik mijn probleem verkeerd hebt uitgelegd.
    Met een for geef ik alle dagen van een maand weer, echter in die for moet ik checken of die datum voorkomt in de database. Ik kan dus bij iedere keer dat de for loopt wel een query uitvoeren om te checken of het voorkomt, maar dan moet ik dus per request 30 keer een query uitvoeren (30 dagen in een maand).

    Dus ik dacht, ik haal eerst alle data uit de database, deze stop ik in een array. Vervolgens check ik in de for of de datum voorkomt in de array(database).
    Als je dus puur wilt controleren welke dagen in een gegeven maand voorkomen, is het volgende al voldoende:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    <?php
    $maand
    =11;
    $jaar=2008;

    // Lege array() aanmaken
    $maandenDieVoorkomenInDezeMaand=array();

    // Query aanmaken die aan de hand van $maand en $jaar alle verschillende, voorkomende dagen uit tabel 'dataTabel' op haalt
    $query=mysql_query("SELECT DISTINCT DAY(datumKolom) AS dag FROM dataTabel WHERE MONTH(datumKolom) = " $maand " AND YEAR(datumKolom) = " $jaar);

    // Door de geretourneerde records heen loop`en
    while($rij=mysql_fetch_array($query)){

        
    // Van alle records die geretourneerd worden de daadwerkelijke dag naar de eerder aangemaakte array() wegschrijven
        
    array_push($maandenDieVoorkomenInDezeMaand$rij[dag]);
    }
    ?>




    [ Bericht 11% gewijzigd door Tuvai.net op 14-11-2008 11:17:44 ]
    pi_63215147
    quote:
    Op vrijdag 14 november 2008 10:55 schreef Tuvai.net het volgende:

    [..]

    Als je dus puur wilt controleren welke dagen in een gegeven maand voorkomen, is het volgende al voldoende:
    [ code verwijderd ]

    Nu heb je een array met wat er in de database staat, maar de array moet buiten de while ook nog bruikbaar zijn.
    ne okuyon, bokmu var?
      vrijdag 14 november 2008 @ 10:59:57 #209
    137690 Pizzahut
    Het Bora Bora Gebergte
    pi_63215165
    quote:
    Op vrijdag 14 november 2008 10:46 schreef Tuvai.net het volgende:

    [..]

    Je MySQL server adres is NIET hetzelfde als het adres van de betreffende website / DB admin panel. Mijn websites draaien bijvoorbeeld op website.nl, terwijl de achterliggende databaseserver altijd dbserver.website.nl is.
    dus is het deze:
    Host: http://dbadmin.one.com <- link naar mijn database
    Gebr.: mijn gebruikersnaam
    WW: mijn wachtwoord

    maar die doet het ook niet.
    Disturbed Mind
    Het leven: Soms ben je de duif, soms het standbeeld.
    pi_63215203
    quote:
    Op vrijdag 14 november 2008 10:59 schreef saban het volgende:

    [..]

    Nu heb je een array met wat er in de database staat, maar de array moet buiten de while ook nog bruikbaar zijn.
    Dat is de array $maandenDieVoorkomenInDezeMaand toch ook? In de while() loop wordt 'ie enkel gevuld met de gevonden dagen; daarna kun je doen met array $maandenDieVoorkomenInDezeMaand wat je wilt (lees: vergelijken).
    pi_63215226
    quote:
    Op vrijdag 14 november 2008 10:59 schreef Pizzahut het volgende:

    [..]

    dus is het deze:
    Host: http://dbadmin.one.com <- link naar mijn database
    Gebr.: mijn gebruikersnaam
    WW: mijn wachtwoord

    maar die doet het ook niet.
    Nee, http://dbadmin.one.com is niet je MySQL server, maar gewoon het adres/een subdomain waar PHPMyAdmin op draait.
      vrijdag 14 november 2008 @ 11:06:27 #212
    137690 Pizzahut
    Het Bora Bora Gebergte
    pi_63215350
    quote:
    Op vrijdag 14 november 2008 11:02 schreef Tuvai.net het volgende:

    [..]

    Nee, http://dbadmin.one.com is niet je MySQL server, maar gewoon het adres/een subdomain waar PHPMyAdmin op draait.
    zodra ik naar http://phpmyadmin.mijnwebsite.nl ga, wordt ik doorverwezen naar dbadmin.one.com
    Disturbed Mind
    Het leven: Soms ben je de duif, soms het standbeeld.
    pi_63215359
    quote:
    Op vrijdag 14 november 2008 11:01 schreef Tuvai.net het volgende:

    [..]

    Dat is de array $maandenDieVoorkomenInDezeMaand toch ook? In de while() loop wordt 'ie enkel gevuld met de gevonden dagen; daarna kun je doen met array $maandenDieVoorkomenInDezeMaand wat je wilt (lees: vergelijken).
    Cool Thanks.
    ne okuyon, bokmu var?
    pi_63215589
    quote:
    Op vrijdag 14 november 2008 11:06 schreef Pizzahut het volgende:

    [..]

    zodra ik naar http://phpmyadmin.mijnwebsite.nl ga, wordt ik doorverwezen naar dbadmin.one.com
    Dat kan, maar verandert de kwestie niet. Je MySQL server is iets heel anders dan een adres waar je je database met PhpMyAdmin beheert. Je hosting provider kan je vast wel vertellen wat je MySQL server adres is. Afhankelijk van de PhpMyAdmin versie kun je daar in ook zelf je MySQL server adres uit halen zodra je bent ingelogd.
    pi_63215701
    Nu we toch bezig zijn :9

    Ik heb de volgende 2 arrays ($array_datum en $array_naam):
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Array
    (
        [0] => 1-11-2008
        [1] => 6-11-2008
        [2] => 10-11-2008
    )
    Array
    (
        [0] => foo
        [1] => foo
        [2] => bar
    )


    Hoe kan ik bijvoorbeeld het volgende echo'n:
    foo heeft gewerkt op 1-11-2008
    of
    bar heeft gewerkt op 10-11-2008
    ne okuyon, bokmu var?
    pi_63215877
    quote:
    Op vrijdag 14 november 2008 11:17 schreef saban het volgende:
    Nu we toch bezig zijn

    Ik heb de volgende 2 arrays ($array_datum en $array_naam):
    [ code verwijderd ]

    Hoe kan ik bijvoorbeeld het volgende echo'n:
    foo heeft gewerkt op 1-11-2008
    of
    bar heeft gewerkt op 10-11-2008
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <?php
    $data
    =array("1-1-2008""2-4-2008""2-5-2008");
    $medewerkers=array("Piet""Jan""Klaas");

    // Weergeef 'Jan heeft gewerkt op 1-1-2008'
    echo $medewerkers[1] . ' heeft gewerkt op ' $data[0];

    // Weergeef 'Klaas heeft gewerkt op 2-4-2008'
    echo $medewerkers[2] . ' heeft gewerkt op ' $data[1];
    ?>


    Een array() bestaat uit een aantal waardes. Elke waarde in een array krijgt altijd een uniek nummertje, genaamd een index. Stel ik heb de volgende array:

    1
    2
    3
    <?php
    $bla 
    = array("appel""peer""Sinaasappel""Ananas");
    ?>


    Dan bestaat deze array respectievelijk uit de volgende indexes met daaraan hun corresponderende waardes:

    1
    2
    3
    4
    [0] = appel
    [1] = peer
    [2] = Sinaasappel
    [3] = Ananas


    Uiteraard altijd beginnend bij 0.
      vrijdag 14 november 2008 @ 11:24:56 #217
    137690 Pizzahut
    Het Bora Bora Gebergte
    pi_63215925
    quote:
    Op vrijdag 14 november 2008 11:13 schreef Tuvai.net het volgende:

    [..]

    Dat kan, maar verandert de kwestie niet. Je MySQL server is iets heel anders dan een adres waar je je database met PhpMyAdmin beheert. Je hosting provider kan je vast wel vertellen wat je MySQL server adres is. Afhankelijk van de PhpMyAdmin versie kun je daar in ook zelf je MySQL server adres uit halen zodra je bent ingelogd.
    snap ik, alleen weet ik de link niet. even achteraan gaan.
    Disturbed Mind
    Het leven: Soms ben je de duif, soms het standbeeld.
    pi_63216054
    quote:
    Op vrijdag 14 november 2008 11:24 schreef Pizzahut het volgende:

    [..]

    snap ik, alleen weet ik de link niet. even achteraan gaan.
    Bij mijn PhpMyAdmin is het MySQL server adres en poortnummer weergeven in de titelbalk van mijn browser. Kijk daar anders eens.
    pi_63216115
    Thanks Tuvai, ik wilde het net een beetje anders hebben.

    Waarom werkt dit niet?
    1
    2
    3
    4
    5
    6
    7
    <?php
    $t 
    array_keys($array_datum'10-11-2008');
    $q $t['0'];
    echo 
    $array_naam['$q']; // geeft niks weer (moet bar weergeven)
    echo $q// geeft 2 weer
    echo $array_naam['2']; // geeft bar weer
    ?>
    ne okuyon, bokmu var?
    pi_63216284
    quote:
    Op vrijdag 14 november 2008 11:30 schreef saban het volgende:
    Thanks Tuvai, ik wilde het net een beetje anders hebben.

    Waarom werkt dit niet?
    [ code verwijderd ]
    array_keys() is een functie die zelf een array maakt van de keys (oftewel de indexes), van een opgegeven array. :) Zie http://nl2.php.net/manual/en/function.array-keys.php .

    Overigens weergeeft het volgende stukje uiteraard niks:
    1
    2
    3
    <?php
    echo $array_naam['$q'];
    ?>


    Omdat je daadwerkelijk een item uit $array_naam wilt parsen die als key/index '$q' heeft; dit kan natuurlijk niet daar dit een key/indexnummer moet zijn. Dit zou dan wel moeten werken:

    1
    2
    3
    <?php
    echo $array_naam[$q];
    ?>
    pi_63216365
    quote:
    Op vrijdag 14 november 2008 11:35 schreef Tuvai.net het volgende:

    [..]

    array_keys() is een functie die zelf een array maakt van de keys (oftewel de indexes), van een opgegeven array. Zie http://nl2.php.net/manual/en/function.array-keys.php .

    Overigens weergeeft het volgende stukje uiteraard niks:
    [ code verwijderd ]

    Omdat je daadwerkelijk een item uit $array_naam wilt parsen die als key/index '$q' heeft; dit kan natuurlijk niet daar dit een key/indexnummer moet zijn. Dit zou dan wel moeten werken:
    [ code verwijderd ]
    Damn I fuckin love you
    ne okuyon, bokmu var?
    pi_63216771
    quote:
    Op vrijdag 14 november 2008 @ 11:37 schreef saban het volgende:

    [..]

    Damn I fuckin love you :D
    Kun je die arrays niet beter combineren?

    1
    2
    3
    4
    5
    6
    7
    <?php
    $combiarray
    ['1-11-2008'] => 'foo';
    $combiarray['6-11-2008'] => 'foo';
    $combiarray['10-11-2008'] => 'bar';

    echo 
    $combiarray[datum];
    ?>

    Is afhankelijk van wat je er mee wilt, maar misschien een idee.
      vrijdag 14 november 2008 @ 11:53:21 #223
    187069 slacker_nl
    Sicko pur sang
    pi_63216948
    quote:
    Op vrijdag 14 november 2008 11:30 schreef saban het volgende:
    Thanks Tuvai, ik wilde het net een beetje anders hebben.

    Waarom werkt dit niet?
    [ code verwijderd ]
    '' (single quotes) expand een value niet, "" (doubel quotes) wel.

    Doe maar eens:

    1
    2
    3
    4
    5
    <?php
    echo $bla;
    echo 
    "$bla";
    echo 
    '$bla';
    ?>


    Dit is overigens zo in bijna alle talen.
    In theory there is no difference between theory and practice. In practice there is.
    pi_63244384
    Ik wil contracten opslaan in mijn mysql tabel contracten, in de vorm van timestamps. Nu ga ik bij het inserten van de contracten controleren of er geen periode een dubbel contract bestaat.
    Als ik dus een contract afsluit van 15-dec-08 tot 15-jun-09, mag er geen nieuw contract ingevoerd worden die de periode op welke manier ook overlapt. Dus geen
    - overlap aan het begin van het bestaande contract
    - overlap aan het einde van het bestaande contract
    - overlap door volledig binnen de periode te vallen (01-jan-09 / 01-mei-09)
    - exact gelijke overlap. (f5-en)

    mijn tabel contracten bevat in ieder geval de volgende eigenschappen:
    - datum_start
    - datum_einde
    - klant_id

    nu heb ik de volgende query opgesteld, maar deze werkt nog niet zoals hij zou moeten werken.


    1
    2
    3
    <?php
    $query 
    "SELECT * FROM contracten WHERE datum_start >= ".$start." AND datum_start <= ".$start." AND datum_einde >= ".$eind." AND datum_einde <= ".$eind." AND klant_id = ".$klant_id.";";
    ?>


    hoe maak ik hem juist werkend?
    Amsterdam, stad van hash en coke,
    Waar de vrouwen zich vrouwelijk gedragen..
    En de mannen ook..
      zaterdag 15 november 2008 @ 15:39:23 #225
    75592 GlowMouse
    l'état, c'est moi
    pi_63245055
    Je hebt overlap als de startdatum of de einddatum van het nieuwe contract ligt tussen de start- en einddatum van een bestaand contract. Dat is equivalent met [de startdatum van het nieuwe contract ligt tussen de start- en einddatum van een bestaand contract] of [de einddatum van het nieuwe contract ligt tussen de start- en einddatum van een bestaand contract].
    eee7a201261dfdad9fdfe74277d27e68890cf0a220f41425870f2ca26e0521b0
    pi_63245466
    Ik zou het overigens niet met een timestamp doen, als je het tijdcomponent toch niet gebruikt, maar gewoon met een date veld
    pi_63245571
    quote:
    Op zaterdag 15 november 2008 15:39 schreef GlowMouse het volgende:
    Je hebt overlap als de startdatum of de einddatum van het nieuwe contract ligt tussen de start- en einddatum van een bestaand contract. Dat is equivalent met [de startdatum van het nieuwe contract ligt tussen de start- en einddatum van een bestaand contract] of [de einddatum van het nieuwe contract ligt tussen de start- en einddatum van een bestaand contract].
    Dan kom ik toch hierop uit:
    1
    2
    3
    <?php
    $query 
    "SELECT * FROM contracten WHERE (datum_start >= ".$start." AND datum_einde <= ".$start.") OR (datum_start >= ".$eind." AND datum_einde <= ".$eind.") AND customer = ".$customer.";";
    ?>


    En dat werkt ook niet..
    Amsterdam, stad van hash en coke,
    Waar de vrouwen zich vrouwelijk gedragen..
    En de mannen ook..
    pi_63245613
    of toch zo:
    1
    2
    3
    <?php
    $query 
    "SELECT * FROM contracten WHERE (datum_start <= ".$start." AND datum_einde >= ".$start.") OR (datum_start <= ".$eind." AND datum_einde >= ".$eind.") AND customer = ".$customer.";";
    ?>


    lijkt te werken...
    Amsterdam, stad van hash en coke,
    Waar de vrouwen zich vrouwelijk gedragen..
    En de mannen ook..
    pi_63257297
    Ik zou ook eens kijken naar BETWEEN. Dan kom je op zoiets uit:
    1
    2
    3
    4
    5
    6
    7
    <?php
    $query 
    'SELECT * FROM contracten
    WHERE
    ( ('
    .$start.' BETWEEN datum_start AND datum_einde)
        OR ('
    .$eind.' BETWEEN datum_start AND datum_einde) )
    AND customer = '
    .$customer;
    ?>


    [ Bericht 3% gewijzigd door Light op 16-11-2008 11:30:38 ]
    pi_63257910
    Handig zeg, al die query's die voor meer dan de helft buiten het scherm vallen
    Wil iedereen die in telekinese gelooft nu mijn hand op steken?
    | Foto's van toen en nu | Icons | Whatpulse keyboard | .NET developer? |
    pi_63258030
    quote:
    Op zondag 16 november 2008 11:23 schreef SuperRembo het volgende:
    Handig zeg, al die query's die voor meer dan de helft buiten het scherm vallen
    Zo, toch maar even wat enters toegevoegd
    pi_63264481
    Ik ben bezig met een overzicht van verschillende informatie van verschillende sites voor eigen gebruik. Hiervoor gebruik ik de functie "file_get_contents". Dit lukt goed. Ik krijg van een welbepaalde pagina een volledige lap HTML-code.

    De info die ik nodig heb staat tussen <titlered>xxx</titlered>. Hoe laat ik enkel deze informatie zien? Wie helpt me op weg?
    pi_63269907
    quote:
    Op zondag 16 november 2008 @ 15:43 schreef everybodysweird het volgende:
    Ik ben bezig met een overzicht van verschillende informatie van verschillende sites voor eigen gebruik. Hiervoor gebruik ik de functie "file_get_contents". Dit lukt goed. Ik krijg van een welbepaalde pagina een volledige lap HTML-code.

    De info die ik nodig heb staat tussen <titlered>xxx</titlered>. Hoe laat ik enkel deze informatie zien? Wie helpt me op weg?
    Met een regular expression

    <tilered>(.*)</titlered>
    pi_63270034
    Bedankt. Ondertussen heb ik al de functie preg_match_all gevonden. Ik krijg ondertussen alles tussen <xxx>tekst<xxx> mooi gefilterd. Echter, ik wil nu enkel de "tekst" weergeven waar een weekdag (maandag, dinsdag, woensdag, etc.) in de tekst staat. Iemand een idee voor deze regular expression?
    pi_63271655
    Ik heb een vraagje over statistieken.

    Voor mijn systeem wil ik nu het volgende inbouwen.
    - Start pagina (de pagina waar de gebruiker op binnenkomt) (reeds gedaan, simpel)
    - Exit pagina (de laatste pagina waar de gebruiker op is geweest voordat hij van mijn site afging)

    Hoe los ik dit database technisch op?
    The people who lost my respect will never get a capital letter for their name again.
    Like trump...
    pi_63273754
    quote:
    Op zondag 16 november 2008 20:38 schreef Chandler het volgende:
    Ik heb een vraagje over statistieken.

    Voor mijn systeem wil ik nu het volgende inbouwen.
    - Start pagina (de pagina waar de gebruiker op binnenkomt) (reeds gedaan, simpel)
    - Exit pagina (de laatste pagina waar de gebruiker op is geweest voordat hij van mijn site afging)

    Hoe los ik dit database technisch op?
    Gewoon bij iedere pagina in de database opslaan waar de gebruiker op het moment is?
    ne okuyon, bokmu var?
    pi_63274799
    quote:
    Op zondag 16 november 2008 20:38 schreef Chandler het volgende:
    Ik heb een vraagje over statistieken.

    Voor mijn systeem wil ik nu het volgende inbouwen.
    - Start pagina (de pagina waar de gebruiker op binnenkomt) (reeds gedaan, simpel)
    - Exit pagina (de laatste pagina waar de gebruiker op is geweest voordat hij van mijn site afging)

    Hoe los ik dit database technisch op?
    ja, iedere pagina opslaan dus...
    Wanneer hij weggaat weet je niet namelijk, dus je weet het pas op het moment dat je geen volgende pagina meer krijgt ... en dan moet je dus weten wat de vorige was
      maandag 17 november 2008 @ 12:47:14 #238
    12880 CraZaay
    prettig gestoord
    pi_63285946
    quote:
    Op zondag 16 november 2008 20:38 schreef Chandler het volgende:
    Ik heb een vraagje over statistieken.
    Google Analytics?
    pi_63289148
    Duidelijk en CraZaay, ik vind graag het wiel opnieuw uit!
    The people who lost my respect will never get a capital letter for their name again.
    Like trump...
    pi_63293177
    quote:
    Op zondag 16 november 2008 10:31 schreef Light het volgende:
    Ik zou ook eens kijken naar BETWEEN. Dan kom je op zoiets uit:
    [ code verwijderd ]
    cool thnx, nooit aan die optie gedacht, maar werkt een stuk makkelijker. heb eerder ook al eens met die probleem gezeten..
    Amsterdam, stad van hash en coke,
    Waar de vrouwen zich vrouwelijk gedragen..
    En de mannen ook..
    pi_63332021
    Op mijn vorige vraag heb ik een vervolg en natuurlijk heb ik gezocht maar kon hier niets begrijpends over vinden..

    Is het mogelijk om het MySQL 5.0 een query in een query te doen. BV

    Ik wil van een tabel waarin voor gebruikers de laatste referer staat

    1tabel: `user_referer_last_tmp` (site_id, ip_id, ref_id, timestamp)


    waarbij ik een unique op site_id en ip_id heb en deze middels een ON DUPLICATE KEY de ref_id aanpas gebruiken om een andere tabel te updaten.

    1tabel: `users_referer_last` (site_id`, `ref_id`, `hits`)


    waarbij ik een een unique op site_id en ref_id en weer ON DUPLICATE KEY waarbij ik dit keer de hits met 1 wil verhogen.

    Dus in het kort de query

    1. lees items uit tabel_referer_last_tmp waarbij de tijd minimaal een uur geleden is (timestamp)
    2. insert deze in tabel_referer_last (of update hits)
    3. verwijder gebruikte items uit tabel_referer_last_tmp

    En indien hier geen simpele oplossing voor is, hoe los ik dit wel praktisch en efficient op ;)
    The people who lost my respect will never get a capital letter for their name again.
    Like trump...
    pi_63332264
    Bluh, ik zit vast.
    Ik heb een stukje geschreven voor m'n site om in het menu de laatste 5 items uit een bepaalde nieuws categorie te laten zien.
    Na lang(!) proberen eindelijk een combinatie gevonden die werkte en kon ik eindelijk door naar de volgende stap.
    Ik heb namelijk bij die categorie een extra tekst in de bericht title staan om het wat duidelijker te maken.
    Nu wil ik dat wel houden, maar uiteraard niet laten zien in het menu want dat menu is al vernoemd naar die extra aanduiding.
    Enfin... ik zit dus een beetje vast want ik kan nérgens vinden hoe ik in php de eerste 9 karakters van de opgehaalde titel kan verwijderen.


    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
    $eol_separator = "</td></tr>";
    $sol_separator = "<tr><td valign='top' style='text-align:left; padding-top: 4px;'>";
    $qry = "SELECT news_id, news_title, news_category FROM #news WHERE news_render_type = 0 AND news_category = 3 ORDER BY news_id DESC LIMIT 0,".$count;


    if($sql2->db_Select_gen($qry))
    {
       $n_text = "<table cellspacing='0' cellpadding='0' style='width:100%; border-collapse: collapse;'>";
       while ($row = $sql2->db_Fetch())
       {      
          $title = $tp->toHTML($row['news_title']);

          if ($curcount < $count){
             $n_text .=$sol_separator ."<span style='font-size: 10px; color: #000000; margin-right: 8px;padding-bottom: 4px;'><em>".$time."</em></span></td>";
             $n_text .="<td valign='top' align='left' style='padding-top: 4px;padding-bottom: 4px;border-bottom:1px dotted #CCCCCC;'><a href='".e_HTTP."news.php?item.".$row['news_id']."'>".$title."</a>".$eol_separator;
          }else{
             $n_text .=$sol_separator ."<span style='font-size: 10px; color: #000000; margin-right: 8px;'><em>".$time."</em></span></td>";
             $n_text .="<td valign='top' align='left' style='padding-top: 4px;'><a href='".e_HTTP."news.php?item.".$row['news_id']."'>".$title."</a>".$eol_separator;
          }
            
          $curcount++;
       }
       $n_text .= "</table>";
    }
    else
    {
       $n_text = $no_news;
    }
    $ns->tablerender($caption, $n_text);



    Even nog eens in het kort wat ik graag zou willen maken;
    - Uit '#news' wordt o.a. de 'news_title' gehaald
    - Hier moeten de eerste 9 karakters van weg, bij alle titles van de items uit die categorie
    - Het mag alleen effect hebben op het menu, niet op de database entry

    Na een uurtje of 4 te hebben gezocht met mijn grote vriend heb ik het een beetje opgegeven en heb ik besloten elders hulp te zoeken. :)
    Ik kom niet om jullie het werk te laten doen, 99/100 keer blijf ik prielen tot ik het zelf heb opgelost, juist om er van te leren.
    Als je het dus duidelijk uitlegt schrijf ik het dus zelf graag zodat het ook blijft steken.


    Thanks,
    djpdjpnl
    pi_63332351
    Misschien kan die grote vriend wat beter helpen.
    pi_63332654
    Die pagina heb ik al enige tijd doorgelezen maar dit is niet de oplossing, Light.
    Ik heb namelijk niet 1 vaste tekst die aangepast wordt.
    Het ziet er zo ongeveer uit;

    '123456789 pizza
    123456789 schnitzel
    123456789 pindakaas'

    Die 1 t/m 9 moet eruit en ik kan dus niet zeggen als er ''123456789 pizza' staat dan moet 123456789 eruit' want ik weet nu nog niet wat er op de plek van pizza komt te staan.
    Substr zou dus kunnen helpen mits hij de plek van pizza variabel kan maken en dat snap ik niet hehe.
    pi_63332715
    Ik en preg_match_all, het blijft een drama. Ik laad een pagina in met een heleboel items die ik een array wil hebben.
    Ff heel simpel voorbeeldje:
    1
    2
    3
    4
    5
    6
    <table>
    <tr>
    <td>Item 1</td>
    <td>Item 2</td>
    </tr>
    </table>

    Nu wil ik dus Item 1 en Item 2 in een array hebben. Nu is het probleem dat de lengte van de items heel erg varieert, en het ook over meerdere regels loopt. Als ik dan een expressie als "<td>(.*)<\/td>/s" gebruik, dan krijg ik dus als resultaat "<td>Item 1</td><td>Item 2</td>" :? :{

    Hoop dat m'n uitleg een beetje duidelijk is :+
      dinsdag 18 november 2008 @ 23:33:45 #246
    75592 GlowMouse
    l'état, c'est moi
    pi_63332947
    djpdjpnl: sla die 123456789 op in een andere kolom. En anders kun je via substring (wat al aangedragen was, maar dit kun je beter in MySQL al doen) gewoon de eerste 10 karakters weghalen.
    Piles: kijk eens naar greediness.
    eee7a201261dfdad9fdfe74277d27e68890cf0a220f41425870f2ca26e0521b0
      dinsdag 18 november 2008 @ 23:37:40 #247
    75592 GlowMouse
    l'état, c'est moi
    pi_63333054
    quote:
    Op dinsdag 18 november 2008 23:03 schreef Chandler het volgende:
    Dus in het kort de query

    1. lees items uit tabel_referer_last_tmp waarbij de tijd minimaal een uur geleden is (timestamp)
    2. insert deze in tabel_referer_last (of update hits)
    3. verwijder gebruikte items uit tabel_referer_last_tmp
    Kijk eens hiernaar. Het deleten wordt sowieso een aparte query. Je moet er daarom ook rekening mee houden dat er tussen de eerste twee stappen en de laatste stap wat tijd kan zitten, zodat als je de timestamp niet constant houdt, je enkele rijen verwijdert die je niet verwerkt hebt.
    eee7a201261dfdad9fdfe74277d27e68890cf0a220f41425870f2ca26e0521b0
    pi_63333098
    quote:
    Op dinsdag 18 november 2008 23:33 schreef GlowMouse het volgende:
    Piles: kijk eens naar greediness.
    Modifer U dus Nog nooit gebruikt
    Dank u
    pi_63333975
    quote:
    Op dinsdag 18 november 2008 23:33 schreef GlowMouse het volgende:
    djpdjpnl: sla die 123456789 op in een andere kolom. En anders kun je via substring (wat al aangedragen was, maar dit kun je beter in MySQL al doen) gewoon de eerste 10 karakters weghalen.
    Sorry, ik denk dat ik wel in dit topic pas. Ik snap het niet helemaal. Als ik 1-9 elders wil opslaan kost me dat ontiegelijk veel code werk en da's denk ik niet rendabel voor wat ik aan het maken ben.

    De substring, hoe krijg ik die aan de title gekoppeld dat ie de substring variabel aan de title hangt en niet aan niks? Zou 't helpen als ik op line 12 een extra regel tik over hoe $title en substring samen wat doen? Ik weet niet echt hoe ik dat moet gaan schrijven namelijk.
    pi_63336300
    Substr() is toch niet zo heel lastig? Je geeft op op welke string je de bewerking wilt uitvoeren en hoeveel tekens vanaf het begin je wilt overslaan. Wat er daarna staat, is helemaal niet interessant. Zoiets dus:
    1
    2
    3
    <?php
    $title 
    $tp->toHTML(substr($row['news_title'], 10));
    ?>

    (Misschien maakt de volgorde van toHTML() en substr() voor het resultaat hier weinig uit, maar dit is wel de veiligere volgorde. Als je eenmaal een html-string hebt, moet je daar niet meer in gaan knippen.
    pi_63337229
    quote:
    Op dinsdag 18 november 2008 23:37 schreef GlowMouse het volgende:
    Kijk eens hiernaar. Het deleten wordt sowieso een aparte query. Je moet er daarom ook rekening mee houden dat er tussen de eerste twee stappen en de laatste stap wat tijd kan zitten, zodat als je de timestamp niet constant houdt, je enkele rijen verwijdert die je niet verwerkt hebt.
    Daar had ik naar gekeken maar kon er niets mee tenzij ik 3 queries ga gebruiken. Tevens wilde ik de timestamp van time() (php) gebruiken om zo te voorkomen dat ik nieuwe rijen verwijder daar waar het niet nodig is..

    Heb je nog meer tips?
    The people who lost my respect will never get a capital letter for their name again.
    Like trump...
      FOK!-Schrikkelbaas woensdag 19 november 2008 @ 13:28:52 #252
    1972 Swetsenegger
    Egocentrische Narcist
    pi_63343808
    include('../map/bestand.php');

    Hiermee ga je een folder omhoog vanuit de folder waarin je bestand staat. Maar hoe kan ik nu terug naar de root?
    pi_63344392
    quote:
    Op woensdag 19 november 2008 13:28 schreef Swetsenegger het volgende:
    include('../map/bestand.php');

    Hiermee ga je een folder omhoog vanuit de folder waarin je bestand staat. Maar hoe kan ik nu terug naar de root?
    Probeer eens ~ (weet het niet zeker).
    ne okuyon, bokmu var?
      woensdag 19 november 2008 @ 14:02:06 #254
    137690 Pizzahut
    Het Bora Bora Gebergte
    pi_63344691
    weet iemand hoe ik een RSS feed kan uitlezen in php?
    Deze bijvoorbeeld:
    http://www.nu.nl/deeplink_rss2/index.jsp?r=Algemeen

    Op google kom ik steeds deze tegen:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    <?php
    $xml = simplexml_load_file('http://feeds.feedburner.com/tweakers/nieuws');

    foreach($xml->channel->item as $item)

        echo '<h1>' .  $item->title . '</h1>';
        echo '<div>' . $item->description . '</div>';
    }
    ?>

    Alleen werkt deze niet.
    Disturbed Mind
    Het leven: Soms ben je de duif, soms het standbeeld.
      FOK!-Schrikkelbaas woensdag 19 november 2008 @ 14:09:16 #255
    1972 Swetsenegger
    Egocentrische Narcist
    pi_63344885
    Ik heb het pad er nu maar hard ingezet. ~/ was het niet
      woensdag 19 november 2008 @ 14:20:57 #256
    136730 PiRANiA
    All thinking men are atheists.
    pi_63345207
    quote:
    Op woensdag 19 november 2008 13:28 schreef Swetsenegger het volgende:
    include('../map/bestand.php');

    Hiermee ga je een folder omhoog vanuit de folder waarin je bestand staat. Maar hoe kan ik nu terug naar de root?
    INCLUDE("/home/user/bla/bla");
      woensdag 19 november 2008 @ 14:21:45 #257
    137676 TommyGun
    Stik er maar in!
    pi_63345227
    include('../../map/bestand.php'); ook niet?

    Edit; of zoals hierboven...
      woensdag 19 november 2008 @ 14:28:08 #258
    192166 Paupermans
    They made me do it
    pi_63345396
    quote:
    Op woensdag 19 november 2008 13:28 schreef Swetsenegger het volgende:
    include('../map/bestand.php');

    Hiermee ga je een folder omhoog vanuit de folder waarin je bestand staat. Maar hoe kan ik nu terug naar de root?
    In php.ini kun je ook de include_path variabele aanpassen, zodat php standaard in bepaalde mappen zoekt naar include bestanden. Dan hoef je slechts include('bestand.php') aan te roepen en php zoekt zelf uit in welke directory dat bestand staat. Zorg er uiteraard wel voor dat al je include bestanden een unieke naam hebben.
      FOK!-Schrikkelbaas woensdag 19 november 2008 @ 14:35:20 #259
    1972 Swetsenegger
    Egocentrische Narcist
    pi_63345610
    quote:
    Op woensdag 19 november 2008 14:20 schreef PiRANiA het volgende:

    [..]

    INCLUDE("/home/user/bla/bla");
    Ja, das gewoon hard het pad erin zetten.
    quote:
    Op woensdag 19 november 2008 14:28 schreef Paupermans het volgende:

    [..]

    In php.ini kun je ook de include_path variabele aanpassen, zodat php standaard in bepaalde mappen zoekt naar include bestanden. Dan hoef je slechts include('bestand.php') aan te roepen en php zoekt zelf uit in welke directory dat bestand staat. Zorg er uiteraard wel voor dat al je include bestanden een unieke naam hebben.
    Op shared hosting kom je daar niet bij.

    Maar ik weet dat er gewoon een code voor is. In DOS is het CD \ volgens mij
      woensdag 19 november 2008 @ 14:37:28 #260
    63192 ursel
    "Het Is Hier Fantastisch!
    pi_63345673
    Is het niet een enkele punt??
    include('./map/bestand.php');
      woensdag 19 november 2008 @ 14:43:53 #261
    12880 CraZaay
    prettig gestoord
    pi_63345870
    quote:
    Op woensdag 19 november 2008 14:37 schreef ursel het volgende:
    Is het niet een enkele punt??
    include('./map/bestand.php');
    Da's de huidige directory.
      woensdag 19 november 2008 @ 14:45:51 #262
    12880 CraZaay
    prettig gestoord
    pi_63345940
    quote:
    Op woensdag 19 november 2008 13:28 schreef Swetsenegger het volgende:
    include('../map/bestand.php');

    Hiermee ga je een folder omhoog vanuit de folder waarin je bestand staat. Maar hoe kan ik nu terug naar de root?
    '/' is je root Je bedoelt waarschijnlijk je document_root. Probeer eens $_SERVER["DOCUMENT_ROOT"]
    pi_63346915
    quote:
    Op woensdag 19 november 2008 07:21 schreef Light het volgende:
    Substr() is toch niet zo heel lastig? Je geeft op op welke string je de bewerking wilt uitvoeren en hoeveel tekens vanaf het begin je wilt overslaan. Wat er daarna staat, is helemaal niet interessant. Zoiets dus:
    [ code verwijderd ]

    (Misschien maakt de volgorde van toHTML() en substr() voor het resultaat hier weinig uit, maar dit is wel de veiligere volgorde. Als je eenmaal een html-string hebt, moet je daar niet meer in gaan knippen.
    Ik zat weer te moeilijk te denken. Light, dankjewel!
    pi_63349557
    quote:
    Op woensdag 19 november 2008 13:28 schreef Swetsenegger het volgende:
    include('../map/bestand.php');

    Hiermee ga je een folder omhoog vanuit de folder waarin je bestand staat. Maar hoe kan ik nu terug naar de root?
    Wat bedoel je met de root? Gewoon / ?
      woensdag 19 november 2008 @ 19:32:37 #265
    75592 GlowMouse
    l'état, c'est moi
    pi_63353747
    quote:
    Op woensdag 19 november 2008 13:28 schreef Swetsenegger het volgende:
    include('../map/bestand.php');

    Hiermee ga je een folder omhoog vanuit de folder waarin je bestand staat. Maar hoe kan ik nu terug naar de root?
    Je gaat geen folder omhoog, de current working directory blijft gewoon hetzelfde. Zie ook http://nl3.php.net/getcwd
    quote:
    Op woensdag 19 november 2008 09:02 schreef Chandler het volgende:

    [..]

    Daar had ik naar gekeken maar kon er niets mee tenzij ik 3 queries ga gebruiken.
    Dan doe je wat fout. Simpele testcase:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    CREATE TABLE `test` (
      `id` int(10) unsigned NOT NULL auto_increment,
      `count` int(10) unsigned NOT NULL,
      PRIMARY KEY  (`id`),
      UNIQUE KEY `id` (`id`)
    );
    CREATE TABLE `testtmp` (
      `id` int(10) unsigned NOT NULL
    );
    INSERT INTO `testtmp` VALUES (1);
    INSERT INTO `testtmp` VALUES (1);
    INSERT INTO `testtmp` VALUES (2);
    INSERT INTO `testtmp` VALUES (1);

    En dan deze query een paar keer doen:
    1INSERT INTO test(id,count) (SELECT id,1 FROM testtmp)  ON DUPLICATE KEY UPDATE count=count+1;
    eee7a201261dfdad9fdfe74277d27e68890cf0a220f41425870f2ca26e0521b0
      FOK!-Schrikkelbaas woensdag 19 november 2008 @ 19:40:35 #266
    1972 Swetsenegger
    Egocentrische Narcist
    pi_63353993
    quote:
    Op woensdag 19 november 2008 16:49 schreef Light het volgende:

    [..]

    Wat bedoel je met de root? Gewoon / ?
    Laat ik het simpeler uitleggen.

    Mijn script staat in /path/naar/mijn/script
    De file die ik include in /include/file

    Hoe ziet mijn include eruit?
    include(../../../../include/file) klopt maar das gezeik.
    werkt include(/include/file) dus gewoon?
      woensdag 19 november 2008 @ 19:43:10 #267
    75592 GlowMouse
    l'état, c'est moi
    pi_63354064
    Swetsenegger: kijk eens in print_r($_SERVER) of daar iets staat wat je kunt gebruiken
    eee7a201261dfdad9fdfe74277d27e68890cf0a220f41425870f2ca26e0521b0
      FOK!-Schrikkelbaas woensdag 19 november 2008 @ 20:03:01 #268
    1972 Swetsenegger
    Egocentrische Narcist
    pi_63354692
    quote:
    Op woensdag 19 november 2008 19:43 schreef GlowMouse het volgende:
    Swetsenegger: kijk eens in print_r($_SERVER) of daar iets staat wat je kunt gebruiken
    Ja dat kan uiteraard allemaal, maar volgens mij is er gewoon een ../..\~ whatever combi die gewoon zegt 'path begint nu in '/'' net zoals ../ 'path begint nu relatief 1 level hoger tov het bestand waar je nu in zit' zegt.

    Snappen we het nog? Zoals gezegd heb ik het ondertussen gewoon met een absoluut path gedaan maar ik ben gewoon benieuwd
      woensdag 19 november 2008 @ 20:05:48 #269
    75592 GlowMouse
    l'état, c'est moi
    pi_63354781
    / begint in de root van het filesystem en dan heb je een absoluut pad. Wat je beter kunt gebruiken is een element uit $_SERVER.
    eee7a201261dfdad9fdfe74277d27e68890cf0a220f41425870f2ca26e0521b0
    pi_63356179
    quote:
    Op woensdag 19 november 2008 19:40 schreef Swetsenegger het volgende:

    [..]

    Laat ik het simpeler uitleggen.

    Mijn script staat in /path/naar/mijn/script
    De file die ik include in /include/file
    Dat zijn vast absolute paden in de webroot van je site en niet absolute paden op het filesystem.
    quote:
    Hoe ziet mijn include eruit?
    include(../../../../include/file) klopt maar das gezeik.
    werkt include(/include/file) dus gewoon?
    include(/include/file) werkt in ieder geval als file in de folder /include/ staat (absolute path). Je zou moeten/kunnen testen of het ook werkt als je eerst het pad naar je webroot aan het include_path toevoegt.
    pi_63356234
    quote:
    Op woensdag 19 november 2008 14:45 schreef CraZaay het volgende:

    [..]

    '/' is je root Je bedoelt waarschijnlijk je document_root. Probeer eens $_SERVER["DOCUMENT_ROOT"]
    Een website hoeft niet in de document_root te staan. Er bestaan ook leuke dingen als aliassen enzo.
    pi_63356361
    quote:
    Op woensdag 19 november 2008 13:51 schreef saban het volgende:

    [..]

    Probeer eens ~ (weet het niet zeker).
    ~ is de homedir van de gebruiker. Bij een website zal dat de homedir van de eigenaar van het proces van de webserver (volg je het nog?) zijn. Dus de webserver draait als user apache, dan wordt gekeken naar de homedir van user apache. En die heeft waarschijnlijk geen homedir.
    pi_63356853
    quote:
    Op woensdag 19 november 2008 14:35 schreef Swetsenegger het volgende:

    Op shared hosting kom je daar niet bij.
    include_path is PHP_INI_ALL, die kun je dus overal aanpassen. Ook gewoon in je scripts.
    quote:
    Maar ik weet dat er gewoon een code voor is. In DOS is het CD \ volgens mij
    cd \ in DOS en cd / in Unix/Linux. Met als verschil dat je in DOS naar de root van de schijf gaat en in Unix/Linux naar de root van het bestandssysteem. Je kunt aan het pad geen partitie- of schijfstructuur achterhalen. En dan heb je in Linux (en Unix?) ook nog iets als een root jail. Maar dan gaan we wel heel erg offtopic.
      FOK!-Schrikkelbaas woensdag 19 november 2008 @ 21:27:12 #274
    1972 Swetsenegger
    Egocentrische Narcist
    pi_63357444
    quote:
    Op woensdag 19 november 2008 21:10 schreef Light het volgende:

    [..]

    include_path is PHP_INI_ALL, die kun je dus overal aanpassen. Ook gewoon in je scripts.
    OOK als safe mode aanstaat?
    pi_63357574
    quote:
    Op woensdag 19 november 2008 21:27 schreef Swetsenegger het volgende:

    [..]

    OOK als safe mode aanstaat?
    Vast wel. In de PHP-documentatie staat in ieder geval niets dat erop wijst dat het alleen werkt als safe mode uit staat. (En daarbij zet een beetje hoster gewoon safe mode uit. Ze moeten sowieso wel als ze naar PHP6 overgaan, ooit.)
      FOK!-Schrikkelbaas woensdag 19 november 2008 @ 21:33:37 #276
    1972 Swetsenegger
    Egocentrische Narcist
    pi_63357662
    Ik heb een aantal hosters waar safe mode aanstaat, naast nog wat andere beperkende maatregelen. das echt een gezeik.
    pi_63361106
    substr() vraagje:

    Ik heb 2 strings, zijnde:
    $string1 = 15-12;
    $string2 = 3-11;

    Nu wil ik dat zowel $string1 als $string2 enkel de laatste 2 cijfers geven. Ik heb de functie substr() gevonden, maar ik vind maar niet hoe ik zowel 12 als 11 kan bekomen.
    pi_63361645
    quote:
    Op woensdag 19 november 2008 23:10 schreef everybodysweird het volgende:
    substr() vraagje:

    Ik heb 2 strings, zijnde:
    $string1 = 15-12;
    $string2 = 3-11;

    Nu wil ik dat zowel $string1 als $string2 enkel de laatste 2 cijfers geven. Ik heb de functie substr() gevonden, maar ik vind maar niet hoe ik zowel 12 als 11 kan bekomen.
    Is het altijd 2 cijfers?
    substr($string, -2);
      woensdag 19 november 2008 @ 23:40:10 #279
    75592 GlowMouse
    l'état, c'est moi
    pi_63361954
    Waarbij je natuurlijk wel $string1 = "15-12"; moet hebben staan, want anders slaat hij gewoon -3 op in de integer $string1 en kun je die 12 nooit meer terugkrijgen.
    eee7a201261dfdad9fdfe74277d27e68890cf0a220f41425870f2ca26e0521b0
    pi_63365426
    include_path kan je gewoon veranderen als safe mode aanstaat overigens.

    /spuit 11
    In theory there is no difference between theory and practice. In practice there is.
    pi_63365685
    Het probleem is dat substr($string, -2); niet lijkt te werken, hij geeft namelijk niets weer.
    pi_63365738
    quote:
    Op donderdag 20 november 2008 08:26 schreef everybodysweird het volgende:
    Het probleem is dat substr($string, -2); niet lijkt te werken, hij geeft namelijk niets weer.
    Heb je al aanhalingstekens of apostrofs om je declaraties gezet?

    Dus
    1
    2
    $string1 = '15-12';
    $string2 = '3-11';


    i.p.v.
    1
    2
    $string1 = 15-12;
    $string2 = 3-11;
    pi_63365851
    Kan je niet beter exploden op de - in plaats van substringen?
    Dat lijkt me een stuk safer als het laatste getal een keer niet uit 2 cijfers bestaat
    pi_63365980
    quote:
    Op woensdag 19 november 2008 19:32 schreef GlowMouse het volgende:
    Dan doe je wat fout. Simpele testcase:
    [ code verwijderd ]

    En dan deze query een paar keer doen:
    [ code verwijderd ]
    Ik zal er eens mee gaan spelen

    Heb ik natuurlijk gelijk een andere vraag, stel ik heb een database met de volgende opzet

    - persoon (id, naam)
    - vrienden (id, persoon_id, naam)
    - vrienden_link (id, vrienden_id, wens_id, jaar)
    - wensen (id, wens)

    Nu wil ik graag weten hoeveel mensen dit jaar hun lootjes hebben ingevuld hoe kan ik dat achterhalen middels 1 query? ga er dan vanuit dat ik al de persoon_id weet.

    Ik heb het volgende geprobeerd maar werkt niet naar behoren!
    1
    2
    3
    4
    5
    6
    7
    SELECT count(wensen.id)
    FROM vrienden
    LEFT JOIN vrienden_link ON vrienden_link.vriend_id = vrienden.id
    LEFT JOIN wensen ON wensen.id = vrienden_link.wens_id
    WHERE vrienden.persoon_id = '1'
    AND  vrienden_link.jaar = YEAR(NOW())
    GROUP BY vrienden_link.id


    [ Bericht 23% gewijzigd door Chandler op 20-11-2008 09:08:32 ]
    The people who lost my respect will never get a capital letter for their name again.
    Like trump...
      donderdag 20 november 2008 @ 09:26:19 #285
    192166 Paupermans
    They made me do it
    pi_63366511
    1
    2
    3
    SELECT DISTINCT vrienden_id, count(vrienden_id) AS aantal
    FROM vrienden_link
    WHERE jaar = 2008

    Zoiets zou wel moeten werken..
    pi_63367458
    klopt maar dan mis je nog persoon_id die weer vast zit aan het vrienden tabel
    The people who lost my respect will never get a capital letter for their name again.
    Like trump...
      donderdag 20 november 2008 @ 10:48:32 #287
    75592 GlowMouse
    l'état, c'est moi
    pi_63368350
    Die GROUP BY gaat natuurlijk nooit werken he: ten eerste zal vrienden_link.id uniek zijn en bedoel je waarschijnlijk vrienden_link.vriend_id, daarnaast zul je nu voor iedere vrienden_link.id een aparte rij terugkrijgen. Kijk hier eens naar.

    Wat een gekke databasestructuur trouwens: vrienden zijn nu geen personen en vrienden kunnen nu maar bij één persoon horen.
    eee7a201261dfdad9fdfe74277d27e68890cf0a220f41425870f2ca26e0521b0
    pi_63378114
    Is hetvolgende mogelijk met PHP?

    Een bestand openen, maar slechts wat er tussen 2 tags staat.

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <html>
    <head>
    </head>
    <body>

    <!----EDITAREA -->
    Blaat
    <!----ENDEDITAREA -->
    </body>
    </html>


    Dus alles wat tussen area staat moet in een var, uiteindelijk in een tekstbox staan. Is dit mogelijk? Is het moeilijk?
    pi_63378591
    quote:
    Op donderdag 20 november 2008 16:43 schreef Flaccid het volgende:
    Is hetvolgende mogelijk met PHP?

    Een bestand openen, maar slechts wat er tussen 2 tags staat.
    [ code verwijderd ]

    Dus alles wat tussen area staat moet in een var, uiteindelijk in een tekstbox staan. Is dit mogelijk? Is het moeilijk?
    splitsen met een regular expression
    pi_63379852
    quote:
    Op donderdag 20 november 2008 17:01 schreef VeerMans het volgende:

    [..]

    splitsen met een regular expression
    Ik heb gegoogled, dat word dus preg_split? Maar ik heb geen idee hoe ik moet zorgen dat alle tekst tussen die 2 tags eruit kan gevist worden. Ik kan met preg match oid zoeken waar dat ding staat.
    pi_63379897
    quote:
    Op donderdag 20 november 2008 18:01 schreef Flaccid het volgende:

    [..]

    Ik heb gegoogled, dat word dus preg_split? Maar ik heb geen idee hoe ik moet zorgen dat alle tekst tussen die 2 dingen bewaard moet worden.
    Ik zou preg_match() gebruiken.
    pi_63380568
    quote:
    Op donderdag 20 november 2008 16:43 schreef Flaccid het volgende:
    Is hetvolgende mogelijk met PHP?

    Een bestand openen, maar slechts wat er tussen 2 tags staat.
    [ code verwijderd ]

    Dus alles wat tussen area staat moet in een var, uiteindelijk in een tekstbox staan. Is dit mogelijk? Is het moeilijk?
    Explode eerst op <!-- start -->, en explode die weer op <!-- end -->
    ne okuyon, bokmu var?
    pi_63383507
    quote:
    Op donderdag 20 november 2008 18:35 schreef saban het volgende:

    [..]

    Explode eerst op <!-- start -->, en explode die weer op <!-- end -->
    Dat zegt mij helemaal niks, ik ben niet zo goed met php.
    pi_63383635
    preg_match is denk ik het handigst, dit _zou_ moeten werken
    1$matchcount = preg_match('/<!----EDITAREA -->(.*?)<!----ENDEDITAREA -->/sim', $jebestand, $matches);


    en in $matches zit wat je zoekt
    pi_63388520
    quote:
    Op donderdag 20 november 2008 20:17 schreef VeerMans het volgende:
    preg_match is denk ik het handigst, dit _zou_ moeten werken
    [ code verwijderd ]

    en in $matches zit wat je zoekt
    Wat is matchcount hier? Uiteindelijk wat tussen de tags staat?

    Wat is /sim? En wat gebeurd er precies met /<!----EDITAREA -->(.*?)<!----ENDEDITAREA -->/sim
    pi_63388740
    quote:
    Op donderdag 20 november 2008 22:28 schreef Flaccid het volgende:
    Wat is matchcount hier?
    Het aantal resultaten, zie http://nl.php.net/manual/en/function.preg-match-all.php
    quote:
    Uiteindelijk wat tussen de tags staat?
    Nee, dat komt in $matches. Doe maar eens dit:
    1
    2
    3
    echo '<pre>'; 
    print_r($matches); 
    echo '</pre>';
    quote:
    Wat is /sim?
    http://nl.php.net/reference.pcre.pattern.modifiers ;)
    quote:
    En wat gebeurd er precies met /<!----EDITAREA -->(.*?)<!----ENDEDITAREA -->/sim
    Reguliere Expressies, zoek maar eens :)
    pi_63388849
    /sim zorgt voor een paar dingen. De i staat voor case Insensitive, zodat EDITDATA en EditData worden geaccepteerd. De m staat voor Multiline. En de s zorgt dat de punt in (.*?) ook newlines matcht.
      FOK!-Schrikkelbaas vrijdag 21 november 2008 @ 16:12:10 #298
    1972 Swetsenegger
    Egocentrische Narcist
    pi_63407825
    Iemand enig idee waarom ik hier 'datum klopt' uit krijg :?

    1
    2
    3
    4
    5
    6
    7
    <?php
    if(strtotime(date("now")) > strtotime('20 November 2008')){
            die(
    'missing parameters');
    }else{
        echo
    "datum klopt";
    }
    ?>
      vrijdag 21 november 2008 @ 16:46:49 #299
    136730 PiRANiA
    All thinking men are atheists.
    pi_63408781
    quote:
    Op vrijdag 21 november 2008 16:12 schreef Swetsenegger het volgende:
    Iemand enig idee waarom ik hier 'datum klopt' uit krijg
    [ code verwijderd ]
    Omdat het 20 nov geweest is?
      vrijdag 21 november 2008 @ 16:48:41 #300
    136730 PiRANiA
    All thinking men are atheists.
      FOK!-Schrikkelbaas vrijdag 21 november 2008 @ 16:48:43 #301
    1972 Swetsenegger
    Egocentrische Narcist
    pi_63408827
    quote:
    Op vrijdag 21 november 2008 16:46 schreef PiRANiA het volgende:

    [..]

    Omdat het 20 nov geweest is?
    dan zou ik dus bij de 'missing parameters' moeten uitkomen.
    immers zijn er sinds 1 januari 1970 meer seconden verstreken tov 21 Nov (vandaag) dan 20 Nov.
    abonnement Unibet Coolblue Bitvavo
    Forum Opties
    Forumhop:
    Hop naar:
    (afkorting, bv 'KLB')