abonnement bol.com Unibet Coolblue
  zondag 26 juli 2009 @ 23:52:42 #1
75592 GlowMouse
l'état, c'est moi
pi_71353744

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, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74,

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
  • eee7a201261dfdad9fdfe74277d27e68890cf0a220f41425870f2ca26e0521b0
      zondag 26 juli 2009 @ 23:53:23 #2
    110933 F4T4L_3RR0R
    R.I.P. webicon ;(
    pi_71353760
    quote:
    Op zondag 26 juli 2009 23:19 schreef Roönaän het volgende:

    [..]

    Bedenk even dat je de boel ook nog door time() moet halen..
    Ow jee, denk dat ik nu heel veel moet lezen...
    Een ballonvaarder die door de mand valt is nooit grappig...
      maandag 27 juli 2009 @ 00:15:30 #3
    75592 GlowMouse
    l'état, c'est moi
    pi_71354249
    quote:
    Op zondag 26 juli 2009 23:53 schreef F4T4L_3RR0R het volgende:

    [..]

    Ow jee, denk dat ik nu heel veel moet lezen...
    Je kunt het natuurlijk ook gewoon hier vragen!
    eee7a201261dfdad9fdfe74277d27e68890cf0a220f41425870f2ca26e0521b0
    pi_71354293
    tvp
      maandag 27 juli 2009 @ 00:24:54 #5
    110933 F4T4L_3RR0R
    R.I.P. webicon ;(
    pi_71354425
    quote:
    Op maandag 27 juli 2009 00:15 schreef GlowMouse het volgende:

    [..]

    Je kunt het natuurlijk ook gewoon hier vragen!
    Bij deze!

    Ik hoef niet alles voorgekauwd te hebben hoor, maar een duwtje in de goede richting kan geen kwaad.

    $string = "bla bla bla bla 13:12 bla bla bla"

    Hoe vis ik daar de tijd uit zonder te exploden of substr te gebruiken?
    Een ballonvaarder die door de mand valt is nooit grappig...
    pi_71354476
    quote:
    Op maandag 27 juli 2009 00:17 schreef LeNick het volgende:
    tvp
      maandag 27 juli 2009 @ 00:31:01 #7
    84926 WyriHaximus
    Release the hounds smithers!
    pi_71354531
    quote:
    Op maandag 27 juli 2009 00:24 schreef F4T4L_3RR0R het volgende:

    [..]

    Bij deze!

    Ik hoef niet alles voorgekauwd te hebben hoor, maar een duwtje in de goede richting kan geen kwaad.

    $string = "bla bla bla bla 13:12 bla bla bla"

    Hoe vis ik daar de tijd uit zonder te exploden of substr te gebruiken?
    Succes: http://nl2.php.net/manual/en/book.pcre.php
    phluphy for president!
      maandag 27 juli 2009 @ 00:37:00 #8
    110933 F4T4L_3RR0R
    R.I.P. webicon ;(
    pi_71354663
    Kan het ook met sscanf of strtotime in plaats van regex?
    Een ballonvaarder die door de mand valt is nooit grappig...
    pi_71356574
    tvp
    Just say hi!
      maandag 27 juli 2009 @ 08:02:02 #10
    63192 ursel
    "Het Is Hier Fantastisch!
    pi_71356661
    quote:
    Op maandag 27 juli 2009 00:27 schreef DirkZz het volgende:

    [..]
    pi_71361863
    Ik ook maar weer ff
      maandag 27 juli 2009 @ 12:45:01 #12
    84244 Scorpie
    Abject en infaam!
    pi_71361991
    tvp
    Op dinsdag 13 augustus schreef Xa1pt:
    Neuh, fraude mag best aangepakt worden. Maar dat het de maatschappij meer oplevert of beter is voor de samenleving, is nog maar de vraag.
    Op donderdag 25 juni 2015 schreef KoosVogels:
    Klopt. Ik ben een racist.
      maandag 27 juli 2009 @ 17:49:05 #13
    110933 F4T4L_3RR0R
    R.I.P. webicon ;(
    pi_71371138
    Kan iemand mij verder op pad helpen met de tijd uit een $ halen en in een nieuwe $ te zetten? (zonder gebruik te maken van regex)
    Een ballonvaarder die door de mand valt is nooit grappig...
    pi_71373563
    quote:
    Op maandag 27 juli 2009 17:49 schreef F4T4L_3RR0R het volgende:
    Kan iemand mij verder op pad helpen met de tijd uit een $ halen en in een nieuwe $ te zetten? (zonder gebruik te maken van regex)
    Dus zonder regex, zonder explode en zonder substr?
      maandag 27 juli 2009 @ 19:27:22 #15
    110933 F4T4L_3RR0R
    R.I.P. webicon ;(
    pi_71373661
    quote:
    Op maandag 27 juli 2009 19:24 schreef Roönaän het volgende:

    [..]

    Dus zonder regex, zonder explode en zonder substr?
    Juist.

    Sscanf en strtotime zijn al aangedragen als mogelijke oplossingen, maar ik kom daar niet uit.
    Een ballonvaarder die door de mand valt is nooit grappig...
      maandag 27 juli 2009 @ 20:12:23 #16
    85514 ralfie
    !Yvan eht nioj
    pi_71375129
    geen regex kan ik me voorstellen, maar waarom zou je in godesnaam geen explode of zelfs substr willen gebruiken ??
      maandag 27 juli 2009 @ 20:15:30 #17
    75592 GlowMouse
    l'état, c'est moi
    pi_71375216
    Some people, when confronted with a problem, think "I know, I'll use regular expressions." Now they have two problems.
    eee7a201261dfdad9fdfe74277d27e68890cf0a220f41425870f2ca26e0521b0
      maandag 27 juli 2009 @ 20:35:32 #18
    110933 F4T4L_3RR0R
    R.I.P. webicon ;(
    pi_71375865
    quote:
    Op maandag 27 juli 2009 20:12 schreef ralfie het volgende:
    geen regex kan ik me voorstellen, maar waarom zou je in godesnaam geen explode of zelfs substr willen gebruiken ??
    De datum kan 1-1-2009 zijn maar soms ook 01-01-2009. Zelfde met de tijd, deze kan 9:00 of 09:00 zijn. Substr is dan niet mogelijk.
    Een ballonvaarder die door de mand valt is nooit grappig...
      FOK!-Schrikkelbaas maandag 27 juli 2009 @ 20:36:00 #19
    1972 Swetsenegger
    Egocentrische Narcist
    pi_71375879
    1
    2
    3
    4
    5
    6
    <?php
    if($price<$artikel[$row['artId']]['prijs'] || !isset($artikel[$row['artId']]['prijs'])){
       
    $artikel[$row['artId']]['prijs']=$price;
    }
    echo 
    $row['artId'].' '.$price.'&nbsp;'.$artikel[$row['artId']]['prijs'].'<br />';
    ?>


    1
    2
    3
    4
    1 19,99 19,99
    3 14,95 14,95
    3 9,95  9,95
    3 14,95 14,95


    wtf ik verwacht

    1
    2
    3
    4
    1 19,99 19,99
    3 14,95 14,95
    3 9,95  9,95
    3 14,95 9,95
    pi_71379073
    Tja dit is blijkbaar een stukje uit een loop waar ergens wat fout gaat. Moeilijk te zeggen zonder de hele loop erbij. Ik gok dat $artikel ergens overschreven wordt waar jij het blijkbaar niet verwacht.
    Wil iedereen die in telekinese gelooft nu mijn hand op steken?
    | Foto's van toen en nu | Icons | Whatpulse keyboard | .NET developer? |
      FOK!-Schrikkelbaas maandag 27 juli 2009 @ 22:51:54 #21
    1972 Swetsenegger
    Egocentrische Narcist
    pi_71380230
    nee, blijkbaar gaat het vergelijken van een float in een string niet goed. Omdat ik het in de database toch als centen opsla, laat ik de number_format er nu pas na het vergelijk op los en dat werkt zoals verwacht.

    995 is blijkbaar wel kleiner dan 1495, maar 9,95 is blijkbaar niet kleiner dan 14,95.
    pi_71380525
    quote:
    Op maandag 27 juli 2009 20:15 schreef GlowMouse het volgende:
    Some people, when confronted with a problem, think "I know, I'll use regular expressions." Now they have two problems.
    Maar wat Fatal_error wil, kan heel goed met een regex. En dat wordt dan geen ingewikkelde regex.
    pi_71380633
    quote:
    Op maandag 27 juli 2009 22:51 schreef Swetsenegger het volgende:
    nee, blijkbaar gaat het vergelijken van een float in een string niet goed. Omdat ik het in de database toch als centen opsla, laat ik de number_format er nu pas na het vergelijk op los en dat werkt zoals verwacht.

    995 is blijkbaar wel kleiner dan 1495, maar 9,95 is blijkbaar niet kleiner dan 14,95.
    Als die eerste twee (995 en 1495) getallen zijn, dan klopt het dat 995 < 1495. En die laatste twee zijn vast strings, dan is 9 > 1 en dus 9,95 > 14,95.
    pi_71381516
    quote:
    Op maandag 27 juli 2009 22:51 schreef Swetsenegger het volgende:
    nee, blijkbaar gaat het vergelijken van een float in een string niet goed.
    Ja dan vraag je ook wel om problemen eigenlijk
    Altijd eerst berekeningen uitvoeren, en pas op het allerlaatst omzetten naar tekst.
    Wil iedereen die in telekinese gelooft nu mijn hand op steken?
    | Foto's van toen en nu | Icons | Whatpulse keyboard | .NET developer? |
      maandag 27 juli 2009 @ 23:33:51 #25
    110933 F4T4L_3RR0R
    R.I.P. webicon ;(
    pi_71381526
    quote:
    Op maandag 27 juli 2009 23:00 schreef Light het volgende:

    [..]

    Maar wat Fatal_error wil, kan heel goed met een regex. En dat wordt dan geen ingewikkelde regex.
    Heb op aanraden (don't ask why) al zoveel mogelijk regex vervangen door alternatieven.

    Maar ben toch benieuwd naar de regex oplossing.

    Is het trouwens ook mogelijk om met een simpele regex de eerste 2 en de laatste regel (newline) uit een $ te halen? Heb nu dit, wat best wel ingewikkeld is en uit "veel" regels bestaat:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    <?php
            
    function striphtml($trimmed)
            {
            
    $arrhtml explode("\n"$trimmed);
            
    $resulthtml = array();

            for (
    $ihtml 2$sizehtml count($arrhtml); $ihtml < ($sizehtml 1); $ihtml++) {
                
    $resulthtml[] = $arrhtml[$ihtml];
                }

            return 
    $resulthtml;
            }

            
    $clean implode("\n"striphtml($trimmed));
    ?>
    Een ballonvaarder die door de mand valt is nooit grappig...
    pi_71381694
    quote:
    Op maandag 27 juli 2009 23:33 schreef F4T4L_3RR0R het volgende:

    [..]

    Heb op aanraden (don't ask why) al zoveel mogelijk regex vervangen door alternatieven.

    Maar ben toch benieuwd naar de regex oplossing.
    1
    2
    3
    <?php
    $regex 
    '/(\d{1,2})-(\d{1,2})-(\d{4})\s+(\d{1,2}):(\d{2})/';
    ?>

    1 of 2 cijfers voor dag, 1 of 2 cijfers voor maand, 4 cijfers voor jaar, dan ten minste 1 spatie (of tab), 1 of 2 cijfers voor uur en 2 cijfers voor minuten.
      maandag 27 juli 2009 @ 23:49:26 #27
    110933 F4T4L_3RR0R
    R.I.P. webicon ;(
    pi_71382000
    De datum heb ik niet nodig he.
    Een ballonvaarder die door de mand valt is nooit grappig...
      dinsdag 28 juli 2009 @ 01:52:42 #28
    110933 F4T4L_3RR0R
    R.I.P. webicon ;(
    pi_71384333
    Heb het toch maar met explode en substr gedaan...
    Een ballonvaarder die door de mand valt is nooit grappig...
    pi_71385317
    Bizar die newline code.
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    <?php
            function striphtml($trimmed)
            {
            $arrhtml = explode("\n", $trimmed);
            $resulthtml = array();

            for ($ihtml = 2, $sizehtml = count($arrhtml); $ihtml < ($sizehtml - 1); $ihtml++) {
                $resulthtml[] = $arrhtml[$ihtml];
                }

            return $resulthtml;
            }

            $clean = implode("\n", striphtml($trimmed));
    ?>

    Kan toch gewoon als
    1
    2
    3
    4
    5
    6
    7
    <?php
            function striphtml($trimmed) {
               return array_slice(explode("\n", $trimmed), 2);
            }

            $clean = implode("\n", striphtml($trimmed));
    ?>

    Raar ook dat een striphtml geen tags weghaald of iets anders html gerelateerds doet.

    Voor de tijd:

    1
    2
    3
    4
    5
    6
    <?php
    if(preg_match('/([01]?[0-9]|2[0-4]):[0-5][0-9]/', $string, $m)) {
       $time = $m[0];
    } else {
      // geen tijd gevonden
    }
      FOK!-Schrikkelbaas dinsdag 28 juli 2009 @ 08:14:36 #30
    1972 Swetsenegger
    Egocentrische Narcist
    pi_71385610
    quote:
    Op maandag 27 juli 2009 23:33 schreef SuperRembo het volgende:

    [..]

    Ja dan vraag je ook wel om problemen eigenlijk
    Altijd eerst berekeningen uitvoeren, en pas op het allerlaatst omzetten naar tekst.
    Ja dat bedacht ik me ook toen ik de vreemde resultaten zag
    pi_71386545
    quote:
    Op dinsdag 28 juli 2009 07:21 schreef Roönaän het volgende:

    Voor de tijd:
    [ code verwijderd ]
    Die is nog netter inderdaad
    pi_71398976
    Ook ik heb weer een vraagje; ik zal eerst de opzet van mijn database even laten zien.

    1
    2
    3
    4
    5
    6
    7
    user_id - top_id - nummer - getal
    0         -      55    -     15    - 1
    0         -      55    -     25    - 2
    0         -      55    -     35    - 3
    0         -      55    -     45    - 4
    0         -      55    -     55    - 5
    1         -      55    -     35    - 7


    Nu ben ik bezig om een query te maken die het volgende kan uitlezen.

    Alles van gebruiker 1 en 0 alleen als gegevens van gebruiker 1 bestaat moet dat van gebruiker 0 niet zichtbaar zijn. (verduidelijking in voorbeeld).

    Uitkomst van de query moet dus zijn
    1
    2
    3
    4
    5
    6
    0         -      55    -     15    - 1
    0         -      55    -     25    - 2

    0         -      55    -     45    - 4
    0         -      55    -     55    - 5
    1         -      55    -     35    - 7


    Daar waar je een witte enter ziet zie je het verschil.

    Ik gebruik nu deze query
    1
    2
    3
    4
    5
    6
    7
    8
    SELECT *
    FROM testtabel
    WHERE confectie_id = '" . substr($_POST['test'], 1, strlen($_POST['maat']) -1) . "'
    AND  (user_id      = '" . $_POST['user'] . "'
    OR    user_id      = '0')
    AND nummer IN ('" . implode("','", array_keys($noemers)) . "')
    GROUP BY user_id, nummer
    ORDER BY user_id


    Anyone?
    Just say hi!
      dinsdag 28 juli 2009 @ 16:10:14 #33
    75592 GlowMouse
    l'état, c'est moi
    pi_71399349
    n/m
    eee7a201261dfdad9fdfe74277d27e68890cf0a220f41425870f2ca26e0521b0
    pi_71400286
    Ik snap niet wat je bedoelt Chandler
    pi_71407077
    Kan je niet gewoon sorteren en dan een limit 1 toevoegen?
    pi_71417819
    Omg, wat ben ik toch slecht in uitleggen

    @Roonaan; helaas dat werkt niet, wel als ik zou limieten op het aantal stuks. Wat ik wel kan doen is gewoon alles uitlezen van gebruiker 0 en eventueel de geselecteerde gebruiker en dan alles wat er wel bestaat voor de geselecteerde gebruiker gebruiken ipv wat er staat voor gebruiker 0.

    Ik zal deze ochtend even beter nadenken over hoe ik het beter kan uitleggen!
    Just say hi!
    pi_71435915
    Wat is "gebruiker 0", zijn dat je default setting oid?
      woensdag 29 juli 2009 @ 19:07:54 #38
    110933 F4T4L_3RR0R
    R.I.P. webicon ;(
    pi_71436586
    quote:
    Op dinsdag 28 juli 2009 07:21 schreef Roönaän het volgende:
    Bizar die newline code.
    [ code verwijderd ]

    Kan toch gewoon als
    [ code verwijderd ]

    Raar ook dat een striphtml geen tags weghaald of iets anders html gerelateerds doet.

    Voor de tijd:
    [ code verwijderd ]
    Die voor de tijd werkt voortreffelijk! Wat gebeurd er trouwens als er 2 keer een tijdvermelding in staat? Net getest, dan geeft hij de eerst gevonden tijd door. Maar dit kan geen fouten veroorzaken?

    Is er ook iets waardoor hij 123:45 of 12:345 niet als tijd mag herkennen? Een : achter de tijd moet juist wel weer kunnen: 12:34:56, waarbij hij 12:34 moet weergeven.

    Die newline code is onderdeel van een soort HTML parser. Het script krijgt een e-mail te verwerken, en moet daar de plain text gedeelte uithalen.

    Wat overblijft is:
    quote:
    charset="iso-8859-1"
    Content-Transfer-Encoding: 8bit

    Inhoud mailtje

    ----NextPart_048F8BC8A2197DE2036A
    Daar moet hij de eerste twee regels en de laatste regel verwijderen.

    Dat doe ik nu dus met het volgende:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    <?php
        
    if (stripos($headers"boundary=") !== false) {

            
    $splitplain explode("Content-Type: text/plain;"$message);
            
    $splithtml explode("Content-Type: text/html;"$splitplain[1]);
            
    $trimmed trim($splithtml[0]);

            function 
    striphtml($trimmed)
            {
            
    $arrhtml explode("\n"$trimmed);
            
    $resulthtml = array();

            for (
    $ihtml 2$sizehtml count($arrhtml); $ihtml < ($sizehtml 1); $ihtml++) {
                
    $resulthtml[] = $arrhtml[$ihtml];
                }

            return 
    $resulthtml;
            }

            
    $clean implode("\n"striphtml($trimmed));

        } else {

            
    $clean $message;
        }

            
    $body trim(str_replace(array("=\n""=20""=3D"), array("""""="), $clean));
    ?>


    Als er "boundary=" in de headers staat, is het mailtje in HTML opgemaakt en moet deze schoongemaakt worden.

    Eerst split hij 'm op "Content-Type: text/plain;". Alles wat daaronder zit moet ik hebben.
    Vervolgens split hij 'm op "Content-Type: text/html;". Alles wat doorboven zit moet ik hebben.
    Vervolgens trim ik het resultaat.

    Daarna ga ik met het for-loopje de inhoud splitten op newlines. De array geeft de inhoud, met uitzondering van de eerste 2 regels en de laatste regel terug.

    Dan implode ik de array met de inhoud die ik over wil houden.

    Als er geen "boundary=" in de headers staan, dan is het mailtje in plain text opgesteld en hoeft er niets te worden schoongemaakt.

    [ Bericht 2% gewijzigd door F4T4L_3RR0R op 29-07-2009 22:02:16 ]
    Een ballonvaarder die door de mand valt is nooit grappig...
      woensdag 29 juli 2009 @ 22:23:28 #39
    110933 F4T4L_3RR0R
    R.I.P. webicon ;(
    pi_71442759
    Toevoeging:

    Dat array_slice werkt ook voortreffelijk.

    Moest wel een kleine aanpassing doen:
    quote:
    function striphtml($trimmed) {
    return array_slice(explode("\n", $trimmed), 2, -1);
    }

    $clean = implode("\n", striphtml($trimmed));
    (-1 toegevoegd)
    Een ballonvaarder die door de mand valt is nooit grappig...
      woensdag 29 juli 2009 @ 22:52:08 #40
    110933 F4T4L_3RR0R
    R.I.P. webicon ;(
    pi_71443869
    Heb de "html parser" nu zo:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    <?php
        
    if (stripos($headers"boundary=") !== false) {

            
    $splitplain explode("Content-Type: text/plain;"$message);
            
    $splithtml explode("Content-Type: text/html;"$splitplain[1]);
            
    $trimmed trim($splithtml[0]);
            
    $slicedmail array_slice(explode("\n"$trimmed), 2, -1);
            
    $clean implode("\n"$slicedmail);

        } else {

            
    $clean $message;
        }

            
    $body trim(str_replace(array("=\n""=20""=3D"), array("""""="), $clean));
    ?>


    Een ballonvaarder die door de mand valt is nooit grappig...
    pi_71444957
    Is het niet handiger om met een van de mime classes te werken uit de PEAR repository, of zit daar geen multipart mime parser tussen?
      woensdag 29 juli 2009 @ 23:43:15 #42
    110933 F4T4L_3RR0R
    R.I.P. webicon ;(
    pi_71445581
    Geen idee, vind het zo prima werken.

    Zojuist weer een regel code minder, door $trimmed weg te laten en de trim elders toe te passen:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    <?php
        
    if (stripos($headers"boundary=") !== false) {

            
    $splitplain explode("Content-Type: text/plain;"$message);
            
    $splithtml explode("Content-Type: text/html;"$splitplain[1]);
            
    $slicedmail array_slice(explode("\n"trim($splithtml[0])), 2, -1);
            
    $clean implode("\n"$slicedmail);

        } else {

            
    $clean $message;
        }

            
    $body trim(str_replace(array("=\n""=20""=3D"), array("""""="), $clean));
    ?>
    Een ballonvaarder die door de mand valt is nooit grappig...
    pi_71448868
    quote:
    Op woensdag 29 juli 2009 18:42 schreef Roönaän het volgende:
    Wat is "gebruiker 0", zijn dat je default setting oid?
    Je moet het zien als dat er allemaal vaste gegevens zijn per top_id/nummer, als een gebruiker een van deze gegevens aanpast wil ik alle 'vaste' gegevens die niet veranderd zijn maar ook de gegevens die wel veranderd zijn. En na dit alles wil ik de veranderde gegevens met het zelfde nummer (top_id/nummer) overschrijven over de top_id/nummer van gebruiker 0, zodat deze wegvalt.

    vb:
    1
    2
    3
    4
    5
    6
    0 - 10 - 1 - 100
    1 - 10 - 1 - 101
    0 - 10 - 2 - 100
    0 - 10 - 3 - 100
    0 - 10 - 4 - 100
    1 - 10 - 4 - 99


    nu moet ik dus een query maken die het volgende uitleest. (ALLES VAN gebruiker 0 OF 1 maar 1 overschrijft data van gebruiker 0)

    1
    2
    3
    4
    1 - 10 - 1 - 101
    0 - 10 - 2 - 100
    0 - 10 - 3 - 100
    1 - 10 - 4 - 99


    hopelijk is het iets duidelijker! :D
    Just say hi!
    pi_71472726
    Ik moet voor mijn website een text (ingevuld in een form) vergelijken met woorden in een database. De database heeft best een aardige lijst met woorden en een text kan eventueel best aardig van formaat worden. Het opbreken van de tekst in losse woorden en deze 1 voor 1 afzetten tegen de database is even de enige methode die ik kan bedenken om dit te doen. Het lijkt me echter niet echt een efficiente methode. Iemand een idee hoe dit sneller/efficienter kan?
    ウプピエ 八十三 &lt;&lt; u-pu-pi-e hachi-ju-san, ik denk ik zeg het er maar ff bij :P
      donderdag 30 juli 2009 @ 22:09:07 #45
    75592 GlowMouse
    l'état, c'est moi
    pi_71472948
    SELECT count(*) FROM tbl WHERE woord IN( 'woord in tekst', 'ander woord in tekst', ..)

    Index op woord en kijken of de snelheid acceptabel is.
    eee7a201261dfdad9fdfe74277d27e68890cf0a220f41425870f2ca26e0521b0
      vrijdag 31 juli 2009 @ 01:01:50 #46
    110933 F4T4L_3RR0R
    R.I.P. webicon ;(
    pi_71478292
    Is het mogelijk om de volgende code aan meer eisen te laten voldoen?

    1
    2
    3
    <?php
    preg_match
    ('/([01]?[0-9]|2[0-4]):[0-5][0-9]/'$string$m)
    ?>


    Wat ik graag wil, is dat er een spatie voor de tijd moet staan, en een spatie of : achter de tijd moet staan. De spaties of : mogen echter niet in $m gezet worden.
    Een ballonvaarder die door de mand valt is nooit grappig...
      vrijdag 31 juli 2009 @ 01:06:31 #47
    75592 GlowMouse
    l'état, c'est moi
    pi_71478372
    eee7a201261dfdad9fdfe74277d27e68890cf0a220f41425870f2ca26e0521b0
      vrijdag 31 juli 2009 @ 01:24:15 #48
    110933 F4T4L_3RR0R
    R.I.P. webicon ;(
    pi_71478604
    quote:
    Op vrijdag 31 juli 2009 01:06 schreef GlowMouse het volgende:
    Ja hoor, dat is mogelijk. Zie http://nl3.php.net/manual/en/reference.pcre.pattern.syntax.php
    Dat is helemaal nieuw voor mij, wel even slikken.

    De verplichte spatie heb ik nu zo gedaan:

    1
    2
    3
    <?php
    preg_match
    ('/\s([01]?[0-9]|2[0-4]):[0-5][0-9]\s/'$body$m);
    ?>


    Edit: maar dan neemt hij de spaties wel mee in $m.

    Nu nog even uitzoeken hoe ik de : toe kan voegen als verplichting (als er geen spatie staat) aan het einde van de tijd.
    Een ballonvaarder die door de mand valt is nooit grappig...
      vrijdag 31 juli 2009 @ 01:37:13 #49
    75592 GlowMouse
    l'état, c'est moi
    pi_71478761
    Gebruik haakjes en kijk wat het effect is op print_r($m).
    En het is óf een spatie óf een :, en voor de of is er ook een regex meta-character.
    eee7a201261dfdad9fdfe74277d27e68890cf0a220f41425870f2ca26e0521b0
    pi_71480154
    quote:
    Op vrijdag 31 juli 2009 01:24 schreef F4T4L_3RR0R het volgende:

    [..]

    Dat is helemaal nieuw voor mij, wel even slikken.

    De verplichte spatie heb ik nu zo gedaan:
    [ code verwijderd ]

    Edit: maar dan neemt hij de spaties wel mee in $m.

    Nu nog even uitzoeken hoe ik de : toe kan voegen als verplichting (als er geen spatie staat) aan het einde van de tijd.
    Moet je even $m[1] gebruiken ipv $m[0].
      vrijdag 31 juli 2009 @ 22:02:03 #51
    74523 BaggerUser
    ModderFokker!
    pi_71502199
    Database vraagje..

    Ik heb een database met simpel gezegd

    medewerkers (500+/-)
    afdelingen (60 +/-)
    melding (stuk of 10 +/-)

    een meldingen kan voor 1 of meerdere afdeling gelden en dus ook bekeken worden via verschillende afdelingen.

    een buitenstaander kan via elke afdeling een melding zien via een medewerker (een melding is verder niet gekoppeld aan een gebruiker, alleen op het moment van bekijken wordt er een getal opgehoogd bij de medewerker.)

    Nu wil ik per dag gaan bijhouden hoe vaak een melding is bekeken door een buitenstaander gekoppeld aan de gebruiker en via welke afdeling (dus dat ik van de afgelopen 7 dagen, en als het haalbaar is van de afgelopen maand hoevaak dat is)

    nu komt de grap, zo'n melding kan soms wel 50.000 keer op een dag bekeken worden per gebruiker. Hoe krijg ik dat een beetje normaal in de database?
    De enige echte BaggerUser!
    Riemen
    fiets kopen
      vrijdag 31 juli 2009 @ 22:10:04 #52
    75592 GlowMouse
    l'état, c'est moi
    pi_71502429
    500*50.000/dag is niks, kun je mooi een tabel mee vullen. Beetje letten op je datatypes (medewerkerID unsigned smallint/2 bytes, afdelingID unsigned tinyint/1 byte, meldingID unsigned mediumint 2 bytes, dag date 3 bytes), zit je op 200 MB aan data per dag. Plus indices die erbij komen. Kan je prima een maand bijhouden.

    Of als je de tijdstippen niet interesseer, tabel aanmaken met medewerker|afdeling|melding|views, UNIQUE op de eerste drie kolommen en dan views ophogen via INSERT ... IF EXISTS UPDATE ofzo.
    eee7a201261dfdad9fdfe74277d27e68890cf0a220f41425870f2ca26e0521b0
      vrijdag 31 juli 2009 @ 22:16:07 #53
    74523 BaggerUser
    ModderFokker!
    pi_71502579
    quote:
    Op vrijdag 31 juli 2009 22:10 schreef GlowMouse het volgende:
    500*50.000/dag is niks, kun je mooi een tabel mee vullen. Beetje letten op je datatypes (medewerkerID unsigned smallint/2 bytes, afdelingID unsigned tinyint/1 byte, meldingID unsigned mediumint 2 bytes, dag date 3 bytes), zit je op 200 MB aan data per dag. Plus indices die erbij komen. Kan je prima een maand bijhouden.
    500*50.000 zou inderdaad kunnen, maar is het niet slimmer om per medewerkers (500+/-) per afdelingen (60 +/-) per melding (stuk of 10 +/-) (=maximaal 300.000 entries per dag) een teller bij te houden?

    of is het opvragen en vervolgens ophogen van deze gegevens zwaarder voor de database?
    De enige echte BaggerUser!
    Riemen
    fiets kopen
      vrijdag 31 juli 2009 @ 22:18:42 #54
    74523 BaggerUser
    ModderFokker!
    pi_71502658
    quote:
    Op vrijdag 31 juli 2009 22:10 schreef GlowMouse het volgende:
    Of als je de tijdstippen niet interesseer, tabel aanmaken met medewerker|afdeling|melding|views, UNIQUE op de eerste drie kolommen en dan views ophogen via INSERT ... IF EXISTS UPDATE ofzo.
    Dat + datum erbij dus, lijkt me het minst zwaarst voor de database
    De enige echte BaggerUser!
    Riemen
    fiets kopen
      vrijdag 31 juli 2009 @ 22:25:52 #55
    75592 GlowMouse
    l'état, c'est moi
    pi_71502872
    Oh, die 500 is per afdeling. Dan medewerker|afdeling|melding|datum|views inderdaad. Views zal wel niet meer passen in 2 bytes, 50.000 zit al dicht bij de limiet. Kom je op 11 bytes/rij.

    30.000 rijen per dag, 330 kB/dag, goed te doen om jaren bij te houden. Maar 50.000 updates voor elke 30.000 gebruikers is wel een ouch, dat zou me een grotere zorg zijn


    http://dev.mysql.com/doc/refman/5.0/en/insert-on-duplicate.html
    eee7a201261dfdad9fdfe74277d27e68890cf0a220f41425870f2ca26e0521b0
      vrijdag 31 juli 2009 @ 22:38:37 #56
    74523 BaggerUser
    ModderFokker!
    pi_71503214
    quote:
    Op vrijdag 31 juli 2009 22:25 schreef GlowMouse het volgende:
    Oh, die 500 is per afdeling. Dan medewerker|afdeling|melding|datum|views inderdaad. Views zal wel niet meer passen in 2 bytes, 50.000 zit al dicht bij de limiet. Kom je op 11 bytes/rij.

    30.000 rijen per dag, 330 kB/dag, goed te doen om jaren bij te houden. Maar 50.000 updates voor elke 30.000 gebruikers is wel een ouch, dat zou me een grotere zorg zijn


    http://dev.mysql.com/doc/refman/5.0/en/insert-on-duplicate.html
    300.000 per dag, maar nog acceptabel inderdaad. Opzich wel jammer dat het tijdstip dan niet opgeslagen wordt.. maar ik vrees dat dat een beetje teveel vreet.
    De enige echte BaggerUser!
    Riemen
    fiets kopen
      vrijdag 31 juli 2009 @ 23:46:40 #57
    74523 BaggerUser
    ModderFokker!
    pi_71505160
    Oke laatste vraag voorlopig hoop ik...

    Ik heb nu die tabel:
    1medewerker|afdeling|melding|views|datum


    nu wil ik de gegevens opvragen zodat ik een mooie grafiek kan maken.

    Nu wil ik natuurlijk bij een grafiek van een gebruiker opvragen bijvoorbeeld alle views per dag per afdeling opvragen ongeacht de melding

    het komt er dus op neer dat alle views per dag per gebruiker per afdeling per dag moet optellen... ik denk dat dit met groupby en sum() moet maar echt ver kom ik niet (op veel foutmeldingen na ) iemand die me een eindje op weg kan helpen?
    De enige echte BaggerUser!
    Riemen
    fiets kopen
      vrijdag 31 juli 2009 @ 23:50:53 #58
    75592 GlowMouse
    l'état, c'est moi
    pi_71505281
    Wat had je met GROUP BY en sum?
    eee7a201261dfdad9fdfe74277d27e68890cf0a220f41425870f2ca26e0521b0
    pi_71505954
    1
    2
    3
    4
    5
    SELECT melding_id, datum, SUM(views)
    FROM log 
    WHERE medewerker_id = '1'
    GROUP BY `datum`,`melding_id`
    ORDER BY melding_id,datum


    Krijg nu trouwens geen foutmelding meer en volgens mij klopt het nog ook (sta versteld van mezelf )

    enige jammere is dat ik nu nog alle meldingen in 1 array krijg en het niet per melding een aparte array terug krijg..
    De enige echte BaggerUser!
    Riemen
    fiets kopen
      zaterdag 1 augustus 2009 @ 00:27:46 #60
    75592 GlowMouse
    l'état, c'est moi
    pi_71506146
    Dan moet je GROUP BY en ORDER BY in dezelfde volgorde zetten, is sneller icm een index op (melding_id, datum, views) (één multicolumn index in deze volgorde dus).
    eee7a201261dfdad9fdfe74277d27e68890cf0a220f41425870f2ca26e0521b0
      zaterdag 1 augustus 2009 @ 01:14:23 #61
    65516 gieling
    Live from NYC
    pi_71507024
    Ik ben even bezig met een nieuw login systeem, maar loop tegen een klein probleempje aan en alle artikelen via google lijken uit het jaar nul te komen...

    Welke data kan je het beste in een cookie zetten om te verifiëren dat iemand ingelogd moet worden? Passwords sowieso niet maar alleen de username(+random data erachter?) lijkt me ook weer niet veilig of ligt dat aan mij?
      zaterdag 1 augustus 2009 @ 01:22:43 #62
    75592 GlowMouse
    l'état, c'est moi
    pi_71507140
    sessie-id should do it. En sessies in een db bijhouden. Zie bv. wat voor cookies wat je van FOK! krijgt.
    eee7a201261dfdad9fdfe74277d27e68890cf0a220f41425870f2ca26e0521b0
      zaterdag 1 augustus 2009 @ 01:32:23 #63
    65516 gieling
    Live from NYC
    pi_71507247
    had ik naar gekeken maar is het niet zo dat de sessieid bij elk bezoek verandert?
      zaterdag 1 augustus 2009 @ 01:37:37 #64
    75592 GlowMouse
    l'état, c'est moi
    pi_71507302
    quote:
    Op zaterdag 1 augustus 2009 01:32 schreef gieling het volgende:
    had ik naar gekeken maar is het niet zo dat de sessieid bij elk bezoek verandert?
    Als je PHP's eigen sessiesysteem gebruikt wel ja.
    eee7a201261dfdad9fdfe74277d27e68890cf0a220f41425870f2ca26e0521b0
      zaterdag 1 augustus 2009 @ 01:45:34 #65
    65516 gieling
    Live from NYC
    pi_71507387
    maar mijn theorie was dan dat bij een volgend bezoek $_COOKIE["session"]!=$result["session"] of maak ik hier een denkfout?
      zaterdag 1 augustus 2009 @ 01:46:49 #66
    75592 GlowMouse
    l'état, c'est moi
    pi_71507404
    Ligt er net aan hoe je alles instelt en wat $result is enzo. Op FOK! geldt gelukkig wel een gelijkheid.
    eee7a201261dfdad9fdfe74277d27e68890cf0a220f41425870f2ca26e0521b0
      zaterdag 1 augustus 2009 @ 01:55:17 #67
    65516 gieling
    Live from NYC
    pi_71507498
    $result zou dan de query zijn waar hij de cookie & sessie-id checkt in de database. Als daar een positief result uit zou komen zou je de sessies moeten zetten neem ik aan.

    Oh maar wacht.. het sessid in de database is ook die van de vorige keer, dus zou overeen moeten komen met die in de cookie, toch?

    Maar moet je je cookie dan elke keer updaten bij elke sessie?
      zaterdag 1 augustus 2009 @ 11:02:25 #68
    75592 GlowMouse
    l'état, c'est moi
    pi_71510490
    cookies kun je een lifetime meegeven, dan hoef je hem maar 1x in te stellen.
    eee7a201261dfdad9fdfe74277d27e68890cf0a220f41425870f2ca26e0521b0
    pi_71514883
    Haai, ik ben inmiddels een stuk verder met mijn scriptjes, echter stuit ik op een nieuw probleem.

    Ik heb een multilevel array aangemaakt
    1$result = array(1 => array(), 2 => array(), 3 => array());


    Vervolgens wordt in een loop naar dit multi array weggeschreven, echter is het afhankelijk van de input op welke plaatsen er wordt weggeschreven.

    Met mijn huidige code krijg ik deze foutmelding:
    Undefined offset

    Wat er op neerkomt dat de waarde nog niet geset is. Echter is het voor mij niet handig om bovenstaand array al tot in het oneindige te vullen met de waarde 0. Hoe valt om dit probleem heen te werken?

    [edit]
    Hmm, na nog veel langer gezocht te hebben het antwoord gevonden: gebruik maken van de isSet functie.
    [/edit]

    [ Bericht 6% gewijzigd door uppie83 op 01-08-2009 14:44:50 ]
    ウプピエ 八十三 &lt;&lt; u-pu-pi-e hachi-ju-san, ik denk ik zeg het er maar ff bij :P
    pi_71516590
    quote:
    Op vrijdag 31 juli 2009 22:02 schreef BaggerUser het volgende:
    Database vraagje..

    Ik heb een database met simpel gezegd

    medewerkers (500+/-)
    afdelingen (60 +/-)
    melding (stuk of 10 +/-)

    een meldingen kan voor 1 of meerdere afdeling gelden en dus ook bekeken worden via verschillende afdelingen.

    een buitenstaander kan via elke afdeling een melding zien via een medewerker (een melding is verder niet gekoppeld aan een gebruiker, alleen op het moment van bekijken wordt er een getal opgehoogd bij de medewerker.)

    Nu wil ik per dag gaan bijhouden hoe vaak een melding is bekeken door een buitenstaander gekoppeld aan de gebruiker en via welke afdeling (dus dat ik van de afgelopen 7 dagen, en als het haalbaar is van de afgelopen maand hoevaak dat is)

    nu komt de grap, zo'n melding kan soms wel 50.000 keer op een dag bekeken worden per gebruiker. Hoe krijg ik dat een beetje normaal in de database?
    Als je die waarden alleen gebruikt voor marketing informatie: Niet. Gewoon je statistieken programma voor gebruiken.
    pi_71526696
    Hmm om een of andere vage reden werkt mijn 'strcasecmp' niet :?

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    <?php
    function compare($string$filename){
      
    $stringArray explode(" ",$string); // Array with loose words of the string

      
    $fileArray file($filename);
      
    printArray($stringArray);
      
    printArray($fileArray);
      for(
    $index=0;$index<sizeof($stringArray);$index++){
        for(
    $counter=0;$counter<sizeof($fileArray);$counter++){
          echo 
    "index: $index en counter: $counter <br>";
          echo 
    "$stringArray[$index] => $fileArray[$counter] <br>";
          
    $compare strcasecmp($stringArray[$index],$fileArray[$counter]);
          echo 
    "$compare <br>";
          if(
    strcasecmp($stringArray[$index],$fileArray[$counter])==0){
            echo 
    "match!!! <br>";
          }
        }
      }
    }

    compare('hallo dit is een test''F:\\XXX\\UsbWebserver\\Root\\YYY\\ZZZ\\woorden.txt');
    ?>

    Dit geeft de volgende output:

    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
    0 => hallo
    1 => dit
    2 => is
    3 => een
    4 => test
    0 => hallo
    1 => test
    index: 0 en counter: 0
    hallo => hallo
    -2
    index: 0 en counter: 1
    hallo => test
    -12
    index: 1 en counter: 0
    dit => hallo
    -4
    index: 1 en counter: 1
    dit => test
    -16
    index: 2 en counter: 0
    is => hallo
    1
    index: 2 en counter: 1
    is => test
    -11
    index: 3 en counter: 0
    een => hallo
    -3
    index: 3 en counter: 1
    een => test
    -15
    index: 4 en counter: 0
    test => hallo
    12
    index: 4 en counter: 1
    test => test
    0
    match!!! 


    Kortom hallo en hallo zijn niet hetzelfde |:(
    ウプピエ 八十三 &lt;&lt; u-pu-pi-e hachi-ju-san, ik denk ik zeg het er maar ff bij :P
    pi_71526795
    Dit komt omdat file() de newlines bewaard. Je zou een array_map met trim kunnen proberen.
    pi_71527410
    quote:
    Op zaterdag 1 augustus 2009 23:15 schreef Roönaän het volgende:
    Dit komt omdat file() de newlines bewaard. Je zou een array_map met trim kunnen proberen.
    Bedankt, dat werkt idd.

    [edit]
    Inmiddels heeft zich het volgende probleem aangediend. Ik probeer een multilevel array te sorteren op key value, waarbij key - value behouden blijft. Hiervoor heb ik deze functie:

    1
    2
    3
    4
    5
    6
    7
    8
    <?php
    function sortArray(&$array){
      
    ksort($array);
      foreach(
    array_keys($array) as $i){
        
    sortArray($array[$i]);
      }
    }
    ?>


    En uiteindelijk doet dit de truc wel. Ik krijg er echter een shitload aan foutmeldingen bij.

    [ Bericht 69% gewijzigd door uppie83 op 02-08-2009 01:22:31 ]
    ウプピエ 八十三 &lt;&lt; u-pu-pi-e hachi-ju-san, ik denk ik zeg het er maar ff bij :P
    pi_71531350
    quote:
    Op zaterdag 1 augustus 2009 23:42 schreef uppie83 het volgende:

    En uiteindelijk doet dit de truc wel. Ik krijg er echter een shitload aan foutmeldingen bij.
    Helaas, m'n glazen bol is stuk.
    pi_71538385
    Wat dacht je van iets als:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    <?php
    function sortArray(&$array){
      if(!
    is_array($array)) {
         return;
      }
      
    ksort($array);
      foreach(
    array_keys($array) as $i){
        
    sortArray($array[$i]);
      }
    }
    ?>
      zondag 2 augustus 2009 @ 17:33:40 #76
    75592 GlowMouse
    l'état, c'est moi
    pi_71542594
    array_map!
    eee7a201261dfdad9fdfe74277d27e68890cf0a220f41425870f2ca26e0521b0
    pi_71543309
    Roonaan: ben jij geen ZCE meer, of staat het gewoon niet meer in je sig?

    Heeft dat nou in de praktijk meerwaarde?
    Ik heb het wel eens overwogen, maar ik heb nog nooit een klant gehad die er naar vroeg zeg maar...
    pi_71548630
    quote:
    Op zondag 2 augustus 2009 17:57 schreef Xcalibur het volgende:
    Roonaan: ben jij geen ZCE meer, of staat het gewoon niet meer in je sig?

    Heeft dat nou in de praktijk meerwaarde?
    Ik heb het wel eens overwogen, maar ik heb nog nooit een klant gehad die er naar vroeg zeg maar...
    Voor freelance is ZCE misschien nog enigszins relevant. In mijn werk stukken minder. Hoef me ook niet meer zo nodig als zodanig te positioneren. Werk genoeg.
    pi_71550904
    Enigszins relevant klinkt ook niet als een vereiste
    pi_71551041
    quote:
    Op zondag 2 augustus 2009 22:42 schreef Xcalibur het volgende:
    Enigszins relevant klinkt ook niet als een vereiste
    Er zijn veel mensen die zoiets hebben van "ZCE " "Zend "
      maandag 3 augustus 2009 @ 03:38:13 #81
    110933 F4T4L_3RR0R
    R.I.P. webicon ;(
    pi_71555584
    Even een stomme vraag:

    Ik wil eenl PHP scriptje op een thuisserver draaien. Daarvoor heb ik Apache en PHP geïnstalleerd. Moet ik ook MySQL installeren? Ik ga geen gebruik maken van databases, maar zag wel allemaal SQL verwijzingen in de php.ini.
    Een ballonvaarder die door de mand valt is nooit grappig...
      maandag 3 augustus 2009 @ 04:07:11 #82
    111382 Ofyles2
    Bestemming: onbekend
    pi_71555624
    quote:
    Op maandag 3 augustus 2009 03:38 schreef F4T4L_3RR0R het volgende:
    Even een stomme vraag:

    Ik wil eenl PHP scriptje op een thuisserver draaien. Daarvoor heb ik Apache en PHP geïnstalleerd. Moet ik ook MySQL installeren? Ik ga geen gebruik maken van databases, maar zag wel allemaal SQL verwijzingen in de php.ini.
    Niet alleen Apache installeren, XAMPP installeren.

    Overigens moet je voor MySQL de root wel beveiligen met een wachtwoord (veiligheidshalve).
    pi_71555751
    quote:
    Op maandag 3 augustus 2009 03:38 schreef F4T4L_3RR0R het volgende:
    Even een stomme vraag:

    Ik wil eenl PHP scriptje op een thuisserver draaien. Daarvoor heb ik Apache en PHP geïnstalleerd. Moet ik ook MySQL installeren? Ik ga geen gebruik maken van databases, maar zag wel allemaal SQL verwijzingen in de php.ini.
    Nope, je hoeft geen mysql, (dus ook geen xampp) te draaien als je geen db nodig hebt.

    De php.ini bevat voor heel veel extensies standaard instellingen, deze worden echter pas gebruikt als de juiste extension/zend_extension aan staat. Daarnaast is het prima mogelijk dat je php de mysql module aan heeft staan, zonder dat je mysql hebt geïnstalleerd. Voor hetzelfde geld heb je mysql op een andere machine staan, en dan zou het wat lullig zijn als je mysql alleen lokaal zou kunnen gebruiken.
    pi_71556580
    quote:
    Op maandag 3 augustus 2009 04:07 schreef Ofyles2 het volgende:

    [..]

    Niet alleen Apache installeren, XAMPP installeren.

    Overigens moet je voor MySQL de root wel beveiligen met een wachtwoord (veiligheidshalve).
    Ja, het is EEN antwoord.... maar om nou te zeggen dat dit een antwoord op de gestelde vraag is... neuh
    Verder wat Roonaan zegt
    pi_71605298
    quote:
    Op zondag 2 augustus 2009 09:37 schreef Light het volgende:

    [..]

    Helaas, m'n glazen bol is stuk.
    Hmm sorry, ik had het vermoeden dat mensen op jullie niveau de fout al uit de code zouden herkennen ;)

    Anyway, dit is de output wanneer ik de volgende code gebruik

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    <?php
    function sortArray(&$array){
      
    ksort($array);
      foreach(
    array_keys($array) as $i){
        
    sortArray($array[$i]);
      }
    }

    $test analyzeString('blablablablabla');
    printArray($test);
    sortArray($test);
    printArray($test);
    ?>


    waarbij analyzeString de functie is die een multi-array uitspuugt zoals uit de eerste printArray blijkt. Dit stukje code begint met mijn regel 113.

    Output
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    1 =>
    1 => 111
    2 => 11
    2 =>
    1 => 80
    2 => 57
    4 => 3
    3 => 10
    3 =>
    1 => 10
    3 => 2

    Warning: ksort() expects parameter 1 to be array, integer given in F:\XXX\UsbWebserver\Root\YYY\ZZZ\textanalyzer.php on line 114

    Warning: array_keys() [function.array-keys]: The first argument should be an array in F:\XXX\UsbWebserver\Root\YYY\ZZZ\textanalyzer.php on line 115

    Warning: Invalid argument supplied for foreach() in F:\XXX\UsbWebserver\Root\YYY\ZZZ\textanalyzer.php on line 115

    Warning: ksort() expects parameter 1 to be array, integer given in F:\XXX\UsbWebserver\Root\YYY\ZZZ\textanalyzer.php on line 114

    Warning: array_keys() [function.array-keys]: The first argument should be an array in F:\XXX\UsbWebserver\Root\YYY\ZZZ\textanalyzer.php on line 115

    Warning: Invalid argument supplied for foreach() in F:\XXX\UsbWebserver\Root\YYY\ZZZ\textanalyzer.php on line 115

    Warning: ksort() expects parameter 1 to be array, integer given in F:\XXX\UsbWebserver\Root\YYY\ZZZ\textanalyzer.php on line 114

    Warning: array_keys() [function.array-keys]: The first argument should be an array in F:\XXX\UsbWebserver\Root\YYY\ZZZ\textanalyzer.php on line 115

    Warning: Invalid argument supplied for foreach() in F:\XXX\UsbWebserver\Root\YYY\ZZZ\textanalyzer.php on line 115

    Warning: ksort() expects parameter 1 to be array, integer given in F:\XXX\UsbWebserver\Root\YYY\ZZZ\textanalyzer.php on line 114

    Warning: array_keys() [function.array-keys]: The first argument should be an array in F:\XXX\UsbWebserver\Root\YYY\ZZZ\textanalyzer.php on line 115

    Warning: Invalid argument supplied for foreach() in F:\XXX\UsbWebserver\Root\YYY\ZZZ\textanalyzer.php on line 115

    Warning: ksort() expects parameter 1 to be array, integer given in F:\XXX\UsbWebserver\Root\YYY\ZZZ\textanalyzer.php on line 114

    Warning: array_keys() [function.array-keys]: The first argument should be an array in F:\XXX\UsbWebserver\Root\YYY\ZZZ\textanalyzer.php on line 115

    Warning: Invalid argument supplied for foreach() in F:\XXX\UsbWebserver\Root\YYY\ZZZ\textanalyzer.php on line 115

    Warning: ksort() expects parameter 1 to be array, integer given in F:\XXX\UsbWebserver\Root\YYY\ZZZ\textanalyzer.php on line 114

    Warning: array_keys() [function.array-keys]: The first argument should be an array in F:\XXX\UsbWebserver\Root\YYY\ZZZ\textanalyzer.php on line 115

    Warning: Invalid argument supplied for foreach() in F:\XXX\UsbWebserver\Root\YYY\ZZZ\textanalyzer.php on line 115

    Warning: ksort() expects parameter 1 to be array, integer given in F:\XXX\UsbWebserver\Root\YYY\ZZZ\textanalyzer.php on line 114

    Warning: array_keys() [function.array-keys]: The first argument should be an array in F:\XXX\UsbWebserver\Root\YYY\ZZZ\textanalyzer.php on line 115

    Warning: Invalid argument supplied for foreach() in F:\XXX\UsbWebserver\Root\YYY\ZZZ\textanalyzer.php on line 115

    Warning: ksort() expects parameter 1 to be array, integer given in F:\XXX\UsbWebserver\Root\YYY\ZZZ\textanalyzer.php on line 114

    Warning: array_keys() [function.array-keys]: The first argument should be an array in F:\XXX\UsbWebserver\Root\YYY\ZZZ\textanalyzer.php on line 115

    Warning: Invalid argument supplied for foreach() in F:\XXX\UsbWebserver\Root\YYY\ZZZ\textanalyzer.php on line 115
    1 =>
    1 => 111
    2 => 11
    2 =>
    1 => 80
    2 => 57
    3 => 10
    4 => 3
    3 =>
    1 => 10
    3 => 2 
    ウプピエ 八十三 &lt;&lt; u-pu-pi-e hachi-ju-san, ik denk ik zeg het er maar ff bij :P
    pi_71605781
    quote:
    Op dinsdag 4 augustus 2009 20:58 schreef uppie83 het volgende:

    [..]

    Hmm sorry, ik had het vermoeden dat mensen op jullie niveau de fout al uit de code zouden herkennen
    En ik had gehoopt/verwacht dat die uitvoer je in ieder geval in een richting zou helpen.

    De eerste keer gaat het sorteren wel goed, het gaat pas mis als je op een dieper niveau gaat sorteren. Dan krijg je namelijk een moment waarop ksort() en array_keys() een array verwachten maar niet krijgen. En dat levert die foutmeldingen op.

    Je krijgt de foutmelding acht keer. Dat komt precies overeen met het aantal waarden op het diepste niveau (111, 11, 80, 57, 10, 3, 10, 2).

    Roonaan heeft al een oplossing gegeven.
    pi_71605989
    quote:
    Op dinsdag 4 augustus 2009 21:15 schreef Light het volgende:

    [..]

    En ik had gehoopt/verwacht dat die uitvoer je in ieder geval in een richting zou helpen.
    Nee, ik snapte er geen hout van, want ik stopte er een array in, en de foutmelding was dat er een array in moest.
    quote:
    Roonaan heeft al een oplossing gegeven.
    Oh, dat werkt wel , ik snap alleen niet waarom dit wel werkt...
    Het enige extra is dat er nu een check op zit of het wel een array is, terwijl ik zelf al 100% zeker was dat het een array was.
    ウプピエ 八十三 &lt;&lt; u-pu-pi-e hachi-ju-san, ik denk ik zeg het er maar ff bij :P
    pi_71606753
    quote:
    Op dinsdag 4 augustus 2009 21:21 schreef uppie83 het volgende:

    [..]

    Nee, ik snapte er geen hout van, want ik stopte er een array in, en de foutmelding was dat er een array in moest.
    [..]

    Oh, dat werkt wel *O* , ik snap alleen niet waarom dit wel werkt... -O-
    Het enige extra is dat er nu een check op zit of het wel een array is, terwijl ik zelf al 100% zeker was dat het een array was.
    Je hebt een array in een array:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    <?php
    array(
      
    => array(
        
    => 111,
        
    => 11
      
    ),
      
    => array(
        
    => 80,
        
    => 57
      
    )
    );
    ?>


    De eerste keer dat je de functie sortArray() aanroept, geef je die array mee. In de functie sortArray() sorteer je de array en daarna wil je de onderliggende arrays ook sorteren. Met de foreach() doorloop je de array die je hebt meegegeven, en voor iedere waarde roep je weer de functie sortArray() aan.

    Bij de tweede aanroep heb je dan
    1
    2
    3
    <?php
    array(=> 111=> 11);
    ?>


    Op die array haal je weer hetzelfde trucje uit voor het sorteren.
    En daarna gaat het mis, je roept dan sortArray() aan met alleen de waarde 111. Dat is geen array.
    pi_71606954
    Waarom voel ik me nu zo stom
    ウプピエ 八十三 &lt;&lt; u-pu-pi-e hachi-ju-san, ik denk ik zeg het er maar ff bij :P
      woensdag 5 augustus 2009 @ 20:00:48 #90
    85919 Likkende_Lassie
    Doe eens wat aan je ondertitel
    pi_71631683
    Ok ik wordt echt gek, vandaag 8+ uur bezig geweest met een tellertje:

    Ik heb een mysql tabel welke er als volgt uitziet:

    pair_profile_words_register_test
    1
    2
    3
    4
    register_ID = id van bedrijf
    word_ID = een gekoppeld woord aan dit bedrijf
    source_company_word_ID = een ander woord
    source_branche_ID = het ID van de branche van de koppeling.


    Met de bovenstaande tabel kan ik aantal koppelingen maken.
    Nu wil ik echter het volgende weten ( meer dan 3.000.000 records):

    Hoeveel (unieke) register_ID's (uniek!) bevinden zich in deze tabel, maar deze zal ik moeten zoeken in combinatie met de overige kolommen.
    Echter, deze kolommen bevatten ook weer dubbele nummers....


    weet niet of dit verhaal een beetje duidelijk is?
      woensdag 5 augustus 2009 @ 20:02:49 #91
    75592 GlowMouse
    l'état, c'est moi
    pi_71631744
    DISTINCT en WHERE al geprobeerd?
    eee7a201261dfdad9fdfe74277d27e68890cf0a220f41425870f2ca26e0521b0
      woensdag 5 augustus 2009 @ 20:14:30 #92
    85919 Likkende_Lassie
    Doe eens wat aan je ondertitel
    pi_71632091
    quote:
    Op woensdag 5 augustus 2009 20:02 schreef GlowMouse het volgende:
    DISTINCT en WHERE al geprobeerd?
    Nee, DISTINCT niet, maar daarmee 'verlies' ik toch ook data?
    Kijk het volgende zou mogelijk moeten zijn

    source_company_word_ID = 50

    Nu wil ik weten hoeveel register_ID's hierin voorkomen, echter komt het volgende ook voor in de tabel:

    register_ID word_ID
    10 30
    10 35
    11 35
    12 30

    Probleem met GROUP BY is dat ik dan een flink aantal register_ID's zal gaan missen....
      woensdag 5 augustus 2009 @ 20:17:59 #93
    75592 GlowMouse
    l'état, c'est moi
    pi_71632178
    COUNT kun je combineren met DISTINCT Je telt dan unieke waarden.
    eee7a201261dfdad9fdfe74277d27e68890cf0a220f41425870f2ca26e0521b0
      woensdag 5 augustus 2009 @ 20:19:47 #94
    85919 Likkende_Lassie
    Doe eens wat aan je ondertitel
    pi_71632221
    Zou dat dus in 1 query kunnen? Ik ga even wat proberen! thanks! Laat over een paar min wat van me horen!
      woensdag 5 augustus 2009 @ 20:40:57 #95
    85919 Likkende_Lassie
    Doe eens wat aan je ondertitel
    pi_71632729
    $Q = mysql_query("SELECT DISTINCT COUNT(register_ID) AS totaal_bedrijven FROM pair_profile_words_register WHERE source_word_ID = 27561 GROUP BY word_ID") or print_r(mysql_error());

    en hier krijg ik 212 uit, wat boven de 800 zou moeten zijn...doe ik iets fout?
      woensdag 5 augustus 2009 @ 20:43:52 #96
    75592 GlowMouse
    l'état, c'est moi
    pi_71632801
    Zoek eens op waarvoor GROUP BY voor is. En bedenk wat DISTINCT hier doet; zie bv. het verschil als je hem weglaat.
    eee7a201261dfdad9fdfe74277d27e68890cf0a220f41425870f2ca26e0521b0
      woensdag 5 augustus 2009 @ 21:10:31 #97
    85919 Likkende_Lassie
    Doe eens wat aan je ondertitel
    pi_71633507
    Ik weet wat group by doet, het probleem is nu dus dat hij teveel regels wegfiltert....
      woensdag 5 augustus 2009 @ 21:12:13 #98
    75592 GlowMouse
    l'état, c'est moi
    pi_71633557
    Filteren doe je niet met GROUP BY.
    eee7a201261dfdad9fdfe74277d27e68890cf0a220f41425870f2ca26e0521b0
    pi_71633558
    count + left join + group by oid?
      woensdag 5 augustus 2009 @ 21:31:10 #100
    75592 GlowMouse
    l'état, c'est moi
    pi_71634210
    quote:
    Op woensdag 5 augustus 2009 21:12 schreef Roönaän het volgende:
    count + left join + group by oid?
    Het begint bij een duidelijker vraagstelling Maar LEFT JOIN zal er wel niet bij hoeven omdat ik maar één tabel zie.
    eee7a201261dfdad9fdfe74277d27e68890cf0a220f41425870f2ca26e0521b0
      woensdag 5 augustus 2009 @ 22:26:15 #101
    85919 Likkende_Lassie
    Doe eens wat aan je ondertitel
    pi_71635927
    Sorry voor de vage vraag idd....probleem ondertussen gevonden

    Ik was vergeten een primarykey te zetten op een aantal velden, en had geen mysql_error() op de invoer gezet.
    Wat bleek, het totaal klopte dus wel...

    Onderstaande werkt:

    SELECT DISTINCT COUNT(register_ID) AS totaal_bedrijven FROM pair_profile_words_register WHERE source_word_ID = 27561 GROUP BY word_ID

    Maar als ik DISTINCT weghaal, werkt het ook. Heeft het nut?
      woensdag 5 augustus 2009 @ 22:49:57 #102
    75592 GlowMouse
    l'état, c'est moi
    pi_71636601
    Probeer dit eens

    SELECT word_ID,COUNT(register_ID) AS totaal_bedrijven FROM pair_profile_words_register WHERE source_word_ID = 27561 GROUP BY word_ID

    Dan weet je ook wat je telt.
    eee7a201261dfdad9fdfe74277d27e68890cf0a220f41425870f2ca26e0521b0
      donderdag 6 augustus 2009 @ 10:41:25 #103
    137690 Pizzahut
    Het Bora Bora Gebergte
    pi_71645366
    Vraagje.
    Ik wil op een website, mijn website bijv. een twitter feed hebben met alleen een bepaalde zoekterm.
    Bijvoorbeeld PHP. Dus op mijn website komen dan alleen twitter berichten te staan met php.
    Nu doe ik dit momenteel met file_get_contents() en zet ik alles dat ik niet gebruik uit in mijn css. Dit is heel omslachtig, is het mogelijk om informatie te filteren? dus dat ik puur alleen de berichten ophaal en weergeef?

    Misschien is het wel anders te doen, ik wil bijv. ook twitterberichten weer geven van mensen uit een bepaalde streek of woonplaats. Dus alleen twitterberichten uit Hilversum ofzo. Is dit ook mogelijk?

    Ik hoop dat iemand mij kan helpen.
    Disturbed Mind
    Het leven: Soms ben je de duif, soms het standbeeld.
    pi_71645934
    Linkje van de feed?
      donderdag 6 augustus 2009 @ 11:06:13 #105
    137690 Pizzahut
    Het Bora Bora Gebergte
    pi_71646033
    quote:
    Op donderdag 6 augustus 2009 11:02 schreef Darkomen het volgende:
    Linkje van de feed?
    http://search.twitter.com/search?q=Naarden
    Disturbed Mind
    Het leven: Soms ben je de duif, soms het standbeeld.
      donderdag 6 augustus 2009 @ 11:30:42 #107
    137690 Pizzahut
    Het Bora Bora Gebergte
    pi_71646752
    quote:
    Dan pakt hij alleen berichten waar zowel hilversum als php in voor komen

    Heb het nu via cUrl gedaan volgens de wiki api van twitter, alleen krijg ik dan alleen puur tekst, wat de bedoeling ook is.
    Echter, krijg ik geen opmaak. hoe kan ik dat doen?
    code:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    <?php
    //Create the connection handle
    $curl_conn curl_init();

    //Set up the URL to query Twitter
    $user_followers "https://twitter.com/statuses/followers/username.xml";

    //Set cURL options
    curl_setopt($curl_connCURLOPT_URL$user_followers); //URL to connect to
    curl_setopt($curl_connCURLOPT_GET1); //Use GET method
    curl_setopt($curl_connCURLOPT_HTTPAUTHCURLAUTH_BASIC); //Use basic authentication
    curl_setopt($curl_connCURLOPT_USERPWD'username:password'); //Set u/p
    curl_setopt($curl_connCURLOPT_SSL_VERIFYPEERfalse); //Do not check SSL certificate (but use SSL of course), live dangerously!
    curl_setopt($curl_connCURLOPT_RETURNTRANSFER1); //Return the result as string

    // Result from querying URL. Will parse as xml
    $output curl_exec($curl_conn);

    // close cURL resource. It's like shutting down the water when you're brushing your teeth.
    curl_close($curl_conn);

    echo 
    $output;
    ?>


    Edit:
    Goed voorbeeld gevonden, ik wil dit: http://www.bnerslive.nl/
    maar dan alleen van bijvoorbeeld tweets uit Hilversum.
    Ik kan dus hetzelfde doen en een account aanmaken en de mensen volgen die uit die streek komen. Alleen heb ik en nu alleen MIJN followers en hij maakt een xml aan waar ik geen lay-out van kan maken.

    Link: http://www.puddingbroodje.nl/test/twitter2.php

    [ Bericht 38% gewijzigd door Pizzahut op 06-08-2009 11:44:57 ]
    Disturbed Mind
    Het leven: Soms ben je de duif, soms het standbeeld.
    pi_71646966
    In de MySQL client voer ik wel een queries uit die ontzettend veel output hebben (Omdat ik weer eens LIMIT oid ben vergeten).

    Is er een manier om die op te laten houden, zonder dat de client word afgesloten. (Omdat ik dan mijn query weer opnieuw moet bedenken )
      donderdag 6 augustus 2009 @ 12:08:44 #109
    75592 GlowMouse
    l'état, c'est moi
    pi_71647824
    quote:
    Op donderdag 6 augustus 2009 11:37 schreef Keiichi het volgende:
    In de MySQL client voer ik wel een queries uit die ontzettend veel output hebben (Omdat ik weer eens LIMIT oid ben vergeten).

    Is er een manier om die op te laten houden, zonder dat de client word afgesloten. (Omdat ik dan mijn query weer opnieuw moet bedenken )
    http://dev.mysql.com/doc/refman/5.0/en/kill.html
    Goed lezen: met de verkeerde ben je ook je connectie kwijt. Maar zelfs dan als je de client opnieuw start, kun je met pijltje omhoog je query toch gewoon terugkrijgen? Bij de standaard client in een linux shell lukt dat wel dacht ik.
    eee7a201261dfdad9fdfe74277d27e68890cf0a220f41425870f2ca26e0521b0
    pi_71647874
    quote:
    Op donderdag 6 augustus 2009 12:08 schreef GlowMouse het volgende:

    [..]

    http://dev.mysql.com/doc/refman/5.0/en/kill.html
    Goed lezen: met de verkeerde ben je ook je connectie kwijt. Maar zelfs dan als je de client opnieuw start, kun je met pijltje omhoog je query toch gewoon terugkrijgen? Bij de standaard client in een linux shell lukt dat wel dacht ik.
    Ik vraag me af wanneer ik dat dan als laatst geprobeerd heb.
    pi_71679656
    Zou iemand eens naar mijn beginnetje willen kijken van mijn MVC model? Deze is te vinden op http://www.bruggema.nl/download/mijnmvc.zip (8kb)

    Zelf denk ik dat ik wel goed bezig ben maar mis toch het een en ander (ben ik bang voor).

    Source graag met respect behandelen (tis van mij )

    Ik dank jullie voor jullie interesse en tijd!
    Just say hi!
      vrijdag 7 augustus 2009 @ 13:19:30 #112
    75592 GlowMouse
    l'état, c'est moi
    pi_71679937
    Zoek eens op wat phps voor extensie is, volgens mij wil je die niet gebruiken.

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <?php
                
    /*
                 controlleer of de bestanden bestaan die minimaal benodigd zijn om het systeem te draaien
                */
                
                
    if (!$this->checkFiles())
                {
                    throw new 
    Exception('Site mist besturings bestanden, site stopt');
                }
    ?>

    Ik zie veel te veel overbodig commentaar, waarvan dit een voorbeeld inlusief typo is.

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <?php
                    $path 
    '';
                    
    $last '';
                    for (
    $i 0$i $x$i++)
                    {
                        
    // creer path
                        
    $path .= "/" $this->urlSegments[$i];
                        
    $last $this->urlSegments[$i];
                    }
    ?>

    Valt daar niks te doen met array_slice en implode?
    eee7a201261dfdad9fdfe74277d27e68890cf0a220f41425870f2ca26e0521b0
      vrijdag 7 augustus 2009 @ 13:23:22 #113
    84244 Scorpie
    Abject en infaam!
    pi_71680057
    Chandler:

    [php]
    if (!$this->checkFiles())
    {
    throw new Exception('Site mist besturings bestanden, site stopt');
    }
    [/ph]

    Dit is eeuwig zonde, je gooit nu wel een error maar je logt die error nergens! Maak een errorlogger class aan die dit soort fouten logt en dan een foutmelding geeft op het scherm, zo heb je ten allen tijde een logfile waarin je terug kan kijken!
    Op dinsdag 13 augustus schreef Xa1pt:
    Neuh, fraude mag best aangepakt worden. Maar dat het de maatschappij meer oplevert of beter is voor de samenleving, is nog maar de vraag.
    Op donderdag 25 juni 2015 schreef KoosVogels:
    Klopt. Ik ben een racist.
    pi_71680314
    @GlowMouse; phps wilde ik gebruiken om het online zichtbaar te maken, maar besloot het toch maar in een zipje te zetten.

    Zal gelijk even kijken naar array slice


    @Scorpie; klopt, in deze valt ook niet echt iets te loggen hé? als de bestanden van de site er al niet zijn hoef ik ook niets te loggen, nadat de opzet goed is wil ik idd een nette error logger schrijven die eventueel de fouten emailt / opslaat oid.

    Maar nu zit ik met een vraag; ik wil dus bestanden includen zoals models/error/error.php echter kan ik dan niet bij de aangemaakte classes oid? zie foutmelding jals je het script draait
    Just say hi!
      vrijdag 7 augustus 2009 @ 13:34:53 #115
    84244 Scorpie
    Abject en infaam!
    pi_71680406
    quote:
    Op vrijdag 7 augustus 2009 13:31 schreef Chandler het volgende:
    @Scorpie; klopt, in deze valt ook niet echt iets te loggen hé? als de bestanden van de site er al niet zijn hoef ik ook niets te loggen, nadat de opzet goed is wil ik idd een nette error logger schrijven die eventueel de fouten emailt / opslaat oid.
    Juist wel, stel dat je volgend jaar een keer een melding krijgt van een klant dat de website het niet doet, dan wil je dus wel terug kunnen zien wanneer dat was, welk bestand het mis ging etc etc.
    quote:
    Maar nu zit ik met een vraag; ik wil dus bestanden includen zoals models/error/error.php echter kan ik dan niet bij de aangemaakte classes oid? zie foutmelding jals je het script draait
    Ik zit nu op mijn werk, kan pas vanavond ernaar kijken helaas
    Op dinsdag 13 augustus schreef Xa1pt:
    Neuh, fraude mag best aangepakt worden. Maar dat het de maatschappij meer oplevert of beter is voor de samenleving, is nog maar de vraag.
    Op donderdag 25 juni 2015 schreef KoosVogels:
    Klopt. Ik ben een racist.
    pi_71682123
    Ik heb alle tijd, zal eens kijken hoe andere mensen hun error classes schrijven
    Just say hi!
      vrijdag 7 augustus 2009 @ 14:32:57 #117
    84244 Scorpie
    Abject en infaam!
    pi_71682395
    quote:
    Op vrijdag 7 augustus 2009 14:23 schreef Chandler het volgende:
    Ik heb alle tijd, zal eens kijken hoe andere mensen hun error classes schrijven
    BTW, let even op. Exceptions gooien in PHP is een 'dure' aangelegenheid:

    http://www.justskins.com/(...)s-question-2707.html

    http://i-novice.com/php-exceptions-part-1/
    Op dinsdag 13 augustus schreef Xa1pt:
    Neuh, fraude mag best aangepakt worden. Maar dat het de maatschappij meer oplevert of beter is voor de samenleving, is nog maar de vraag.
    Op donderdag 25 juni 2015 schreef KoosVogels:
    Klopt. Ik ben een racist.
    pi_71685134
    Ik ben voor het eerst met classes bezig [ímg]http://i.fokzine.net/s/redface.gif[/ímg] en heb 2 classes 'datyabase' en 'script'

    beide include ik in een file, pagina.php

    Ik start de db class;
    $db = new Connect_database();

    start het script
    $script = new Script();
    Voer een functie uit,
    $script->haaluitdb();

    Maar hoe kan de functie 'haaluitdb' een functie uit de class 'db' aanroepen?
    $db->Query(); werkt niet.

    En hoe als ik 3 classes hebben die allemaal de $db class willen gebruiken?
      vrijdag 7 augustus 2009 @ 16:06:24 #119
    84244 Scorpie
    Abject en infaam!
    pi_71685237
    quote:
    Op vrijdag 7 augustus 2009 16:03 schreef Darkomen het volgende:
    Ik ben voor het eerst met classes bezig [ímg]http://i.fokzine.net/s/redface.gif[/ímg] en heb 2 classes 'datyabase' en 'script'

    beide include ik in een file, pagina.php

    Ik start de db class;
    $db = new Connect_database();

    start het script
    $script = new Script();
    Voer een functie uit,
    $script->haaluitdb();

    Maar hoe kan de functie 'haaluitdb' een functie uit de class 'db' aanroepen?
    $db->Query(); werkt niet.
    Met globals gaan werken.

    global $db;
    $script->haaluitdb();
    $db->query();

    http://fr2.php.net/manual/en/language.variables.scope.php
    Op dinsdag 13 augustus schreef Xa1pt:
    Neuh, fraude mag best aangepakt worden. Maar dat het de maatschappij meer oplevert of beter is voor de samenleving, is nog maar de vraag.
    Op donderdag 25 juni 2015 schreef KoosVogels:
    Klopt. Ik ben een racist.
    pi_71685279
    oke zo simpel, maar eens proberen.
    bedankt

    Edit: helemaal perfect

    [ Bericht 32% gewijzigd door Darkomen op 07-08-2009 16:23:57 ]
    pi_71686048
    quote:
    Op vrijdag 7 augustus 2009 13:31 schreef Chandler het volgende:
    Maar nu zit ik met een vraag; ik wil dus bestanden includen zoals models/error/error.php echter kan ik dan niet bij de aangemaakte classes oid? zie foutmelding jals je het script draait
    Bedoel je niet controllers/error/error.php ?
    pi_71686490
    euh, nee eingelijk niet Roonaan, controllers gebruik ik voor alle mogelijke classes die allemaal moeten samen werken.

    In models staan de scripts die de data bewerken en in views staan de scripts voor de display (html etc)

    Maar ik zal dit ongetwijfeld fout hebben

    PS als ik in alle classes (die met elkaar moeten samen werken) wil samen werken? moet ik dan alles middels GLOBALS overnemen? of kan dit ook dynamisch? zodat ik snel classes kan toevoegen en verwijderen?
    Just say hi!
    pi_71694829
    Je moet niet het wiel opnieuw gaan uitvinden en gewoon een framework van de plank rukken en kijken hoe het daar gebeurd..

    my 2 cts.
    pi_71695582
    @ Roonaan: efficient is het niet, leerzaam wel
    pi_71702786
    roonaan hoe vaak heb jij zelf zaken gemaakt die al duizenden keren gemaakt zijn? Ik wil graag leren en dat doe ik door te doen. Ps dit bericht komt via mobiel internet gehe
    Just say hi!
    pi_71706035
    quote:
    Op zaterdag 8 augustus 2009 08:29 schreef Chandler het volgende:
    roonaan hoe vaak heb jij zelf zaken gemaakt die al duizenden keren gemaakt zijn? Ik wil graag leren en dat doe ik door te doen. Ps dit bericht komt via mobiel internet gehe
    Mja, maar als je gaat vragen of je globals moet gaan gebruiken om classes te laten samenwerken, dan moet je serieus even naar de frameworks kijken hoe zij dit inrichten. Leren zegt niets over of je zelf iets breidt, maar of je ook naar andere code kijkt om daar de beste dingen uit over te nemen en in je eigen sausje te dopen.
    pi_71725531
    Dat wil ik dus ook doen, maar ik weet dat een beetje framework een registry gebruikt maar hoe dat precies gebruikt cq ge implementeerd wordt is mij nog niet duidelijk
    Ps mobiel :-)
    Just say hi!
    pi_71730947
    Ik heb een switch statement geschreven die naar mijn idee gewoon zou moeten werken. In een andere website heb ik namelijk dezelfde code gebruikt.

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    <?php
           $id
    =$_GET['id'];
           if (!isset(
    $id)){
            
    $id $confg['start'];
           }

           if (
    file_exists("php/".$id.".php")){   //if file exists, include file, otherwise errormessage
             
    include ("php/".$id.".php");
           }
           else{
             include(
    "php/error.php");
           }
    ?>


    Vervolgens gebruik ik links in de vorm van

    index.php?id=nieuws , maar gek genoeg blijft de $confg['start'] waarde enkel maar geplaatst worden.

    Ik heb ook al het volgende gebruikt, maar ook daar blijft de $confg['start'] waarde enkel maar geplaatst worden.
    1
    2
    3
    4
    5
    6
    7
    8
    <?php
    if (isset($_GET['id'])){
      
    $id=$_GET['id']
    }
    else{        
      
    $id $confg['start'];
    }
    ?>
    ウプピエ 八十三 &lt;&lt; u-pu-pi-e hachi-ju-san, ik denk ik zeg het er maar ff bij :P
      zondag 9 augustus 2009 @ 14:42:46 #129
    75592 GlowMouse
    l'état, c'est moi
    pi_71731975
    Ik zie geen switch
    $id wordt niet gecontroleerd, nu kan ik elk bestand includen.

    Wat je moet doen is debuggen: hier en daar var_dump($varnaam) neerzetten en kijken wat er gebeurt.
    eee7a201261dfdad9fdfe74277d27e68890cf0a220f41425870f2ca26e0521b0
    pi_71733604
    quote:
    Op zondag 9 augustus 2009 14:42 schreef GlowMouse het volgende:
    Ik zie geen switch
    $id wordt niet gecontroleerd, nu kan ik elk bestand includen.

    Wat je moet doen is debuggen: hier en daar var_dump($varnaam) neerzetten en kijken wat er gebeurt.
    Nee het is ook geen echte switch, maar wat ik ermee bedoel is dat ik dit gebruik om te switchen tussen verschillende pagina's in de website.

    De controle op $id komt nog, maar dan is het handig dat het werkt. Momenteel doet het helemaal niets, het zet gelijk de start-waarde er in. Ik zal eens kijken met var_dump of ik wat kan vinden. Heb wel al geprobeerd om $_GET['id'] te echo'en, maar die liet niets zien, terwijl ik zelf ?id=xxx had getypt in de adresbalk...
    ウプピエ 八十三 &lt;&lt; u-pu-pi-e hachi-ju-san, ik denk ik zeg het er maar ff bij :P
      woensdag 12 augustus 2009 @ 08:41:25 #131
    63192 ursel
    "Het Is Hier Fantastisch!
    pi_71809897
    Even toch weer de discussie omhoog gooien wat betreft het openen van een database connectie.

    Zelf hebben we af en toe last dat we de connectie met de database verliezen. We draaien hier dagelijkse batch files welke soms een redelijke load aan queries moeten uitvoeren. Deze batch files kunnen soms ook redelijke tijd duren (max duurt bijna een uur. ). De huidige architectuur is dat er een object wordt gemaakt welke ook een db-object bevat. Zodra het DB-object wordt aangemaakt wordt er ook een verbinding gelegd en kunnen we eigenlijk ook direct queries executen.

    Probleem in onze situatie is dat MySQL op een andere fysieke server draait dan de code en dat dit allemaal ook door een aantal firewalls heen moeten gaan. Dit maakt het dus wat complexer om uit te zoeken waar de verbinding verloren gaat.

    Nu zit ik te twijfelen of het nog wel zinvol is om een verbinding zo lang open te houden en of het niet zinvoller is om voor elke query een verbinding te openen.

    Iemand enig idee wat dit qua performance gaat doen? Wanneer ga je grofweg voordeel halen als je 1 verbinding opent voor al je queries?
      woensdag 12 augustus 2009 @ 08:43:25 #132
    84244 Scorpie
    Abject en infaam!
    pi_71809927
    Ik denk niet eens dat dat zozeer een PHP-gerelateerd issue is ursel, volgens mij heeft elke grote applicatie dat vraagstuk.
    Op dinsdag 13 augustus schreef Xa1pt:
    Neuh, fraude mag best aangepakt worden. Maar dat het de maatschappij meer oplevert of beter is voor de samenleving, is nog maar de vraag.
    Op donderdag 25 juni 2015 schreef KoosVogels:
    Klopt. Ik ben een racist.
      woensdag 12 augustus 2009 @ 08:49:33 #133
    63192 ursel
    "Het Is Hier Fantastisch!
    pi_71810007
    quote:
    Op woensdag 12 augustus 2009 08:43 schreef Scorpie het volgende:
    Ik denk niet eens dat dat zozeer een PHP-gerelateerd issue is ursel, volgens mij heeft elke grote applicatie dat vraagstuk.
    Tis niet alleen PHP, maar ook (My)SQL voor dummies topic.
    Probleem hier vooral is dat er momenteel wat batch processen op willekeurige plaatsen niet meer werken omdat die connectie weg is.

    Simpele oplossing is nieuwe connecties doen, maar voordat ik dit doe wil ik eerst weten wat dit mer mijn performance gaat doen.
    pi_71810462
    Kan je niet je connectie checken bij iedere query die je doet / met een timer? Kan dat met een simpele isset misschien? En als die niet meer bestaat opnieuw connecten?

    Qua performance moet dat weinig uitmaken lijkt me
    Lijkt me in ieder geval beter dan bij iedere query een nieuwe connectie opzetten
    pi_71811037
    quote:
    Op woensdag 12 augustus 2009 09:18 schreef Xcalibur het volgende:
    Kan je niet je connectie checken bij iedere query die je doet / met een timer? Kan dat met een simpele isset misschien? En als die niet meer bestaat opnieuw connecten?

    Qua performance moet dat weinig uitmaken lijkt me
    Lijkt me in ieder geval beter dan bij iedere query een nieuwe connectie opzetten
    PHP heeft een functie mysql_ping(). Ik neem aan dat zoiets ook beschikbaar is in andere talen.
      woensdag 12 augustus 2009 @ 10:16:08 #136
    63192 ursel
    "Het Is Hier Fantastisch!
    pi_71811561
    quote:
    Op woensdag 12 augustus 2009 09:51 schreef Light het volgende:

    [..]

    PHP heeft een functie mysql_ping(). Ik neem aan dat zoiets ook beschikbaar is in andere talen.
    quote:
    Note: Since MySQL 5.0.13, automatic reconnection feature is disabled.
    pi_71811674
    quote:
    Op woensdag 12 augustus 2009 10:16 schreef ursel het volgende:

    [..]


    [..]

    Je hebt ook geen auto reconnect nodig. Met die ping-functie kijk je of de connectie nog werkt. Zo niet, dan sluit je de connectie (zodat alles aan jouw kant in ieder geval netjes is afgesloten) en open je een nieuwe. Je kunt ook meteen de nieuwe resource identifier opslaan (en gebruiken voor de queries en andere db-acties).
      woensdag 12 augustus 2009 @ 10:31:04 #138
    63192 ursel
    "Het Is Hier Fantastisch!
    pi_71811905
    quote:
    Op woensdag 12 augustus 2009 10:22 schreef Light het volgende:

    [..]

    Je hebt ook geen auto reconnect nodig. Met die ping-functie kijk je of de connectie nog werkt. Zo niet, dan sluit je de connectie (zodat alles aan jouw kant in ieder geval netjes is afgesloten) en open je een nieuwe. Je kunt ook meteen de nieuwe resource identifier opslaan (en gebruiken voor de queries en andere db-acties).
    Ahh, w8 idd, alleen reconnecten is disabled.
    Ga ff wat code rommelen. Zal morgen wel ff resultaat laten weten.
    pi_71812712
    Klinkt als een plan dit
    pi_71813630
    vraagje: hoe kan ik met Apache 2.2 + php5 +windows ervoor zorgen dat in 1 map (e.v.t. subdomein) een andere php.ini pakt (of ergens anders, zolang ik maar voor de hele map/subdomein een andere directive kan meegeven)
    ik heb zend.ze1_compatibility_mode aanstaan.. MediaWiki 1.15 wil deze echter persee uit hebben staan.. dus ik wil graag via een andere manier ervoorzorgen dat die map/subdomein een andere php.ini pakt (of dat iig die instelling anders is daarzo)
      woensdag 12 augustus 2009 @ 12:08:40 #141
    75592 GlowMouse
    l'état, c'est moi
    pi_71814682
    Andere ini-file kan niet, maar je kunt wel overriden met httpd.conf, zie http://ie.php.net/configuration.changes
    eee7a201261dfdad9fdfe74277d27e68890cf0a220f41425870f2ca26e0521b0
      woensdag 12 augustus 2009 @ 12:11:39 #142
    63192 ursel
    "Het Is Hier Fantastisch!
    pi_71814777
    quote:
    Op woensdag 12 augustus 2009 12:08 schreef GlowMouse het volgende:
    Andere ini-file kan niet, maar je kunt wel overriden met httpd.conf, zie http://ie.php.net/configuration.changes
    Kan wel. Ligt eraan hoe alles ingesteld staat. Maar niet bevoorderlijk iig.

    Hier hebben we voor elke ontwikkel omgeving zijn eigen PHP folder staan met daarin ook ieders zijn eigen ini.
    pi_71815953
    quote:
    Op woensdag 12 augustus 2009 12:08 schreef GlowMouse het volgende:
    Andere ini-file kan niet, maar je kunt wel overriden met httpd.conf, zie http://ie.php.net/configuration.changes
    ah.. thnx
    straks eens even mee proberen
      woensdag 12 augustus 2009 @ 13:41:27 #144
    37634 wobbel
    Da WoBBeL King
    pi_71817595
    Misschien is dit een hele rare vraag....misschien ook niet ;)

    Ik heb een XML bestand met daarin 20.000 artikelen van onze leverancier.
    Hoe kan ik nou met PHP zoeken naar een bepaald artikel nummer in dat XML bestand?

    Zo ziet het XML dingetje eruit:

    1
    2
    3
    4
    5
    6
    7
    8
    <product>
    <artnr>12345</artnr>
    <omschrijving>Heel goed product</omschrijving>
    <prijs_ex>8.50</prijs_ex>
    <voorraad>N</voorraad>
    <levertijd>3</levertijd>
    <aantal_op_voorraad>10+</aantal_op_voorraad>
    </product>
    pi_71817717
    Ik zou eerst de XML inlezen en die parsen naar een array. En dan de array checken op artikelnummer. Ik wil meestal meer dingen doen met die info dan alleen checken of iets bestaat, dus dan zijn arrays wel handig

    Als dat niet nodig is: je kunt misschien ook wel gewoon het ding inlezen, en in de string zoeken naar de tekst "<artnr>12345</artnr>"?


    Edit: de XML inlees- en parsefunctie heb ik uit de comments van de betreffende pagina op php.net geloof ik
      woensdag 12 augustus 2009 @ 14:25:30 #146
    37634 wobbel
    Da WoBBeL King
    pi_71818893
    quote:
    Op woensdag 12 augustus 2009 13:45 schreef Xcalibur het volgende:
    Ik zou eerst de XML inlezen en die parsen naar een array. En dan de array checken op artikelnummer. Ik wil meestal meer dingen doen met die info dan alleen checken of iets bestaat, dus dan zijn arrays wel handig

    Als dat niet nodig is: je kunt misschien ook wel gewoon het ding inlezen, en in de string zoeken naar de tekst "<artnr>12345</artnr>"?


    Edit: de XML inlees- en parsefunctie heb ik uit de comments van de betreffende pagina op php.net geloof ik
    Kost dat niet extreem veel resources op je server?
      woensdag 12 augustus 2009 @ 14:45:21 #147
    75592 GlowMouse
    l'état, c'est moi
    pi_71819463
    quote:
    Op woensdag 12 augustus 2009 14:25 schreef wobbel het volgende:

    [..]

    Kost dat niet extreem veel resources op je server?
    Ligt eraan hoevaak het gebeurt Als je dezelfde xml file heel vaak nodig hebt, moet je hem 1x importeren in een database.
    eee7a201261dfdad9fdfe74277d27e68890cf0a220f41425870f2ca26e0521b0
    pi_71819877
    quote:
    Op woensdag 12 augustus 2009 14:45 schreef GlowMouse het volgende:

    [..]

    Ligt eraan hoevaak het gebeurt Als je dezelfde xml file heel vaak nodig hebt, moet je hem 1x importeren in een database.
    Of in een Zend_Search_Lucene, afhankelijk van je zoekacties.
      woensdag 12 augustus 2009 @ 16:59:37 #149
    37634 wobbel
    Da WoBBeL King
    pi_71823193
    quote:
    Op woensdag 12 augustus 2009 14:45 schreef GlowMouse het volgende:

    [..]

    Ligt eraan hoevaak het gebeurt Als je dezelfde xml file heel vaak nodig hebt, moet je hem 1x importeren in een database.
    Er wordt regelmatig gezocht....
    Heb nu een import richting MySQL gemaakt, en daaraan hang ik weer een mooie (ajax) search
    pi_71824219
    quote:
    Op woensdag 12 augustus 2009 14:25 schreef wobbel het volgende:

    [..]

    Kost dat niet extreem veel resources op je server?
    Ik ging ervan uit dat het een eenmalige actie was ja
    Vandaar de array zodat ik de boel makkelijk in een database kan pleuren
    pi_71825611
    quote:
    Op zondag 9 augustus 2009 14:42 schreef GlowMouse het volgende:
    Ik zie geen switch
    $id wordt niet gecontroleerd, nu kan ik elk bestand includen.

    Wat je moet doen is debuggen: hier en daar var_dump($varnaam) neerzetten en kijken wat er gebeurt.
    Ik heb de var_dump geprobeerd. Deze wordt echter ook niet weergegeven Het enige dat ik met de volgende code te zien krijg is de inhoud van $confg['start'], zelfs de var_dump is nergens meer terug te vinden.

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    <?php
      
    <div id="inhoud">
        
    // < ?php niet echt comment
           
    var_dump($_GET['id']);
           
    $id=$_GET['id'];
           if (!isset(
    $id)){
            
    $id $confg['start'];
           }

           if (
    file_exists("php/".$id.".php")){   //if file exists, include file, otherwise errormessage
             
    include ("php/".$id.".php");
           }
           else{
             include(
    "php/error.php");
           }
       
    //  ? > niet echt comment
       
    </div>
    ?>
    ウプピエ 八十三 &lt;&lt; u-pu-pi-e hachi-ju-san, ik denk ik zeg het er maar ff bij :P
      woensdag 12 augustus 2009 @ 19:13:46 #152
    13783 Anthraxx
    When you see the robot, drink!
    pi_71826663
    Waarom mix je je php tags? Je opent er 1 waar je een div plaatst. Die hoort duidelijk buiten de <?php tags. Verder open je er weer 1 terwijl je die daarboven al hebt.
      woensdag 12 augustus 2009 @ 19:15:52 #153
    13783 Anthraxx
    When you see the robot, drink!
    pi_71826716
    Oh, var_dump is leuk voor snel debuggen, maar voor het serieuze werk wil je echt breakpoints, stacktraces en (conditionele) watches. Ik raad eerder XDebug aan icm een ondersteunde IDE (Aptana, Netbeans) dan var_dump wat verwarrend kan werken bij grotere output.
    pi_71826898
    quote:
    Op woensdag 12 augustus 2009 19:13 schreef Anthraxx het volgende:
    Waarom mix je je php tags? Je opent er 1 waar je een div plaatst. Die hoort duidelijk buiten de <?php tags. Verder open je er weer 1 terwijl je die daarboven al hebt.
    Dat is eigenlijk meer omdat fok bij de php code automatisch php openings en sluitingshaakjes neerzet. Zelf heb ik ze in mijn div zitten.
    ウプピエ 八十三 &lt;&lt; u-pu-pi-e hachi-ju-san, ik denk ik zeg het er maar ff bij :P
      woensdag 12 augustus 2009 @ 19:29:36 #155
    13783 Anthraxx
    When you see the robot, drink!
    pi_71827094
    Ah okay. Als je var_dump doet op alleen _GET ? Staat id er tuusen? En zet er eerat een exit(); achter. Misschien meer duidelijk dan.
    pi_71827831
    quote:
    Op woensdag 12 augustus 2009 19:29 schreef Anthraxx het volgende:
    Ah okay. Als je var_dump doet op alleen _GET ? Staat id er tuusen? En zet er eerat een exit(); achter. Misschien meer duidelijk dan.
    Met de volgende link: index.php?id=nieuws

    array(1) { ["id"]=> string(6) "nieuws" }
    ウプピエ 八十三 &lt;&lt; u-pu-pi-e hachi-ju-san, ik denk ik zeg het er maar ff bij :P
    pi_71828221
    Dat lijkt goed
      FOK!-Schrikkelbaas donderdag 13 augustus 2009 @ 20:09:22 #158
    1972 Swetsenegger
    Egocentrische Narcist
    pi_71857399
    Kijk ik er nou overheen of is er geen functie om een element in een array naar het begin te verplaatsen?
    pi_71857540
    het tegenovergestelde van array_push bedoel je?
    http://nl.php.net/manual/en/function.array-unshift.php
      FOK!-Schrikkelbaas donderdag 13 augustus 2009 @ 20:22:29 #160
    1972 Swetsenegger
    Egocentrische Narcist
    pi_71857739
    Maar in dat voorbeeld zie ik NIEUWE elementen toegevoegd worden aan het begin. Inderdaad een omgekeerde push. Maar ik wil een bestaande element wat ik op key vind, verplaatsen zodat het het eerste element wordt.
    pi_71857946
    Kan je hem niet unsetten en dan unshiften?
    Geen idee of daar een aparte functie voor is...
      FOK!-Schrikkelbaas donderdag 13 augustus 2009 @ 20:48:22 #162
    1972 Swetsenegger
    Egocentrische Narcist
    pi_71858522
    kan je 1 element in een array unsetten?
    pi_71858944
    quote:
    Op donderdag 13 augustus 2009 20:48 schreef Swetsenegger het volgende:
    kan je 1 element in een array unsetten?
    Ja.

    1
    2
    3
    <?php
    unset($array[$key_to_unset]);
    ?>
      FOK!-Schrikkelbaas donderdag 13 augustus 2009 @ 21:19:14 #164
    1972 Swetsenegger
    Egocentrische Narcist
    pi_71859454
    quote:
    Op donderdag 13 augustus 2009 21:19 schreef Swetsenegger het volgende:
    Hmz, wel omslachtig
    maar ik vindt em wel logisch

    [ Bericht 0% gewijzigd door mschol op 13-08-2009 21:26:08 ]
    pi_71859693
    quote:
    Op donderdag 13 augustus 2009 20:09 schreef Swetsenegger het volgende:
    Kijk ik er nou overheen of is er geen functie om een element in een array naar het begin te verplaatsen?
    Niet direct, dan moet je dingen combineren. Is het niet handiger om te zorgen dat de volgorde van de elementen goed komt te staan bij het vullen van de array?
      FOK!-Schrikkelbaas donderdag 13 augustus 2009 @ 21:50:45 #167
    1972 Swetsenegger
    Egocentrische Narcist
    pi_71860329
    quote:
    Op donderdag 13 augustus 2009 21:29 schreef Light het volgende:

    [..]

    Niet direct, dan moet je dingen combineren. Is het niet handiger om te zorgen dat de volgorde van de elementen goed komt te staan bij het vullen van de array?
    Dat staan ze ook. Tot ik ergens op klik

    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
    Array
    (
        [CC40FF] => Array
            (
                [3] => Array
                    (
                        [maat] => large
                        [prijs] => 1495
                        [voorraad] => 2
                    )

                [5] => Array
                    (
                        [maat] => mediu
                        [prijs] => 995
                        [voorraad] => 1
                    )

            )

        [D1D1D1] => Array
            (
                [4] => Array
                    (
                        [maat] => mediu
                        [prijs] => 1495
                        [voorraad] => 1
                    )

            )

    )


    Dit moet op een detailpagina komen van een webshop, zoiets als dit:
    http://www.perfectlybasic(...)-01370030651105.aspx

    Zoals je ziet heb je dus meerdere kleuren. En zodra je op een kleur klikt krijg je een andere foto en andere maat info. De ANDERE kleuren in de array moeten dan alleen als kleurblok geparsed worden, de rest mag genegeerd.

    dus ik wil een foreach loop maken voor bovenstaande array, waarbij ik een tellertje mee laat lopen. En als die teller groter dan 1 is parse ik alleen de key. Maar dat betekent dus dat de kleur die ik gekozen heb vooraan moet staan in de array
    pi_71860777
    Je kan de unieke kleuren toch opvragen met een array_unique op de array_keys? Is het voor de eindgebruiker niet verwarrend als de volgorde van de kleuren veranderd?
    pi_71861047
    quote:
    Op donderdag 13 augustus 2009 21:50 schreef Swetsenegger het volgende:

    [..]

    Dat staan ze ook. Tot ik ergens op klik
    Nergens op klikken dan Soms is de oplossing zo simpel
    quote:
    Dit moet op een detailpagina komen van een webshop, zoiets als dit:
    http://www.perfectlybasic(...)-01370030651105.aspx

    Zoals je ziet heb je dus meerdere kleuren. En zodra je op een kleur klikt krijg je een andere foto en andere maat info. De ANDERE kleuren in de array moeten dan alleen als kleurblok geparsed worden, de rest mag genegeerd.

    dus ik wil een foreach loop maken voor bovenstaande array, waarbij ik een tellertje mee laat lopen. En als die teller groter dan 1 is parse ik alleen de key. Maar dat betekent dus dat de kleur die ik gekozen heb vooraan moet staan in de array
    Je weet toch welke kleur er gekozen is? Met array_keys() kun je een lijstje maken van alle beschikbare kleuren (en dan heb je altijd dezelfde volgorde, aangenomen dat de volgorde van de array hetzelfde is). Vervolgens gebruik je de geselecteerde kleur om de belangrijke informatie daarvan te achterhalen. Dan heb je niet eens een foreach-loop nodig.
      FOK!-Schrikkelbaas donderdag 13 augustus 2009 @ 22:18:14 #170
    1972 Swetsenegger
    Egocentrische Narcist
    pi_71861157
    Bij de eerste keer dat ik op de pagina kom heb je nog geen specifieke kleur gekozen. Dus parse ik de eerste. En daarna kan je een kleur kiezen, maar de rest van de info moet ook op het scherm....

    Maar ik snap wat jullie bedoelen. Eens zien of ik er mee verder kom.
    pi_71861258
    quote:
    Op donderdag 13 augustus 2009 22:04 schreef Roönaän het volgende:
    Je kan de unieke kleuren toch opvragen met een array_unique op de array_keys? Is het voor de eindgebruiker niet verwarrend als de volgorde van de kleuren veranderd?
    Ik denk dat dat meevalt zolang je wel consequent een patroon handhaaft. Dus altijd alle kleuren in dezelfde volgorde en de geselecteerde kleur vooraan. Met letters of cijfers zou ik het niet doen, die hebben een natuurlijke sortering. Bij kleuren is dat veel minder.
    pi_71861349
    quote:
    Op donderdag 13 augustus 2009 22:18 schreef Swetsenegger het volgende:
    Bij de eerste keer dat ik op de pagina kom heb je nog geen specifieke kleur gekozen. Dus parse ik de eerste. En daarna kan je een kleur kiezen, maar de rest van de info moet ook op het scherm....

    Maar ik snap wat jullie bedoelen. Eens zien of ik er mee verder kom.
    1
    2
    3
    4
    5
    6
    7
    <?php
    $availableColours 
    array_keys($colouredItems);
    if(!isset(
    $selectedColour) || !in_array($selectedColour$availableColours)) {
        
    $selectedColour $availableColours[0];
    }
    $itemDetails $colouredItems[$selectedColour];
    ?>

    Ofzo.
    pi_71861872
    Zelf zou ik nog een expliciete sort op de kleuren doen,zodat deze niet afhangt van de db insert volgorde. Misschien op hui of eventueel op een site brede palet.
    Is het overigens een soort dhtml site met hidden divs die je wisselt, dat je al deze info van alle kleuren altijd uit de db haalt?
      FOK!-Schrikkelbaas donderdag 13 augustus 2009 @ 22:47:09 #174
    1972 Swetsenegger
    Egocentrische Narcist
    pi_71861992
    -edit-

    [ Bericht 99% gewijzigd door Swetsenegger op 13-08-2009 22:49:59 (Ziggo fucked up.) ]
      FOK!-Schrikkelbaas donderdag 13 augustus 2009 @ 22:49:36 #175
    1972 Swetsenegger
    Egocentrische Narcist
    pi_71862067
    quote:
    Op donderdag 13 augustus 2009 22:43 schreef Roönaän het volgende:
    Zelf zou ik nog een expliciete sort op de kleuren doen,zodat deze niet afhangt van de db insert volgorde. Misschien op hui of eventueel op een site brede palet.
    Is het overigens een soort dhtml site met hidden divs die je wisselt, dat je al deze info van alle kleuren altijd uit de db haalt?
    Er wordt gesorteerd op kleur als het uit DB komt, en dan gaat het de array in.

    Nee, dit is alle info die ik nodig heb op deze pagina. Stel je voor dat dit een shirt is van Mexx. En die heb ik dus in 2 kleuren. En kleur 1 heb ik in 2 verschillende maten (en bijbehorende prijs) en kleur 2 heb ik in 1 maat.
    pi_71862117
    Je hebt die uitgebreide info van de andere kleuren toch niet nodig op die pagina?
    Dus zou je af kunnen met een losse query op de kleuren met een sort of een join met een palette tabel zeg maar
    pi_71863012
    Ik denk dat hij wil wisselen zonder de pagina te refreshen?
    Anders zou het hele volgorde probleem niet bestaan volgens mij?
      FOK!-Schrikkelbaas vrijdag 14 augustus 2009 @ 08:28:48 #178
    1972 Swetsenegger
    Egocentrische Narcist
    pi_71867390
    quote:
    Op donderdag 13 augustus 2009 22:51 schreef Roönaän het volgende:
    Je hebt die uitgebreide info van de andere kleuren toch niet nodig op die pagina?
    Dus zou je af kunnen met een losse query op de kleuren met een sort of een join met een palette tabel zeg maar
    Dan moet ik weer een extra query draaien.
    quote:
    Op donderdag 13 augustus 2009 23:19 schreef Xcalibur het volgende:
    Ik denk dat hij wil wisselen zonder de pagina te refreshen?
    Anders zou het hele volgorde probleem niet bestaan volgens mij?
    Dat zou ook kunnen, maar zelfs als ik refresh blijft het probleem bestaan.

    Dit is namelijk 1 artikel, met 3 'eigenschappen'.

    Kijk de klant wil een webshop waarin er per product meerdere kleuren en maten kunnen zijn EN per kleur/maat een voorraad indicatie moet zijn. En voor elke kleur moet je meerdere foto's kunnen plaatsen. Ik ontkom er dus niet aan om artikelen op te splitsen in een algemeen deel (merk, materiaal, omschrijving, etc) en eigenschappen (kleur, maat, prijs, voorraad).

    Dit is de uiteindelijke pagina waar 1 artikel wordt getoont, waar je de kleur en maat kan kiezen en dan in je winkelwagentje kan droppen. Kortom ik selecteer het artikel en join alle eigenschappen. Wat hier in de array staat zijn de eigenschappen.

    1
    2
    3
    4
    5
    6
    7
    <?php
    $query
    ="select e.id, hex(e. kleur) AS kleur, e.maat, e.prijs, e.voorraad, a.naam, a.merk, a.omschrijving
            from eigenschappen e
            join artikelen a on (e.artId=a.id)
            where e.artID="
    .$id."
            order by kleur"
    ;
    ?>


    Voor de duidelijkheid ga naar http://fashioninthecity.nl/index.php kies links blouses & tunieken -> Katoen. En klik dan op het meest rechtse artikel. Dan wordt de flow duidelijk. En de pagina waarop je dan terecht komt moet zoiets als dit worden: http://www.perfectlybasic(...)-01370030651105.aspx

    [ Bericht 18% gewijzigd door Swetsenegger op 14-08-2009 08:33:54 ]
    pi_71867542
    quote:
    Op vrijdag 14 augustus 2009 08:28 schreef Swetsenegger het volgende:
    Voor de duidelijkheid ga naar http://fashioninthecity.nl/index.php kies links blouses & tunieken -> Katoen. En klik dan op het meest rechtse artikel. Dan wordt de flow duidelijk. En de pagina waarop je dan terecht komt moet zoiets als dit worden: http://www.perfectlybasic(...)-01370030651105.aspx
    dat is die paarse blouse?
    Ik krijg dan een blanco pagina (wel layout, geen content). Op de kleur klikken idem.
      FOK!-Schrikkelbaas vrijdag 14 augustus 2009 @ 08:49:24 #180
    1972 Swetsenegger
    Egocentrische Narcist
    pi_71867588
    quote:
    Op vrijdag 14 augustus 2009 08:44 schreef Xcalibur het volgende:

    [..]

    dat is die paarse blouse?
    Ik krijg dan een blanco pagina (wel layout, geen content). Op de kleur klikken idem.
    Dan krijg je een pagina met de array erin die ik moet gaan parsen
    Tenminste... in elke browser anders dan IE
    pi_71867936
    quote:
    Op vrijdag 14 augustus 2009 08:28 schreef Swetsenegger het volgende:
    Dan moet ik weer een extra query draaien.
    Mja, maar je zit niet continue data over te pompen die je niet gebruikt. Je wilt immers alleen de verschillende kleuren weten en de overige info van 1 specifieke kleur/artikel. Maar goed, dit gaat op zich ook wel werken op natuurlijk.
      FOK!-Schrikkelbaas vrijdag 14 augustus 2009 @ 09:20:01 #182
    1972 Swetsenegger
    Egocentrische Narcist
    pi_71868104
    Ik weet alleen nog niet hoe ik het moet doen.
    pi_71868581
    quote:
    Op vrijdag 14 augustus 2009 08:49 schreef Swetsenegger het volgende:

    [..]

    Dan krijg je een pagina met de array erin die ik moet gaan parsen
    Tenminste... in elke browser anders dan IE
    Waarom in IE niet?
    Nou ja, ik gebruik dus IE....
      FOK!-Schrikkelbaas vrijdag 14 augustus 2009 @ 10:29:39 #184
    1972 Swetsenegger
    Egocentrische Narcist
    pi_71869744
    quote:
    Op vrijdag 14 augustus 2009 09:43 schreef Xcalibur het volgende:

    [..]

    Waarom in IE niet? :?
    al sla je me dood.

    1
    2
    3
    4
    5
    <?php
    echo'<pre>';
    print_r($array);
    echo
    '</pre>';
    ?>


    Lijkt me niet heel spannend om te renderen. Maar hij toont helemaal niks. Ook niet in de source
    pi_71869840
    Wat raar, ik heb nog nooit problemen gehad met het renderen van een array naar m'n scherm, binnen HTML ouput of alleen als array...
      FOK!-Schrikkelbaas vrijdag 14 augustus 2009 @ 10:53:50 #186
    1972 Swetsenegger
    Egocentrische Narcist
      FOK!-Schrikkelbaas zaterdag 15 augustus 2009 @ 22:07:37 #187
    1972 Swetsenegger
    Egocentrische Narcist
    pi_71909643
    http://www.fashioninthecity.nl/detail/3 kunnen IE gebruikers hier even op klikken? Want volgens mij rendert nu ook de complete pagina niet terwijl hij in elke andere browser gewoon keurig op het scherm staat.
    pi_71909823
    Swets. Kijk even op www.xenocode.com/browsers handige site voor in je toolkit. Als je op je lokale IE7/IE8 vervolgens ook de web development tools hebt geinstalleerd komen die ook naar voren in de xenocode IE6/IE7, dus dat is wel weer handig. Eventueel kan je ook Safari testen, maar ik meen me te herinneren dat je zelf al wel een Mac had toch?
      FOK!-Schrikkelbaas zaterdag 15 augustus 2009 @ 22:17:38 #189
    1972 Swetsenegger
    Egocentrische Narcist
    pi_71909845
    quote:
    Op zaterdag 15 augustus 2009 22:16 schreef Roönaän het volgende:
    Swets. Kijk even op www.xenocode.com/browsers handige site voor in je toolkit. Als je op je lokale IE7/IE8 vervolgens ook de web development tools hebt geinstalleerd komen die ook naar voren in de xenocode IE6/IE7, dus dat is wel weer handig. Eventueel kan je ook Safari testen, maar ik meen me te herinneren dat je zelf al wel een Mac had toch?
    Ik zit nu op een mac
    wacht ff ik heb nog een vpn tunneltje waarmee ik ff IE kan bekijken. Wat voegt deze tool toe Roonaan?

    -edit- probleem gevonden
    pi_71912445
    quote:
    Op zaterdag 15 augustus 2009 22:17 schreef Swetsenegger het volgende:

    [..]

    Ik zit nu op een mac
    wacht ff ik heb nog een vpn tunneltje waarmee ik ff IE kan bekijken. Wat voegt deze tool toe Roonaan?

    -edit- probleem gevonden
    Ik gebruik hem hier bij mij om ie6 te testen. Dan hoef je anderen niet te vragen.
    pi_71912530
    quote:
    Op zondag 16 augustus 2009 00:39 schreef Roönaän het volgende:

    [..]

    Ik gebruik hem hier bij mij om ie6 te testen. Dan hoef je anderen niet te vragen.
    Eigenlijk moet IE6 gewoon dood. Net als webhosters die nog MySQL 3.23 gebruiken.
    pi_71913114
    quote:
    Op zondag 16 augustus 2009 00:45 schreef Light het volgende:

    [..]

    Eigenlijk moet IE6 gewoon dood. Net als webhosters die nog MySQL 3.23 gebruiken.
    En ik maar denken dat jij not that kind of developer was..

    Vorige week nog een IE6-only oplevering gedaan voor bank tools. (6 tools eigenlijk, maar goed)
    pi_71913343
    quote:
    Op zondag 16 augustus 2009 01:31 schreef Roönaän het volgende:

    [..]

    En ik maar denken dat jij not that kind of developer was..

    Vorige week nog een IE6-only oplevering gedaan voor bank tools. (6 tools eigenlijk, maar goed)
    Uiteindelijk is de klant koning uiteraard En zolang IE6 nog een redelijke groep gebruikers heeft, kun je het niet helemaal laten vallen. Ik heb het laatst nog voor een paar sites nagekeken, van de ca. 85% IE gebruikers heeft zo'n 17% IE6. Da's dus zo'n 14-15% van het totaal aantal bezoekers, en da's te veel om helemaal links te laten liggen.

    Overigens zou ik wel willen zorgen dat iets crossbrowser werkt. Dan dwing je de gebruiker niet naar 1 browser/OS. Ik ken een detacheerder die voor tijdregistratie alleen IE accepteert. Zonder een laptop ter beschikking te stellen. En da's nogal lastig als je net een Mac gekocht hebt voordat je daar ging solliciteren.
    pi_71916157
    Ik gebruik IEtester, die simuleert IE5.5, IE6, IE7 en IE8 (alleen in compatiblity mode heb ik het idee).

    Handig programmaatje, die IE6 simulator werkt prima in ieder geval. Ik werk onder andere voor de Rabobank, en die zitten dus nog massaal op IE6, en iets anders installeren mogen ze niet ... dan ontkom je niet aan zoiets
    pi_71932631
    Werkt het printen ie IETester? Daar hadden wij hier altijd problemen mee, vandaar dat we overgestapt zijn op virtual machines en xenocode.
    pi_71933066
    Waarom zou dat niet werken?
    Er zit gewoon een printknop en preview in...
      zondag 16 augustus 2009 @ 22:08:37 #197
    37634 wobbel
    Da WoBBeL King
    pi_71933977
    Ik ben nog steeds niet goed met reguliere expressies...en daarom lukt het mij weer eens niet

    Ik heb deze code:

    1<td colspan="2" class="smallest">Postorder<br /><img src="/img/layout/vi115.gif" width="60" height="10" border="0"><br />Afhalen<br />


    Daaruit wil ik het stukje van de IMG SRC graag overhouden, dus "/img/layout/vi115.gif"

    Ik was al bezig met onderstaande code, maar dat werkt niet...

    1
    2
    3
    4
    <?php
    $regEx 
    "/\<td colspan=\"2\" class=\"smallest\"\>Postorder<br /\>(.*?)\<br /\>Afhalen<br /\>/ise";
        
    preg_match_all($regEx$content$matches);
    ?>


    Godverdomme, zit je 30 minuten te klooien...post je een topic en dan lukt het je....

    1
    2
    3
    <?php
    preg_match
    ('|<td colspan="2" class="smallest">Postorder<br /><img src="/img/layout/vi(.*?).gif" width="60" height="10" border="0"><br />Afhalen<br />|',$content,$matches);     
    ?>


    [ Bericht 23% gewijzigd door wobbel op 16-08-2009 22:14:32 ]
    pi_71935151
    Dat levert niet het resultaat op wat je wilde (/img/layout/vi115.gif), maar alleen 115.

    Verder lijkt dit me niet echt de manier om een regex te bouwen (met zoveel harde string erin zeg maar), op deze manier kan je het net zo goed met een string-functie doen volgens mij.
    pi_71935598
    quote:
    Op zondag 16 augustus 2009 22:37 schreef Xcalibur het volgende:
    Dat levert niet het resultaat op wat je wilde (/img/layout/vi115.gif), maar alleen 115.

    Verder lijkt dit me niet echt de manier om een regex te bouwen (met zoveel harde string erin zeg maar), op deze manier kan je het net zo goed met een string-functie doen volgens mij.
    Dan moet die bestandsnaam wel altijd even lang zijn. Anders ben je nog weer bezig met extra functies om uit te zoeken waar de bestandsnaam eindigt. Kan natuurlijk wel.

    Dit is een stuk korter (en niet getest):
    1
    2
    3
    <?php
    preg_match
    ('#<img.*src="(.*)".*>#Ui'$content$matches);
    ?>


    [ Bericht 0% gewijzigd door Light op 17-08-2009 09:22:01 (goede modifier bij regex) ]
    pi_71937806
    Ik wil nu een form voorzien van een security image. Op zich gaat dit nu goed, alleen de eerste keer dat ik op de pagina kom niet (na een F5 wel).

    form: (gedeelte van code)
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    <?php
    require ("php/XXX/secFunctions.php");

    session_start();
    $_SESSION['sessionString'] = randomString(5);

    <
    form action=" echo $_SERVER["PHP_SELF"]; " method="POST">
    <
    img width="150" height="100" border='0' src=test.php alt=&#8221;secImage&#8221;>
    <input size="50" maxlength="60" type="text" name="sec"><br />
     echo 
    "session:"Print_r ($_SESSION); 
    </
    form>
    ?>


    test.php
    1
    2
    3
    4
    5
    6
    <?php
    require ("php/XXX/secFunctions.php");
    session_start();

    createSecImage(150100100$_SESSION['sessionString']);
    ?>


    De functies randomString(X) en createSecImage(A,B,C,D) staan beide in het secFunctions bestand.
    randomString maakt een randomString aan van lengte X. createSecImage maakt een .PNG plaatje aan met breedte A, hoogte B, ruispercentage C (procent randompixels) en tekst D.

    Probleem is dus dat in de eerste ronde de Print_r van $_SESSION wel degelijk aangeeft dat sessionString een waarde heeft. Deze waarde staat echter niet in het plaatje. Na een refresh gaat alles wel goed.
    ウプピエ 八十三 &lt;&lt; u-pu-pi-e hachi-ju-san, ik denk ik zeg het er maar ff bij :P
    pi_71941356
    quote:
    Op zondag 16 augustus 2009 22:50 schreef Light het volgende:

    [..]

    Dan moet die bestandsnaam wel altijd even lang zijn. Anders ben je nog weer bezig met extra functies om uit te zoeken waar de bestandsnaam eindigt. Kan natuurlijk wel.

    Dit is een stuk korter (en niet getest):
    [ code verwijderd ]


    Nou ja, dat bedoel ik dus
    Deze is een stuk flexibeler en overzichtelijker, je bestandsnaam staat altijd voor de sluittag van de img bijvoorbeeld.

    Ik denk dat deze wel greedy is of niet? Als er twee images instaan pakt hij de opentag van de eerste en de sluittag van de tweede, en is je resultaat alles wat er tusseninstaan. Maar daar is een modifier voor om dat te fixen, maar die weet ik even niet uit m'n hoofd
    pi_71942042
    quote:
    Op maandag 17 augustus 2009 08:28 schreef Xcalibur het volgende:

    [..]

    Nou ja, dat bedoel ik dus
    Deze is een stuk flexibeler en overzichtelijker, je bestandsnaam staat altijd voor de sluittag van de img bijvoorbeeld.

    Ik denk dat deze wel greedy is of niet? Als er twee images instaan pakt hij de opentag van de eerste en de sluittag van de tweede, en is je resultaat alles wat er tusseninstaan. Maar daar is een modifier voor om dat te fixen, maar die weet ik even niet uit m'n hoofd
    Hij was idd greedy. Ik had de modifier U moeten gebruiken, ipv u.
    pi_71961648
    Ik heb een probleempje, ik heb prijzen in centen in een database staan.
    Deze wil ik omrekenen naar euro's
    Maar wel met een ending zero, dus 1010 centen word ¤10.10 en 1050 centen word ¤10.50
    maar ik krijgen steeds 10.10 wat goed is en 10.5 wat dus fout is?

    Zelfs al plak ik er een 0 achter?!

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    $prijzen   =  array('1010','1050');

    foreach ($prijzen as $dienst->d_prijs){
       echo $dienst->d_prijs.'<br>';
       $prijs = explode('.',($dienst->d_prijs/100));
       if($prijs[1]){
          echo $prijs[1].'<br>';   
          echo strlen($prijs[1]).'<br>';
          $prijs[1] = (strlen($prijs[1]=='1')) ? '.'.$prijs[1].'0' : '.'.$prijs[1];
          echo $prijs[1].'<br>';   
          echo strlen($prijs[1]).'<br>';
       }
       $dienst->d_prijs = $prijs[0].$prijs[1];
       echo $dienst->d_prijs.'<br><br>';
    }


    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    1010
    1
    1
    .10
    3
    10.10

    1050
    5
    1
    .5
    2
    10.5


    Ik heb me er de hele dag al op doodgestaart, mede dankzij ik hetzelfde moet doen in javascript.
      maandag 17 augustus 2009 @ 21:02:05 #204
    75592 GlowMouse
    l'état, c'est moi
    pi_71961704
    Sla het in hele centen op, kun je er nog normaal mee rekenen ook.
    eee7a201261dfdad9fdfe74277d27e68890cf0a220f41425870f2ca26e0521b0
    pi_71962159
    Ik sla het dus al ook op in hele centen ;-)
    maar ik ga mn gebruikers geen centen voorschotelen zodat ze het in hun hoofd moeten omrekenen.
      maandag 17 augustus 2009 @ 21:23:45 #206
    67978 HenryHill
    Fake it 'till you make it
    pi_71962532
    quote:
    Op maandag 17 augustus 2009 21:15 schreef Darkomen het volgende:
    Ik sla het dus al ook op in hele centen ;-)
    maar ik ga mn gebruikers geen centen voorschotelen zodat ze het in hun hoofd moeten omrekenen.
    Dat lijkt me niet nee.

    En google is your friend:
    quote:
    Example #8 sprintf(): formatting currency
    <?php
    $money1 = 68.75;
    $money2 = 54.35;
    $money = $money1 + $money2;
    // echo $money will output "123.1";
    $formatted = sprintf("%01.2f", $money);
    // echo $formatted will output "123.10"
    ?>
    (Van http://nl2.php.net/sprintf)
    So this is how liberty dies... with thunderous applause.
    Truth? What's so great about the truth? Try lying for a change, it's the currency of the world
      maandag 17 augustus 2009 @ 21:24:19 #207
    75592 GlowMouse
    l'état, c'est moi
    pi_71962559
    Ah zo. Je ziet dat $prijs[1] niet aangepast wordt, dus de fout zit in regel 9.
    eee7a201261dfdad9fdfe74277d27e68890cf0a220f41425870f2ca26e0521b0
    pi_71962841
    HenryHill, daar begin je dus al met een gedeeld bedrag.
    @glowmuis, ja daar gaat het fout, bij strlen==1

    heb het even omgedraaid, strlen=2 en dan gaat het wel goed?!
      maandag 17 augustus 2009 @ 21:32:18 #209
    75592 GlowMouse
    l'état, c'est moi
    pi_71962916
    quote:
    Op maandag 17 augustus 2009 21:30 schreef Darkomen het volgende:
    HenryHill, daar begin je dus al met een gedeeld bedrag.
    @glowmuis, ja daar gaat het fout, bij strlen==1

    heb het even omgedraaid, strlen=2 en dan gaat het wel goed?!
    De haakjes staan ook niet goed
    eee7a201261dfdad9fdfe74277d27e68890cf0a220f41425870f2ca26e0521b0
      maandag 17 augustus 2009 @ 21:37:13 #210
    67978 HenryHill
    Fake it 'till you make it
    pi_71963133
    quote:
    Op maandag 17 augustus 2009 21:30 schreef Darkomen het volgende:
    HenryHill, daar begin je dus al met een gedeeld bedrag.
    Ja, daar was ik al bang voor, dat je dat zou zeggen

    Sla gewoon het bedrag in hele centen op in je database. Als je het getal wilt afdrukken, deel het eerst door 100 en geef het mee aan de sprintf-functie. Komt helemaal goed.
    So this is how liberty dies... with thunderous applause.
    Truth? What's so great about the truth? Try lying for a change, it's the currency of the world
      maandag 17 augustus 2009 @ 21:46:56 #211
    111382 Ofyles2
    Bestemming: onbekend
    pi_71963552
    quote:
    Op maandag 17 augustus 2009 21:37 schreef HenryHill het volgende:

    [..]

    Ja, daar was ik al bang voor, dat je dat zou zeggen

    Sla gewoon het bedrag in hele centen op in je database. Als je het getal wilt afdrukken, deel het eerst door 100 en geef het mee aan de sprintf-functie. Komt helemaal goed.
    Als het dan toch via MySQL gaat, dan raad ik DECIMAL aan.
    pi_71963789
    Het gaat nu goed, zal er wel te lang naar gestaart hebben.

    Over DECIMAL ga ik eens even lezen.
      FOK!-Schrikkelbaas maandag 17 augustus 2009 @ 21:52:48 #213
    1972 Swetsenegger
    Egocentrische Narcist
    pi_71971728
    Ik doe dat altijd met numberformat in mijn template inderdaad
    Hoef je helemaal niks om te rekenen
      FOK!-Schrikkelbaas dinsdag 18 augustus 2009 @ 14:04:37 #215
    1972 Swetsenegger
    Egocentrische Narcist
    pi_71978953
    Ik moet recursief een aantal records uit MSSQL DB trekken, hoe kan ik dat het beste doen?

    Eerste record wordt met SELECT * FROM db WHERE parent=x uit de db gehaald. Vervolgens zou ik met het id van dat record deze exercitie moeten herhalen. Hoe doe ik dat het makkelijkst? Een join ofzo?
    pi_71980183
    quote:
    Op dinsdag 18 augustus 2009 14:04 schreef Swetsenegger het volgende:
    Ik moet recursief een aantal records uit MSSQL DB trekken, hoe kan ik dat het beste doen?

    Eerste record wordt met SELECT * FROM db WHERE parent=x uit de db gehaald. Vervolgens zou ik met het id van dat record deze exercitie moeten herhalen. Hoe doe ik dat het makkelijkst? Een join ofzo?
    Ik heb geen idee. Maar misschien weten ze het in Het grote (?) .NET en MSSQL topic wel
      FOK!-Schrikkelbaas dinsdag 18 augustus 2009 @ 14:54:46 #217
    1972 Swetsenegger
    Egocentrische Narcist
    pi_71981218
    quote:
    Op maandag 17 augustus 2009 21:52 schreef Swetsenegger het volgende:
    number_format
    Weet je wat nu het erge is, ik zit een stukje code van een paar dagen geleden te bekijken, daar gebruik ik wel gewoon number_format!
    pi_71981336
    Dan moet je gewoon vaker pauze nemen
    pi_71981525
      dinsdag 18 augustus 2009 @ 20:08:15 #221
    67978 HenryHill
    Fake it 'till you make it
    pi_71989024
    quote:
    Op dinsdag 18 augustus 2009 14:04 schreef Swetsenegger het volgende:
    Ik moet recursief een aantal records uit MSSQL DB trekken, hoe kan ik dat het beste doen?

    Eerste record wordt met SELECT * FROM db WHERE parent=x uit de db gehaald. Vervolgens zou ik met het id van dat record deze exercitie moeten herhalen. Hoe doe ik dat het makkelijkst? Een join ofzo?
    Hmm, recursief... heeft het toevallig met een tree te maken? Zo ja, dan zou je misschien het Nested Set Model uit Managing Hierarchical Data in MySQL eens moeten bekijken.
    So this is how liberty dies... with thunderous applause.
    Truth? What's so great about the truth? Try lying for a change, it's the currency of the world
      FOK!-Schrikkelbaas dinsdag 18 augustus 2009 @ 20:26:43 #222
    1972 Swetsenegger
    Egocentrische Narcist
    pi_71989627
    quote:
    Op dinsdag 18 augustus 2009 20:08 schreef HenryHill het volgende:

    [..]

    Hmm, recursief... heeft het toevallig met een tree te maken? Zo ja, dan zou je misschien het Nested Set Model uit Managing Hierarchical Data in MySQL eens moeten bekijken.


    Nee the nested set heb ik al een hele tijd terug toegepast in een database driven menu wat ik mijn cms gebruik. Nee in dit geval is het een redelijk rudimentaire parent/child verhouding in een situatie waar nested set niet echt gaat werken.
      dinsdag 18 augustus 2009 @ 21:08:32 #223
    67978 HenryHill
    Fake it 'till you make it
    pi_71991037
    quote:
    Op dinsdag 18 augustus 2009 20:26 schreef Swetsenegger het volgende:

    [..]



    Nee the nested set heb ik al een hele tijd terug toegepast in een database driven menu wat ik mijn cms gebruik. Nee in dit geval is het een redelijk rudimentaire parent/child verhouding in een situatie waar nested set niet echt gaat werken.
    Hehe... had gekund

    Stel, je hebt de tabel:
    medewerker
    med_id (primary key)
    med_manager_id (foreign key naar medewerker.med_id)
    med_naam
    ...

    Als je hierarchie een vast aantal niveau's heeft zou je het met left joins kunnen doen (let op: SQL Server syntax, ik weet niet exact wat MySQL hier van vindt):
    1
    2
    3
    4
    5
    select *
    from medewerker as level1
    left join medewerker as level2 on (level1.med_id = level2.med_manager_id)
    left join medewerker as level3 on (level2.med_id = level3.med_manager_id)
    where level1.med_naam = 'Jansen'
    So this is how liberty dies... with thunderous applause.
    Truth? What's so great about the truth? Try lying for a change, it's the currency of the world
      woensdag 19 augustus 2009 @ 13:38:50 #224
    137690 Pizzahut
    Het Bora Bora Gebergte
    pi_72008668
    klein vraagje tussendoor, ik weet dat == een is gelijk aan betekend maar wat is .= en === eigenlijk?
    Disturbed Mind
    Het leven: Soms ben je de duif, soms het standbeeld.
      FOK!-Schrikkelbaas woensdag 19 augustus 2009 @ 13:44:11 #225
    1972 Swetsenegger
    Egocentrische Narcist
    pi_72008804
    quote:
    Op woensdag 19 augustus 2009 13:38 schreef Pizzahut het volgende:
    klein vraagje tussendoor, ik weet dat == een is gelijk aan betekend maar wat is .= en === eigenlijk?
    enkele = is toewijzen
    dubbele == is vergelijken
    3 dubbel === is vergelijken op inhoud EN type.
    enkele met .= is koppelen.

    Voorbeeld:
    1
    2
    3
    4
    <?php
    $var 
    3
    echo $var;
    ?>

    13


    1
    2
    3
    4
    5
    6
    7
    8
    <?php
    $var
    ="3"//OF $var = 3;
    if($var==3){
    echo 
    'true';
    }else{
    echo 
    'false';
    }
    ?>

    1true


    1
    2
    3
    4
    5
    6
    7
    8
    <?php
    $var 
    ="3"//$var=3; geeft 'true' terug.
    if($var===3){
    echo 
    'true';
    }else{
    echo 
    'false';
    }
    ?>

    1false


    1
    2
    3
    4
    5
    <?php
    $var 
    'foo';
    $var.= 'bar';
    echo 
    $var;
    ?>

    1foobar
    pi_72009043
    Ik kom even ergens niet uit. Voor een resereringssysteem gebruik ik een tabel met de volgende gegevens.

    id - kamer - vanaf - tot
    int - varchar - timestamp - timestamp

    nu heb ik in de database de volgende gegevens

    1
    2
    3
    4
    1  1  20-08-2009  24-08-2009
    2  2  21-09-2009  27-09-2009
    3  1  25-08-2009  31-08-2009
    4  3  18-08-2009  26-09-2009


    Nu wil ik controlleren of kamer 1 beschikbaar is tussen 18 en 19 aug, echter krijg ik dat niet goed voor elkaar

    Hoe doet men dit? ik probeerde het zo

    1
    2
    3
    4
    5
    6
    7
    8
    SELECT reserveringen.*,
    unix_timestamp(vanaf) AS vanaf,
    unix_timestamp(tot) AS tot
    FROM reserveringen
    WHERE kamer =  '" . $DB->escape($_POST['kamers']) . "'
    AND   (vanaf >= '" . $vanaf_tijd . "'
    OR     tot <= '" . $tot_tijd . "')
    LIMIT 1


    Wat doe ik fout?
    Just say hi!
      woensdag 19 augustus 2009 @ 14:36:43 #227
    63192 ursel
    "Het Is Hier Fantastisch!
    pi_72010295
    Kan je dan niet gewoon BETWEEN gebruiken?
    pi_72010775
    waarom gebruik je niet een DATE veld, en een $vanaf_datum en $tot_datum?
    Of zitten er eigenlijk datums in die tijd velden?

    WHERE vanaf >= $vanaf_datum zou gewoon moeten werken, wel zorgen dat je datum hetzelfde opgebouwd is als in je database, dus 2009-08-19 waarschijnlijk
    pi_72013390
    Ik krijg het ook met between niet echt voor elkaar, heb nu de velden wel omgezet naar idd gewoon date!!! :{

    1
    2
    3
    4
    5
    6
    7
    SELECT reserveringen.*,
    unix_timestamp(vanaf) AS vanaf,
    unix_timestamp(tot) AS tot
    FROM reserveringen
    WHERE kamer =  '2'
    AND '1250719200' BETWEEN vanaf AND tot
    LIMIT 1
    Just say hi!
      vrijdag 21 augustus 2009 @ 18:23:38 #230
    137690 Pizzahut
    Het Bora Bora Gebergte
    pi_72076929
    quote:
    Op woensdag 19 augustus 2009 13:44 schreef Swetsenegger het volgende:

    [..]

    enkele = is toewijzen
    dubbele == is vergelijken
    3 dubbel === is vergelijken op inhoud EN type.
    enkele met .= is koppelen.

    Voorbeeld:
    [ code verwijderd ]


    [ code verwijderd ]


    [ code verwijderd ]


    [ code verwijderd ]


    [ code verwijderd ]


    [ code verwijderd ]


    [ code verwijderd ]


    [ code verwijderd ]
    Zou jij mij een voorbeeld kunnen geven waarbij de uitkomst van === true is?
    Disturbed Mind
    Het leven: Soms ben je de duif, soms het standbeeld.
      vrijdag 21 augustus 2009 @ 18:27:04 #231
    75592 GlowMouse
    l'état, c'est moi
    pi_72077001
    quote:
    Op vrijdag 21 augustus 2009 18:23 schreef Pizzahut het volgende:

    [..]

    Zou jij mij een voorbeeld kunnen geven waarbij de uitkomst van === true is?
    1
    2
    3
    4
    5
    <?php
    $i 
    1;
    if(
    $i === '1') echo "$i === '1'";
    if(
    $i === 1) echo "$i === 1";
    ?>


    [ Bericht 0% gewijzigd door GlowMouse op 21-08-2009 18:28:00 (double quotes zijn mooier hier) ]
    eee7a201261dfdad9fdfe74277d27e68890cf0a220f41425870f2ca26e0521b0
      vrijdag 21 augustus 2009 @ 18:31:01 #232
    85514 ralfie
    !Yvan eht nioj
    pi_72077087
    quote:
    Op vrijdag 21 augustus 2009 18:23 schreef Pizzahut het volgende:

    [..]

    Zou jij mij een voorbeeld kunnen geven waarbij de uitkomst van === true is?
    1
    2
    3
    4
    5
    6
    7
    <?php
    $x
    =2
    if ($x===2)
    {
         
    //true;
    }
    ?>


    EDIT:damn, ben traag vandaag...
      vrijdag 21 augustus 2009 @ 20:04:43 #233
    67978 HenryHill
    Fake it 'till you make it
    pi_72079619
    quote:
    Op woensdag 19 augustus 2009 13:51 schreef Chandler het volgende:
    Ik kom even ergens niet uit. Voor een resereringssysteem gebruik ik een tabel met de volgende gegevens.

    id - kamer - vanaf - tot
    int - varchar - timestamp - timestamp

    nu heb ik in de database de volgende gegevens
    [ code verwijderd ]

    Nu wil ik controlleren of kamer 1 beschikbaar is tussen 18 en 19 aug, echter krijg ik dat niet goed voor elkaar

    Hoe doet men dit? ik probeerde het zo
    [ code verwijderd ]

    Wat doe ik fout?
    Even voor de duidelijkheid:
    * de 'tot'-dag van een reservering is de laatste dag dat een kamer bezet is (eigenlijk dus tot-en-met)?
    * je wilt weten of kamer 1 op zowel 18 als 19 augustus beschikbaar is?

    Dit zijn volgens mij alle mogelijke combinaties waarop 2 tijdsperioden elkaar kunnen overlappen:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
       X--X
    1.       RrrrrrrR

         X------X
    2.       RrrrrrrR

               X--X
    3.       RrrrrrrR

                 X------X
    4.       RrrrrrrR

                       X--X
    5.       RrrrrrrR

         X--------------X
    6.       RrrrrrrR

    Alleen in optie 1 en optie 5 overlappen X en R elkaar niet. Met andere woorden, je zoekt een reservering voor kamer 1 waarvoor geldt: NOT(van > 19 Aug OR tot < 18 Aug) . Als je minimaal 1 zo'n rij vindt, dan is de kamer (in ieder geval voor een deel van) die periode bezet.

    Oh, en een gratis tip van mij: sla geen datumranges op, maar een rij per dag waarop een kamer bezet is (elke datum-rij krijgt dan een FK-verwijzing naar de reservering zelf). Dit maakt je queries een heel stuk makkelijker.
    So this is how liberty dies... with thunderous applause.
    Truth? What's so great about the truth? Try lying for a change, it's the currency of the world
      vrijdag 21 augustus 2009 @ 20:31:06 #234
    137690 Pizzahut
    Het Bora Bora Gebergte
    pi_72080366
    Logisch natuurlijk 8)7 (@ die ===)

    Nu even iets anders, zo nu en dan werk ik met mod_rewrite, altijd handig voor SEO vriendelijke URL's enzo alleen hoe maak ik een dynamische?
    Ik heb nu bijv. www.domein.nl/index.php?page=1 veranderd naar www.domein.nl/blog
    alleen is bij mij ?page=7 mijn lees blog pagina (niet de front-page) en id=XX het blog item, dus index.php?page=7$id=5 kom je op een blog uit met reactie mogelijkheid etc. nu wil ik dit veranderen in bijv. www.domein.nl/blog/5 en waar de 5 is het blog item.

    op mijn blog pagine (page=7) haal ik met een $_GET het id uit de url: $_GET['id'], hoe kan ik dit omzetten in een mod_rewrite.

    heb nu:
    1
    2
    3
    RewriteEngine on
    RewriteRule ^blog$ index.php?page=1 (dit is mijn frontpage)
    RewriteRule ^blog/([0-9][0-9])$ index.php?page=7&id=$1 (mijn lees blog pagina)
    Disturbed Mind
    Het leven: Soms ben je de duif, soms het standbeeld.
    pi_72081296
    quote:
    Op vrijdag 21 augustus 2009 20:04 schreef HenryHill het volgende:

    Oh, en een gratis tip van mij: sla geen datumranges op, maar een rij per dag waarop een kamer bezet is (elke datum-rij krijgt dan een FK-verwijzing naar de reservering zelf). Dit maakt je queries een heel stuk makkelijker.
    De meeste hotels willen dat je voor 12 uur vertrekt op de vertrekdag, en je kunt pas je kamer op na 3 of 4 uur 's middags. Dan kun je dus een dubbele reservering hebben voor een dag (persoon A vertrekt en persoon B komt aan). Of je moet dat op een andere manier ondervangen.
      vrijdag 21 augustus 2009 @ 21:15:27 #236
    67978 HenryHill
    Fake it 'till you make it
    pi_72081600
    quote:
    Op vrijdag 21 augustus 2009 21:05 schreef Light het volgende:

    [..]

    De meeste hotels willen dat je voor 12 uur vertrekt op de vertrekdag, en je kunt pas je kamer op na 3 of 4 uur 's middags. Dan kun je dus een dubbele reservering hebben voor een dag (persoon A vertrekt en persoon B komt aan). Of je moet dat op een andere manier ondervangen.
    Een dag loopt van 12 uur 's middags tot 12 uur 's middags de volgende dag. M.a.w.: als je laatst opgeslagen dag 21 Aug is, dan heb je tot 22 Aug 12 uur om uit te checken. Opgelost.

    Ditzelfde principe was trouwens ook praktischer geweest bij het gebruik van datumranges, omdat boekingen dan niet 1 dag hoeven te overlappen.
    So this is how liberty dies... with thunderous applause.
    Truth? What's so great about the truth? Try lying for a change, it's the currency of the world
      zaterdag 22 augustus 2009 @ 10:19:10 #237
    37634 wobbel
    Da WoBBeL King
    pi_72087444
    Oke, dit is waarschijnlijk heel simpel....maargoed

    Ik heb deze SQL query

    1
    2
    3
    4
    5
    6
    7
    SELECT * 
    FROM G_Producten 
    WHERE Leverancier = '" . addslashes ( $_GET['supplier'] ) . "' 
    AND ProductTitel LIKE '%" . addslashes ( $_GET['data'] ) . "%' 
    OR IdProduct LIKE '%" . addslashes ( $_GET['data'] ) . "%' 
    ORDER BY ProductTitel ASC 
    LIMIT 40 


    alleen is het probleem dat hij van alles selecteert, ongeacht $_GET['supplier']....
    Dus ik denk dat m'n query niet zo goed is ofzo.... :P
    pi_72087491
    Ik denk dat je $_GET['data'] leeg is, waardoor je OR altijd true oplevert en alles dus terug komt.
    pi_72087508
    Je kunt beter mysql_real_escape_string() gebruiken ipv addslashes.

    En verder gaat het mis omdat AND een hogere proriteit heeft dan OR. Er staat dus eigenlijk:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    SELECT * 
    FROM G_Producten 
    WHERE (
        Leverancier = '" . addslashes ( $_GET['supplier'] ) . "' 
       AND ProductTitel LIKE '%" . addslashes ( $_GET['data'] ) . "%' 
    )
    OR IdProduct LIKE '%" . addslashes ( $_GET['data'] ) . "%' 
    ORDER BY ProductTitel ASC 
    LIMIT 40


    En je wilt:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    SELECT * 
    FROM G_Producten 
    WHERE Leverancier = '" . addslashes ( $_GET['supplier'] ) . "' 
    AND (
        ProductTitel LIKE '%" . addslashes ( $_GET['data'] ) . "%' 
        OR IdProduct LIKE '%" . addslashes ( $_GET['data'] ) . "%' 
    )
    ORDER BY ProductTitel ASC 
    LIMIT 40
    pi_72087522
    Je query wordt dus zo uitgevoerd:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    SELECT * 
    FROM G_Producten 
    WHERE 

      Leverancier = '" . addslashes ( $_GET['supplier'] ) . "' 
     AND 
      ProductTitel LIKE '%" . addslashes ( $_GET['data'] ) . "%' 
    )
    OR 
     IdProduct LIKE '%" . addslashes ( $_GET['data'] ) . "%' 
    ORDER BY ProductTitel ASC 
    LIMIT 40 


    Let op de haakjes die ik heb toegevoegd. Een AND heeft namelijk een hogere prioriteit dan een OR. Die haakjes die ik er nu met de hand in heb gezet, die zet MySQL er namelijk automatisch in.

    Ik vermoed dat je zoiets wil:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    SELECT * 
    FROM G_Producten 
    WHERE 
     Leverancier = '" . addslashes ( $_GET['supplier'] ) . "' 
    AND
    (
      ProductTitel LIKE '%" . addslashes ( $_GET['data'] ) . "%' 
     OR 
      IdProduct LIKE '%" . addslashes ( $_GET['data'] ) . "%' 
    )
    ORDER BY ProductTitel ASC 
    LIMIT 40 


    Dus dan moet je er zelf nog haakjes in zetten.
    pi_72087529
    Hoi Light .
      zaterdag 22 augustus 2009 @ 10:42:07 #242
    37634 wobbel
    Da WoBBeL King
    pi_72087691
    Ah oke, dan ga ik mij daar maar eens wat verder in het verdiepen.
    Ik wist dat het iets met die haakjes was (net zoals je dat in PHP zelf ook kan doen) maar ik weet niet helemaal hoe ze werken.

    Dank u
    pi_72103901
    quote:
    Op vrijdag 21 augustus 2009 20:31 schreef Pizzahut het volgende:
    Logisch natuurlijk 8)7 (@ die ===)
    Die === is vooral onmisbaar omdat het gedrag van == nogal idioot is:

    1
    2
    3
    4
    5
    6
    7
    8
    $a = (0 == 'foo');
    var_dump($a);// --> bool(true)
    $a = (0 === 'foo');
    var_dump($a);// --> bool(false)
    $a = (true == 'foo');
    var_dump($a);// --> bool(true)
    $a = (true === 'foo');
    var_dump($a);// --> bool(false)
    Wil iedereen die in telekinese gelooft nu mijn hand op steken?
    | Foto's van toen en nu | Icons | Whatpulse keyboard | .NET developer? |
      maandag 24 augustus 2009 @ 11:04:40 #245
    63192 ursel
    "Het Is Hier Fantastisch!
    pi_72107102
    Iemand een suggestie voor het volgende.

    Ik heb klaarblijkelijk een corrupte tabel in een van mijn databases op onze development omgeving (gelukkig maar). Ziet er naar uit dat dit wat ontwikkel werk van mijn collega is die nu op vakantie is.

    Maar zodra ik de tabel aanraak klapt de gehele MySQL service eruit. Ik kan niet eens de CHECK TABLE tablenaam uitvoeren.

    Iemand een idee hoe ik er voor kan zorgen dat ik deze tabel kan reparen? Wil hem namelijk nog niet verwijderen, omdat dan zijn werk teniet gaat.. Overigens weet ik ook niet of dat wel gaat lukken..
    pi_72108676
    quote:
    Op maandag 24 augustus 2009 07:36 schreef SuperRembo het volgende:

    [..]

    Die === is vooral onmisbaar omdat het gedrag van == nogal idioot is:
    [ code verwijderd ]
    Je kunt ook gewoon true == false aantonen op die manier
    pi_72111387
    Ik heb nog even een vraag; mijn vorige is net opgelost (Bedankt HenryHill).

    eregi komt in de toekomstige versie 6 van php te vervallen, hoe en met welke functie moet ik nu strings checken? ik wil bv een string checken of het alleen bestaat uit a-zA-Z0-9-_ en niets meer..

    Anyone?
    Just say hi!
      FOK!-Schrikkelbaas maandag 24 augustus 2009 @ 14:31:10 #248
    1972 Swetsenegger
    Egocentrische Narcist
    pi_72111467
    quote:
    Op maandag 24 augustus 2009 14:28 schreef Chandler het volgende:
    Ik heb nog even een vraag; mijn vorige is net opgelost (Bedankt HenryHill).

    eregi komt in de toekomstige versie 6 van php te vervallen, hoe en met welke functie moet ik nu strings checken? ik wil bv een string checken of het alleen bestaat uit a-zA-Z0-9-_ en niets meer..

    Anyone?
    preg_match?
      maandag 24 augustus 2009 @ 14:37:23 #249
    63192 ursel
    "Het Is Hier Fantastisch!
    pi_72111628
    Probleem opgelost.
    Heb gewoon die pleuris tabel gedropped.
    pi_72134034
    Ok simpele vraag hier: Ik wil een pagina includen die tekens als ë, á etc bevat. Echter komt hiervoor in de plaats dit dingetje: �

    Hoe krijg ik toch de accenten daarop, zonder rare alt-codes te hoeven gebruiken?

    En nog een vraagje:
    Ik wil een een variable switchen (case dingetje), maar ik moet er echt best veel invoeren. Kan dat met een array die je er in stopt?

    [ Bericht 27% gewijzigd door Flaccid op 25-08-2009 11:23:10 ]
    pi_72135261
    quote:
    Op dinsdag 25 augustus 2009 10:55 schreef Flaccid het volgende:
    Ok simpele vraag hier: Ik wil een pagina includen die tekens als ë, á etc bevat. Echter komt hiervoor in de plaats dit dingetje: �

    Hoe krijg ik toch de accenten daarop, zonder rare alt-codes te hoeven gebruiken?
    klooi eens met je meta info en UTF-8
    pi_72135592
    zorgen dat je document UTF-8 is
    pi_72137541
    Edit: Alles lukt
    Wajoo ik ben voor mijn doen goed bezig. Heb een simpel file based cms'je gemaakt, ondersteunt door Wyzz. Als je op save klikt, dan post ie de results in een popup zodat een refresh niet nodig is.

    1 klein dingetje tijdens die opslaanpopup: Nu is de pagina blank zolang hij de code aan t processen is. Hoe kan ik zorgen dat hij eerst een text + plaatje post en daarna pas gaat opslaan?

    [ Bericht 63% gewijzigd door Flaccid op 25-08-2009 13:22:56 ]
    pi_72139920
    Dat klinkt als een zeldzaam slecht idee....
    Waarom zou je wel een popup willen en geen refresh?
      dinsdag 25 augustus 2009 @ 15:21:22 #255
    267127 de_DDoSwachter
    F5 F5 F5 F5 F5 F5 F5 F5 F5 F5
    pi_72142243
    idd, daarvoor is nou juist ajax uitgevonden. En dan is het een koud kunstje om even een loader-animatie tussendoor te gooien.
    pi_72143102
    quote:
    Op dinsdag 25 augustus 2009 15:21 schreef de_DDoSwachter het volgende:
    idd, daarvoor is nou juist ajax uitgevonden. En dan is het een koud kunstje om even een loader-animatie tussendoor te gooien.
    Ik weet niet hoe ik met Ajax moet werken
    pi_72144105
    Is totaal niet moeilijk, standaard httprequest scriptje zoeken, http.readystate checken.
    Is wel alleen javascript trouwens.

    http://www.w3schools.com/ajax/ajax_httprequest.asp

    [ Bericht 35% gewijzigd door Darkomen op 25-08-2009 16:28:01 ]
      dinsdag 25 augustus 2009 @ 16:27:43 #258
    267127 de_DDoSwachter
    F5 F5 F5 F5 F5 F5 F5 F5 F5 F5
    pi_72144445
    quote:
    Op dinsdag 25 augustus 2009 16:18 schreef Darkomen het volgende:
    Is totaal niet moeilijk, standaard httprequest scriptje zoeken, http.readystate checken.
    Is wel alleen javascript trouwens.
    Weet jij een manier om zonder javascript én zonder refresh te controleren of de schrijfactie gereed is?
    pi_72144477
    Nope, lijkt me vrij moeilijk.
    Maar ik ben dan ook geen expert
    pi_72144552
    quote:
    Op dinsdag 25 augustus 2009 16:27 schreef de_DDoSwachter het volgende:

    [..]

    Weet jij een manier om zonder javascript én zonder refresh te controleren of de schrijfactie gereed is?
    Je kunt met PHP flush() aan het begin van je script alvast wat naar de browser sturen, maar dat werkt niet altijd.
    pi_72144832
    Heb ik ooit eens gebruikt in combinatie met een nieuwsbrief script en een erg trage smtp server.
      FOK!-Schrikkelbaas dinsdag 25 augustus 2009 @ 16:49:33 #262
    1972 Swetsenegger
    Egocentrische Narcist
    pi_72145105
    Een quick & dirty recursieve methode nadat mijn MS SQL server blijkbaar niet de functies ondertseunt die hij zou moeten ondersteunen (zie eerder in dit topic):

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    <?php
    function recursief($parent){
        
    $query="SELECT q.id,q.dateandtime,q.codeSupplier,q.codeSitecom,q.description,q.FOBunit,q.FOBpa,q.FOBpackage,q.FOBcasing,q.FOBtotal,q.typeCasing,q.typePackage,q.CE,q.FOC,q.Incoterm,q.MOQ,q.MSQ,q.leadtimeForcasted,q.leadtime,q.parent, q.child, s.SUPPLIER, p.type 
                        FROM quotations q
                        JOIN supplier s on (q.supplier=s.id)
                        JOIN product_range p on (q.productRange=p.id)
                        where q.parent="
    .$parent;
        
    $r=mssql_query($query);
        if(
    mssql_num_rows($r)!=0){
            
    $rij mssql_fetch_assoc($r);
            
    $row[] = $rij;
            
    //echo $rij['id']."<br />";
            
    recursief($rij['id']);
        }else{
            return 
    $row;
        }
    }
    ?>


    wordt aangeroepen met
    1print_r(recursief($_GET['historie']));


    Geeft niets terug? als ik de echo in de functie uncomment krijg ik wel keurig de juiste id's te zien.
    pi_72145243
    Moet je niet return recursief($rij['id']); op regel 13 doen?
    Je voert de functie wel uit maar returnt hem niet meer.
    pi_72145275
    @Swets: Dat klopt. Je moet $row ook nog meegeven met je recursieve aanroep. Nu maakt 'ie steeds een nieuwe $row aan.
    pi_72145384
    of dat
      FOK!-Schrikkelbaas dinsdag 25 augustus 2009 @ 17:00:43 #266
    1972 Swetsenegger
    Egocentrische Narcist
    pi_72145505
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    <?php
    function recursief($parent,$row){
        
    $query="SELECT q.id,q.dateandtime,q.codeSupplier,q.codeSitecom,q.description,q.FOBunit,q.FOBpa,q.FOBpackage,q.FOBcasing,q.FOBtotal,q.typeCasing,q.typePackage,q.CE,q.FOC,q.Incoterm,q.MOQ,q.MSQ,q.leadtimeForcasted,q.leadtime,q.parent, q.child, s.SUPPLIER, p.type 
                        FROM quotations q
                        JOIN supplier s on (q.supplier=s.id)
                        JOIN product_range p on (q.productRange=p.id)
                        where q.parent="
    .$parent;
        
    $r=mssql_query($query);
        if(
    mssql_num_rows($r)!=0){
            
    $rij mssql_fetch_assoc($r);
            
    $row[]= $rij;
            
    //echo $rij['id']."<br />";
            
    recursief($rij['id'],$row);
        }else{
         return(
    $row);
        }
    }
    ?>

    1print_r(recursief($_GET['historie'],''));

    Zelfde resultaat.
    pi_72148222
    1. Je recursie werkt niet o.a. doordat je $row niet by reference meegeeft.
    2. Recursie is hier niet nodig, kan makkelijk (en waarschijnlijk sneller) in een loop.
    3. Waarschijnlijk is het veel sneller als je eerst een lijst met id's ophaalt door alleen de quotations tabel te query-en. Daarna haal je al de gegevens op die je nodig hebt door te joinen tegen andere tabellen.
    4. Ik hoop dat je de inhoud van $parent goed controleerd.
    5. Wat een bende, zelfs voor een testscripje
    Wil iedereen die in telekinese gelooft nu mijn hand op steken?
    | Foto's van toen en nu | Icons | Whatpulse keyboard | .NET developer? |
      FOK!-Schrikkelbaas dinsdag 25 augustus 2009 @ 19:15:40 #268
    1972 Swetsenegger
    Egocentrische Narcist
    pi_72149489
    quote:
    Op dinsdag 25 augustus 2009 18:31 schreef SuperRembo het volgende:
    1. Je recursie werkt niet o.a. doordat je $row niet by reference meegeeft.
    Dat was al aangepast, maar werkt nog steeds niet.
    quote:
    2. Recursie is hier niet nodig, kan makkelijk (en waarschijnlijk sneller) in een loop.
    Hoe bedoel je?
    Anyway, er is zelfs een oplossing in MSSQL 2005 server maar die werkt niet, vandaar deze, zoals gezegd quick & dirty, oplossing
    quote:
    3. Waarschijnlijk is het veel sneller als je eerst een lijst met id's ophaalt door alleen de quotations tabel te query-en. Daarna haal je al de gegevens op die je nodig hebt door te joinen tegen andere tabellen.
    Mjah, het is geen performance app. Wordt door 1 persoon gebruikt om een lijstje bij te houden.
    quote:
    4. Ik hoop dat je de inhoud van $parent goed controleerd.
    Ja
    quote:
    5. Wat een bende, zelfs voor een testscripje
    Hoezo?
    pi_72150555
    quote:
    Op dinsdag 25 augustus 2009 19:15 schreef Swetsenegger het volgende:
    [..]

    Hoe bedoel je?
    [..]

    Zo iets:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    <?php
    function getQuotations($id)
    {
        
    $rows = array();
        
        while (
    true)
        {
            
    $sql "
                SELECT q.id, q.dateandtime 
                FROM quotations q
                WHERE q.parent = $id"
    ;

            
    $r mssql_query($sql);
            if (
    mssql_num_rows($r) == 0) break;

            
    $row mssql_fetch_assoc($r);
            
    $rows[]= $rows;
            
    $id $row['id'];
        }

        return 
    $rows;    
    }
    ?>
    Wil iedereen die in telekinese gelooft nu mijn hand op steken?
    | Foto's van toen en nu | Icons | Whatpulse keyboard | .NET developer? |
      FOK!-Schrikkelbaas dinsdag 25 augustus 2009 @ 19:51:14 #270
    1972 Swetsenegger
    Egocentrische Narcist
    pi_72150656
    quote:
    Op dinsdag 25 augustus 2009 19:48 schreef SuperRembo het volgende:

    [..]

    Zo iets:
    [ code verwijderd ]
    Ja dan heb ik de id's. Dan een query draaien waarin ik de rest er mee uittrek. Ik geef toe, dit is chiquer
    pi_72157612
    Ik zit nog steeds met een probleem dat een sessie-waarde niet netjes gelijk loopt de eerste keer. Het gaat om een form met een gdlib gegenereerde image met een string er in.

    Code bij form:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    <?php
    require ("php/XXX/secFunctions.php"); // hierin staan de functies 'randomString($length)' en 'createSecImage($width, $height, $percentage, $text)'

    session_start();
    session_register('sessionString');
     
    $_SESSION['sessionString'] = randomString(5);

    <
    form action=" echo $_SERVER["PHP_SELF"]; " method="POST">
    <
    img width="150" height="100" border="0" src="image.php?random='.microtime(true).'" alt=&#8221;secImage&#8221;> <br />
    <input size="50" maxlength="60" type="text" name="sec"><br />
     echo 
    "session:"Print_r ($_SESSION); 
    </
    form>
    ?>


    Image.php
    1
    2
    3
    4
    5
    <?php
    require ("php/XXX/secFunctions.php"); // hierin staan de functies 'randomString($length)' en 'createSecImage($width, $height, $percentage, $text)'
    session_start();
    createSecImage(150100100$_SESSION['sessionString']);
    ?>


    De waarden lopen synchroon, enkel de eerste keer heeft het secImage plaatje geen text. Na een F5 gaat het wel goed.
    ウプピエ 八十三 &lt;&lt; u-pu-pi-e hachi-ju-san, ik denk ik zeg het er maar ff bij :P
      FOK!-Schrikkelbaas woensdag 26 augustus 2009 @ 10:11:03 #272
    1972 Swetsenegger
    Egocentrische Narcist
    pi_72164355
    Dan geef je toch een header('location:.'$_SERVER['PHP_SELF'].'); na het instellen van de sessie.

    Ik heb wat raars:

    1
    2
    3
    <?php
    var_dump 
    ($array);
    ?>

    1array(4) { [0]=> int(13) [1]=> int(12) [2]=> int(11) [3]=> int(14) } 


    1
    2
    3
    4
    <?php
    $array
    =sort($array);
    var_dump($array);
    ?>

    1bool(true);


    :? Ik verwacht uit de laatste
    1array(4) { [0]=> int(14) [1]=> int(13) [2]=> int(12) [3]=> int(11) } 
      woensdag 26 augustus 2009 @ 10:29:29 #273
    63192 ursel
    "Het Is Hier Fantastisch!
    pi_72164790
    quote:
    Op woensdag 26 augustus 2009 10:11 schreef Swetsenegger het volgende:
    Dan geef je toch een header('location:.'$_SERVER['PHP_SELF'].'); na het instellen van de sessie.

    Ik heb wat raars:
    [ code verwijderd ]


    [ code verwijderd ]


    [ code verwijderd ]


    [ code verwijderd ]

    Ik verwacht uit de laatste
    [ code verwijderd ]
    Je moet de sort niet assignen

    Dus alleen sort($array);

    Je $array is nu namelijk een boolean, of het sorten gelukt is ja of nee.
      FOK!-Schrikkelbaas woensdag 26 augustus 2009 @ 10:51:04 #274
    1972 Swetsenegger
    Egocentrische Narcist
    pi_72165314
    quote:
    Op woensdag 26 augustus 2009 10:29 schreef ursel het volgende:

    [..]

    Je moet de sort niet assignen

    Dus alleen sort($array);

    Je $array is nu namelijk een boolean, of het sorten gelukt is ja of nee.
    Ah! Shit ja zie het nu, zo staat het ook gewoon in de manual
      FOK!-Schrikkelbaas woensdag 26 augustus 2009 @ 22:24:21 #275
    1972 Swetsenegger
    Egocentrische Narcist
    pi_72185164
    Hoe trek ik ook alweer het laatste ID uit een database (niet na een insert, maar gewoon sowieso)
      woensdag 26 augustus 2009 @ 22:28:37 #276
    75592 GlowMouse
    l'état, c'est moi
    pi_72185279
    SELECT MAX(id) FROM table

    Wel zorgen dat id een PK is of een index heeft.
    eee7a201261dfdad9fdfe74277d27e68890cf0a220f41425870f2ca26e0521b0
      FOK!-Schrikkelbaas woensdag 26 augustus 2009 @ 22:32:15 #277
    1972 Swetsenegger
    Egocentrische Narcist
    pi_72185388
    quote:
    Op woensdag 26 augustus 2009 22:28 schreef GlowMouse het volgende:
    SELECT MAX(id) FROM table

    Wel zorgen dat id een PK is of een index heeft.
    Die zocht ik! die mysql manual is zo onoverzichtelijk als de nete
    pi_72185510
    quote:
    Op woensdag 26 augustus 2009 22:32 schreef Swetsenegger het volgende:

    [..]

    Die zocht ik! die mysql manual is zo onoverzichtelijk als de nete
    Je moet gewoon weten wat je zoekt
    pi_72192164
    quote:
    Op woensdag 26 augustus 2009 22:28 schreef GlowMouse het volgende:
    SELECT MAX(id) FROM table

    Wel zorgen dat id een PK is of een index heeft.
    een pk?
      donderdag 27 augustus 2009 @ 09:00:51 #280
    63192 ursel
    "Het Is Hier Fantastisch!
    pi_72192225
    quote:
    Op donderdag 27 augustus 2009 08:56 schreef Darkomen het volgende:

    [..]

    een pk?
    primairy key
    pi_72192316
    d'oh!
    pi_72193922
    Mag ik commentaar op mijn class? wil nameljik leren en juist door te spelen leer ik dus.

    PS ik gebruik mijn eigen mysql class, deze werkt nog niet middels PDO maar komt ooit nog :P

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
    177
    178
    179
    180
    181
    182
    183
    184
    185
    186
    187
    188
    189
    190
    191
    192
    193
    194
    195
    196
    197
    198
    199
    200
    201
    202
    203
    204
    205
    206
    207
    <?php
    /*

    tabellen:

    tinyPoll
      id            (int)
      title         (varchar * 64)
      comment       (text)
      date_started  (date)
      date_ended    (date)
      answers       (tinyint)
      votes         (int)
      views         (int)
      
    tinyPollAnswers
       id           (int)
       pollID       (int)
       answer       (varchar * 64)
       votes        (int)

    tinyPollVotesIp
       id           (int)
       ip           (varchar * 64)
       hostname     (varchar * 128)
       
       unique ON ip & hostname

    tinyPollVotes
       ipID         (int)
       pollID       (int)
       answerID     (int)
       votedate     (date)
       
       unique on pollID & ipID
    */

    class tinyPoll
    {
        private 
    $db;
        var 
    $dateFormat '%y %M %d';
        
        function 
    __construct($db)
        {
            
    $this->db $db;
        }
        
        public function 
    loadPoll($id 0$ip ''$hostname '')
        {
            
    $poll false;

            
    $sql "SELECT tinyPoll.*
                    FROM   tinyPoll
                    WHERE UNIX_TIMESTAMP(date_started) < NOW() "
    ;
            if (
    $id != 0)
            {
                
    $sql .= " AND `id` = '" $this->db->escape($id) . "'";
            }
            else
            {
                
    $sql .= " ORDER BY `id` DESC";
            }
            
    $sql .= " LIMIT 1";
            
            
    $query $this->db->query($sql);
            
    $items $this->db->num_rows($query);
            
            if (
    $items == 1)
            {
                
    // load poll
                
    $poll $this->db->fetch_assoc($query);
                
    $poll['canvote'] = 1;
                
                
    // load answers
                
    $query $this->db->query("SELECT *
                                           FROM tinyPollAnswers
                                           WHERE pollID = '" 
    $this->db->escape($id) . "'
                                           LIMIT " 
    $poll['answers']);
                
    $items $this->db->num_rows($query);
                
                if (
    $items == $poll['answers'])
                {
                    for (
    $x 0$x $items$x++)
                    {
                        
    // save answers to array!
                        
    $tmp $this->db->fetch_assoc($query);
                        
                        
    $poll['ansers'][$tmp['id']] = array("answer" => $tmp['answer'],
                                                            
    "votes"  => $tmp['votes']);
                    }
                }
                
                
    // check for current user
                
    if ($ip != '' && $hostname != '')
                {
                    
    $query $this->db->query("SELECT tinyPollVotes.answerID
                                               FROM tinyPollVotes
                                               LEFT JOIN tinyPollVotesIp ON tinyPollVotesIp.id = tinyPollVotes.ipID
                                               WHERE tinyPollVotesIp.ip       = '" 
    $this->db->escape($ip) . "'
                                               AND   tinyPollVotesIp.hostname = '" 
    $this->db->escape($hostname) . "'
                                               AND   tinyPollVotes.pollID     = '" 
    $this->db->escape($id) . "'
                                               LIMIT 1"
    );
                    
    $items $this->db->num_rows($query);
                    
                    if (
    $items != 0)
                    {
                        
    // vote found, user can't vote!
                        
    $poll['canvote'] = 0;
                    }
                }
            }

            return 
    $poll;
        }
        
        public function 
    listPolls($start 0$num 10)
        {
            
    // list polls
            
            
    $start = !is_numeric($start) ? 0  $start;
            
    $num   = !is_numeric($num)   ? 10 $num;
            
    $arr   = array();
            
            
    // make query for loading polls
            
    $query $this->db->query("SELECT tinyPoll.id,
                                              tinyPoll.title,
                                              tinyPoll.comment,
                                              tinyPoll.votes,
                                              UNIX_TIMESTAMP(tinyPoll.date_ended) AS closedDate
                                       FROM tinyPoll
                                       WHERE UNIX_TIMESTAMP(date_started) < NOW()
                                       LIMIT " 
    $start ", " $num);
            
    $items $this->db->num_rows($query);
            
            if (
    $items 0)
            {
                
    // loop number of found polls
                
    for ($x 0$x $items$x++)
                {
                    
    $tmp $this->db->fetch_assoc($query);

                    
    // save poll settings to array
                    
    $arr[$tmp['id']] = array("title"   => $tmp['title'],
                                             
    "comment" => $tmp['comment'],
                                             
    "votes"   => $tmp['votes'],
                                             
    "closed"  => ($tmp['closedDate']>time()) ? 1);
                }
            }

            
    // return polls array
            
    return $arr;
        }
        
        public function 
    votePoll($pollID$answerID$ip$hostname)
        {
            
    // check if poll exists and is open
            
    $query $this->db->query("SELECT tinyPoll.id
                                       FROM tinyPoll
                                       LEFT JOIN tinyPollAnswers ON tinyPollAnswers.pollID = tinyPoll.id
                                       WHERE tinyPoll.id                = '" 
    $this->db->escape($pollID) . "'
                                       AND   tinyPollAnswers.id          = '" 
    $this->db->escape($answerID) . "'
                                       AND   UNIX_TIMESTAMP(date_ended) >  NOW()
                                       LIMIT 1"
    );
            
    $items $this->db->num_rows($query);
            
            
    // vote not found?
            
    if ($items == 0)
            {
                
    // insert vote IP into database
                
    $query $this->db->query("INSERT INTO `tinyPollVotesIp` (`id`, `ip`, `hostname`)
                                           VALUES ('',
                                                   '" 
    $this->db->escape($ip) . "',
                                                   '" 
    $this->db->escape($hostname) . "')
                                           ON DUPLICATE KEY UPDATE id = LAST_INSERT_ID(id);"
    );
                
    $ipID $this->db->insert_id();

                
    // try to insert the vote in the poll table, if exists, return same ID
                
    $query $this->db->query("INSERT INTO `tinyPollVotes` (`ipID`, `pollID`, `answerID`, `votedate`)
                                           VALUES ('" 
    $this->db->escape($ipID) . "',
                                                   '" 
    $this->db->escape($pollID) . "',
                                                   '" 
    $this->db->escape($answerID) . "',
                                                   NOW())
                                           ON DUPLICATE KEY UPDATE ipID = LAST_INSERT_ID(ipID);"
    );
                                 
                if (
    $this->db->affected_rows())
                {
                    
    // update poll
                    
    $this->db->query("UPDATE tinyPoll
                                      SET votes = votes +1
                                      WHERE id  = '" 
    $this->db->escape($pollID) . "'
                                      LIMIT 1"
    );

                    
    // update poll answers
                    
    $this->db->query("UPDATE tinyPollAnswers
                                      SET votes = votes +1
                                      WHERE id  = '" 
    $this->db->escape($answerID) . "'
                                      AND   pollID = '" 
    $this->db->escape($pollID) . "'
                                      LIMIT 1"
    );

                    return 
    true;
                }
            }

            return 
    false;
        }
    }
    ?>
    Just say hi!
    pi_72194214
    Ik heb nog een kleine update gedaan maar kan deze ivm fok niet toevoegen heeft alleen te maken met date_format
    Just say hi!
      FOK!-Schrikkelbaas donderdag 27 augustus 2009 @ 11:38:56 #284
    1972 Swetsenegger
    Egocentrische Narcist
    pi_72195458
    Ik vind het wat lang voor een simpel polletje maar ik heb er nog niet echt inhoudelijk naar gekeken


    Ik heb een vraagje. Ik heb een site die wat tweets naar twitter verstuurt. En i9n die tweets staat een euro teken. Nu doe ik dat met & euro; zodat ik een crossplatform euroteken krijg. Maar.... voor twitter zijn ook allerlei desktop applicaties en die zijn in de regel NIET webbased. En in plaats van een mooi teken zie die nu dus de html entity.

    Zend dan gewoon het euroteken daadwerkelijk mee, maar dan heb ik het probleem dat een ¤ er op bv OSX of Linux er als æ ofzo uitziet.

    Hoe krijg ik een cross platform, cross applicatie euroteken?
    pi_72195885
    @Swetsenegger: Lang? eerder heel kort zul je bedoelen? Het werkt niet met cookies maar geeft wel gelijk de juiste benodigde gegevens door zoals of de gebruiker reeds gestemd heeft of niet. Ook is het vriendelijk voor databases omdat ik amper duplicate data opsla.

    Maar zie graag inhoudelijke comments op het scripten zelf.
    Just say hi!
      FOK!-Schrikkelbaas donderdag 27 augustus 2009 @ 12:06:02 #286
    1972 Swetsenegger
    Egocentrische Narcist
    pi_72196185
    quote:
    Op donderdag 27 augustus 2009 11:55 schreef Chandler het volgende:
    @Swetsenegger: Lang? eerder heel kort zul je bedoelen?
    Nou mijn poll script is 70 regels lang. Dit is bijna 2 keer zo lang Maar ik heb niet inhoudelijk naar verschillen gekeken.
    pi_72196340
    PDO is zo overrated
    pi_72196590
    quote:
    Op donderdag 27 augustus 2009 12:12 schreef Moozzie het volgende:
    PDO is zo overrated
    Precies mijn gedachte, alsof je je eigen website steeds gaat verhuizen qua database types al is het wel handig als je een script schrijft voor 100.000.000 mensen zoals wordpress oid...

    @Swets; 70 regels? mag ik die eens zien?
    Just say hi!
    pi_72196706
    quote:
    Op donderdag 27 augustus 2009 12:21 schreef Chandler het volgende:

    [..]

    Precies mijn gedachte, alsof je je eigen website steeds gaat verhuizen qua database types al is het wel handig als je een script schrijft voor 100.000.000 mensen zoals wordpress oid...

    @Swets; 70 regels? mag ik die eens zien?
    Ookal verhuis je het wel ben je alsnog screwed want je queries zullen toch niet meer werken
      FOK!-Schrikkelbaas donderdag 27 augustus 2009 @ 12:36:55 #290
    1972 Swetsenegger
    Egocentrische Narcist
    pi_72196984
    Ik loog, 110 regels met afhandeling.
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    <?php
    function show_poll($value){
          if (
    $value==''){
                
    $query="SELECT Poll_Id FROM Polls WHERE Archive=0 ORDER BY Poll_id DESC LIMIT 1";
                
    $result=mysql_query($query);
                
    $row=mysql_fetch_assoc($result);
                
    $value=$row['Poll_Id'];
          }
          
    $query="SELECT COUNT(*)as aantal 
                  FROM Poll_Answers a 
                  JOIN Polls as p ON(a.Poll=p.Poll_id)
                  WHERE Poll="
    .$value." AND (ip='".$_SERVER['REMOTE_ADDR']."' OR archive=1)";
          
    $result=mysql_query($query);
          
    $row=mysql_fetch_assoc($result);
          if(
    $row['aantal']!=0){
                return 
    display_poll_results($value);
          }else{
                return 
    display_poll_questions($value);
          }
    }
             
    function 
    display_poll_results($poll){
          
    $query="SELECT Poll_Name FROM Polls WHERE Poll_Id=".$poll
        
    $result=mysql_query($query); 
        
    $row_name mysql_fetch_assoc($result); 
        
    $query="SELECT COUNT(*) as votes FROM Poll_Answers WHERE Poll=".$poll
        
    $result=mysql_query($query); 
        
    $row_votes mysql_fetch_assoc($result);
        
    $query="SELECT q.Question as name, q.Poll_Question_Id as question, COUNT(a.Question) as vote 
                FROM Poll_Questions q 
                LEFT JOIN Poll_Answers a ON(q.Poll_Question_Id=a.Question) 
                WHERE q.Poll="
    .$poll.
                GROUP BY q.Question 
                ORDER BY q.Poll_Question_Id ASC"

        
    $result=mysql_query($query);
        
        
    $display "<span class=\"highlight\">Poll - ".$row_name['Poll_Name']." - "$row_votes['votes']." stemmen&nbsp;-&nbsp;Dank je wel voor je stem!</span>";
        if (!empty(
    $error)){
            
    $display.="&nbsp;".$error."\r\n<hr />\r\n";
        }else{
            
    $display.="\r\n<hr />\r\n";
        }
        
    $display.= "<table style=\"width:95%;\">\r\n";

        while (
    $row mysql_fetch_assoc($result)){
      
            
    $background[$row['question']]=round(200-($row['vote']/($row_votes['votes']/100)*2)); //200 en *2 ivm 200px brede bar ipv 100
              
    $percentage[$row['question']]=round($row['vote']/($row_votes['votes']/100));
            
    $votes[$row['question']]=$row['vote'];
            
    $display.= "<tr><td class=\"highlight2\">-&nbsp;".$row['name']."</td>\r\n";
            
    $display.= "<td><div style=\"width:200px;height:20px;border:solid 1px rgb(29,40,99);background-image:url(image/progress_front.jpg);background-repeat:no-repeat;background-position:-";
            if(
    $background[$row['question']]===NULL){
                  
    $display .="200"
            }else{ 
                  
    $display .= $background[$row['question']]; 
            }
            
    $display .="px 0;text-align:center;line-height:20px;color:white;\">";
            if(
    $percentage[$row['question']]!=''){ 
                  
    $display .= $percentage[$row['question']];
            }else{ 
                  
    $display .= "0";
            }
            
    $display .="%</div></td>\r\n<td>";
            if(
    $votes[$row['question']]===NULL){
                  
    $display .="0";
            }else{ 
                  
    $display .= $votes[$row['question']]; 
            }
            
    $display .=" stemmen</td></tr>\r\n";
        }
        
    $display.= "</table>\r\n";
        return 
    $display;
    }

    function 
    display_poll_questions($poll){
        
    $query="SELECT Poll_Name FROM Polls WHERE Poll_Id=".$poll
        
    $result=mysql_query($query); 
        
    $row_name mysql_fetch_assoc($result);
      
    $query="SELECT * FROM Poll_Questions WHERE Poll=".$poll." ORDER BY Poll_Question_Id ASC";
      
    $result=mysql_query($query);
      
    $display "<span class=\"highlight\">Poll - ".$row_name['Poll_Name']."</span>\r\n<hr />\r\n";
        
    $display.= "<form style=\"margin:0\" action=\"".$_SERVER['PHP_SELF']."\" method=\"post\">\r\n";
        
        while (
    $row mysql_fetch_assoc($result)){
            
    $display.= "<input type=\"radio\" name=\"poll_question\" value=\"".$row['Poll_Question_Id']."\" id=\"label".$row['Poll_Question_Id']."\" />&nbsp;<label class=\"highlight2\" for=\"label".$row['Poll_Question_Id']."\">".$row['Question']."</label><br />\r\n";
        }
        
    $display.= "<input type=\"hidden\" name=\"poll\" value=\"".$poll."\" />\r\n";
        
    $display.= "<p class=\"highlight2\" style=\"line-height:22px;height:22px;\">Type het getal over&nbsp;:&nbsp;<img style=\"border:solid 1px rgb(09,20,79);vertical-align:middle;\" src=\"/system/php_captcha.php\" alt=\"captcha\" />&nbsp;<input class=\"input\" style=\"height:20px;vertical-align:middle;font-size:18px;\" type=\"text\" name=\"captcha\" id=\"captcha\" size=\"5\" maxlength=\"5\" /></p>\r\n";
        
    $display.= "<p><input type=\"submit\" name=\"submit\" value=\"Stem!\" /></p></form>";
        return 
    $display;
    }
    ?>

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    <?php
    if($_SERVER['REQUEST_METHOD']=='POST'){
        
    //Captcha
        
    $key=substr($_SESSION['key'],0,5);
        if(
    $_POST['captcha']!=$key){
              die(
    'vergeet het getal niet over te tikken!');
        }
        If(
    is_numeric($_POST['poll']) && is_numeric($_POST['poll_question'])){
            
    $query="INSERT INTO Poll_Answers
                    (Question,Poll,ip)
                     VALUES("
    .$_POST['poll_question'].",".$_POST['poll'].",'".$_SERVER['REMOTE_ADDR']."')";
            if(
    $result=mysql_query($query)){
                
    header('location:'.$_SERVER['PHP_SELF']);
            }else{
                
    $error='&nbsp;-&nbsp;U heeft al gestemd';
            }
        }else{
            die(
    'Zonder keuze kan je niet stemmen');
        }
    }
    ?>
    pi_72197168
    Oh, wat ranzig al die html in je script
      FOK!-Schrikkelbaas donderdag 27 augustus 2009 @ 12:50:15 #292
    1972 Swetsenegger
    Egocentrische Narcist
    pi_72197320
    quote:
    Op donderdag 27 augustus 2009 12:44 schreef Xcalibur het volgende:
    Oh, wat ranzig al die html in je script
    Mjah ik ben niet van de template engines.
      FOK!-Schrikkelbaas donderdag 27 augustus 2009 @ 12:50:49 #293
    1972 Swetsenegger
    Egocentrische Narcist
    pi_72197340
    quote:
    Op donderdag 27 augustus 2009 11:38 schreef Swetsenegger het volgende:
    Ik vind het wat lang voor een simpel polletje maar ik heb er nog niet echt inhoudelijk naar gekeken


    Ik heb een vraagje. Ik heb een site die wat tweets naar twitter verstuurt. En i9n die tweets staat een euro teken. Nu doe ik dat met & euro; zodat ik een crossplatform euroteken krijg. Maar.... voor twitter zijn ook allerlei desktop applicaties en die zijn in de regel NIET webbased. En in plaats van een mooi teken zie die nu dus de html entity.

    Zend dan gewoon het euroteken daadwerkelijk mee, maar dan heb ik het probleem dat een ¤ er op bv OSX of Linux er als æ ofzo uitziet.

    Hoe krijg ik een cross platform, cross applicatie euroteken?
    iemand?
      donderdag 27 augustus 2009 @ 12:52:41 #294
    75592 GlowMouse
    l'état, c'est moi
    pi_72197393
    quote:
    Op donderdag 27 augustus 2009 12:50 schreef Swetsenegger het volgende:

    [..]

    Mjah ik ben niet van de template engines.
    Ik ook niet, maar het minste wat je kunt doen is je echo's helemaal na je php-code zetten.
    eee7a201261dfdad9fdfe74277d27e68890cf0a220f41425870f2ca26e0521b0
    pi_72197425
    Ik denk toch dat ik moet zeggen dat de extra regels die Chandler gebruikt vooral bestaan uit dingen die de leesbaarheid ten goede komen: witregels.

    Verder plaatst Chandler ook de { op een eigen regel, terwijl Swetsenegger die op de vorige regel aan het einde laat staan. Al met al dus weinig verschil.
    pi_72197431
    quote:
    Op donderdag 27 augustus 2009 12:50 schreef Swetsenegger het volgende:

    [..]

    Mjah ik ben niet van de template engines.
    Ik ben gek op Smarty
      FOK!-Schrikkelbaas donderdag 27 augustus 2009 @ 12:56:02 #297
    1972 Swetsenegger
    Egocentrische Narcist
    pi_72197490
    quote:
    Op donderdag 27 augustus 2009 12:52 schreef GlowMouse het volgende:

    [..]

    Ik ook niet, maar het minste wat je kunt doen is je echo's helemaal na je php-code zetten.
    eh, ik zet alle output in een var en return die.
    quote:
    Op donderdag 27 augustus 2009 12:53 schreef HuHu het volgende:
    Ik denk toch dat ik moet zeggen dat de extra regels die Chandler gebruikt vooral bestaan uit dingen die de leesbaarheid ten goede komen: witregels.

    Verder plaatst Chandler ook de { op een eigen regel, terwijl Swetsenegger die op de vorige regel aan het einde laat staan. Al met al dus weinig verschil.
    Mjah, in zend staat het bij mij keurig met wit regels en idented. Blijkbaar staan de tabs hier anders ingesteld En dat scheelt zeker geen 60 regels.
    pi_72197518
    quote:
    Op donderdag 27 augustus 2009 12:56 schreef Swetsenegger het volgende:

    [..]

    eh, ik zet alle output in een var en return die.
    [..]

    Mjah, in zend staat het bij mij keurig met wit regels en idented. Blijkbaar staan de tabs hier anders ingesteld En dat scheelt zeker geen 60 regels.
    Je vergeet dat hij 40 regels database comment heeft bovenaan zijn script.
    Anyways shut it
      donderdag 27 augustus 2009 @ 12:58:20 #299
    75592 GlowMouse
    l'état, c'est moi
    pi_72197546
    quote:
    Op donderdag 27 augustus 2009 12:56 schreef Swetsenegger het volgende:

    [..]

    eh, ik zet alle output in een var en return die.
    Beter: je returnt de data die je nodig hebt voor de output. Serieus, als ik zo'n script tegenkom als het jouwe dan begin ik liever opnieuw.

    En Chandler: voorkom toepassen van functies op kolomnamen omdat dat niet indexeerbaar is.
    eee7a201261dfdad9fdfe74277d27e68890cf0a220f41425870f2ca26e0521b0
      FOK!-Schrikkelbaas donderdag 27 augustus 2009 @ 12:58:28 #300
    1972 Swetsenegger
    Egocentrische Narcist
    pi_72197553
    quote:
    Op donderdag 27 augustus 2009 12:57 schreef Moozzie het volgende:

    [..]

    Je vergeet dat hij 40 regels database comment heeft bovenaan zijn script.
    35
    quote:
    Anyways shut it
    eh sorry
      FOK!-Schrikkelbaas donderdag 27 augustus 2009 @ 12:59:10 #301
    1972 Swetsenegger
    Egocentrische Narcist
    pi_72197569
    quote:
    Op donderdag 27 augustus 2009 12:58 schreef GlowMouse het volgende:

    [..]

    Beter: je returnt de data die je nodig hebt voor de output. Serieus, als ik zo'n script tegenkom als het jouwe dan begin ik liever opnieuw.
    Dan begin je opnieuw
      donderdag 27 augustus 2009 @ 13:00:37 #302
    75592 GlowMouse
    l'état, c'est moi
    pi_72197603
    Ha ha, nu moet jij een nieuwe aanmaken.
    eee7a201261dfdad9fdfe74277d27e68890cf0a220f41425870f2ca26e0521b0
      donderdag 27 augustus 2009 @ 13:02:42 #303
    75592 GlowMouse
    l'état, c'est moi
    pi_72197672
    eee7a201261dfdad9fdfe74277d27e68890cf0a220f41425870f2ca26e0521b0
    abonnement bol.com Unibet Coolblue
    Forum Opties
    Forumhop:
    Hop naar:
    (afkorting, bv 'KLB')