Likes Likes:  0
Resultaten 1 tot 5 van de 5
Geen
  1. #1
    bjorri
    loop wordt slechts eenmaal doorlopen
    Gast
    n/a Berichten
    Berichten zijn liked



    Thread Starter

    loop wordt slechts eenmaal doorlopen

    Hoi groep,

    PHP 5, MySQL 5, apache op een windoos2k

    In een script gebruik ik de volgende constructie:

    <code>
    while ($i <= $rows){
    $mensen=mysql_fetch_array($result);
    $j=$mensen[id];
    $check="check" . $j;
    if ($_POST[$check]){
    echo "<br>$i - $j - $check - $_POST[$check]";
    }
    $i++;
    }
    </code>

    input:
    <tr>
    <td><input type='checkbox' name='check8' value='ja' checked>
    <tr>
    <td><input type='checkbox' name='check13' value='ja' checked>
    enz....

    output:
    6 - 8 - check8 - ja
    en verder nix.

    De vraag:
    Helaas wordt de if loop slechts 1 maal herkend, alleen de eerste keer
    dat aan de voorwaarde wordt voldaan. De echo-regel boven de if (zonder
    de $_POST) levert ook het verwachte resultaat op.

    Is het mogelijk om een variabele in de $_POST te zetten? kennelijk wel
    dus maar waar gaat het dan mis?

    In ieder geval alvast bedankt voor de aandacht.

    bjorri.

  2. #2
    bjorri
    loop wordt slechts eenmaal doorlopen
    Gast
    n/a Berichten
    Berichten zijn liked



    Thread Starter

    Opgelost Re: loop wordt slechts eenmaal doorlopen

    bjorri wrote:
    > Hoi groep,
    >
    > Is het mogelijk om een variabele in de $_POST te zetten? kennelijk wel
    > dus maar waar gaat het dan mis?
    >
    > In ieder geval alvast bedankt voor de aandacht.
    >
    > bjorri.


    In zoverre opgelost dat het nu wel werkt als verwacht, de query die ik
    er hier uitgeknipt heb zit kennelijk in de weg. Ga ik eerst zelf op
    studeren natuurlijk.

    Bedankt,

    bjorri.

  3. #3
    Rik
    loop wordt slechts eenmaal doorlopen
    Gast
    n/a Berichten
    Berichten zijn liked



    Thread Starter

    Re: Opgelost Re: loop wordt slechts eenmaal doorlopen

    bjorri <no@nl.invalid> wrote:

    > bjorri wrote:
    >> Hoi groep,
    >> Is het mogelijk om een variabele in de $_POST te zetten? kennelijk wel
    >> dus maar waar gaat het dan mis?
    >> In ieder geval alvast bedankt voor de aandacht.
    >> bjorri.

    >
    > In zoverre opgelost dat het nu wel werkt als verwacht, de query die ik
    > er hier uitgeknipt heb zit kennelijk in de weg. Ga ik eerst zelf op
    > studeren natuurlijk.


    Joah, mijn eerste vraag was dan ook waar $rows vandaan komt.
    mysql_num_rows() of wat?

    Verder wat tips:
    - Als je als naam van de inputs 'check[8]' en 'check[13]' gebruikt in
    plaats van 'check8' & 'check13' maakt php een mooie array voor je:

    _POST Array{
    check => Array{
    8 => 'ja',
    13 => 'ja'
    )
    )

    Dat maakt het leven server-side weer wat makkelijker bij het formulier
    verwerken. Bijvoorbeeld alle rijen ophalen die geselecteerd zijn:

    $ids = array_keys($_POST['check']);
    $ids = array_map('intval',$ids); //voor de veiligheid
    $query = 'SELECT * FROM `table` WHERE `id` IN ('.implode(',',$ids).')';

    Verder zou ik dit nooit doen:
    > $j=$mensen[id];


    Dit _moet_ toch echt $j=$mensen['id']; zijn, de enige reden waarom het
    goed gaat is dat PHP je fout zo goed als het kan probeert te herstellen.
    Zou je echter om wat voor reden dan ook een define('id',0); (of wat voor
    waarde dan ook ergens ervoor hebben staan dan loopt je code in de soep.
    --
    Rik Wasmus

  4. #4
    bjorri
    loop wordt slechts eenmaal doorlopen
    Gast
    n/a Berichten
    Berichten zijn liked



    Thread Starter

    Re: Opgelost Re: loop wordt slechts eenmaal doorlopen

    Rik wrote:
    > bjorri <no@nl.invalid> wrote:
    >
    >> bjorri wrote:
    >>> Hoi groep,
    >>> Is het mogelijk om een variabele in de $_POST te zetten? kennelijk
    >>> wel dus maar waar gaat het dan mis?
    >>> In ieder geval alvast bedankt voor de aandacht.
    >>> bjorri.

    >>
    >> In zoverre opgelost dat het nu wel werkt als verwacht, de query die ik
    >> er hier uitgeknipt heb zit kennelijk in de weg. Ga ik eerst zelf op
    >> studeren natuurlijk.

    >
    > Joah, mijn eerste vraag was dan ook waar $rows vandaan komt.
    > mysql_num_rows() of wat?
    >

    Klopt helemaal, ik probeerde zo veel mogelijk weg te laten om tot de
    kern te komen.

    > Verder wat tips:
    > - Als je als naam van de inputs 'check[8]' en 'check[13]' gebruikt in
    > plaats van 'check8' & 'check13' maakt php een mooie array voor je:
    >
    > _POST Array{
    > check => Array{
    > 8 => 'ja',
    > 13 => 'ja'
    > )
    > )
    >
    > Dat maakt het leven server-side weer wat makkelijker bij het formulier
    > verwerken. Bijvoorbeeld alle rijen ophalen die geselecteerd zijn:
    >
    > $ids = array_keys($_POST['check']);
    > $ids = array_map('intval',$ids); //voor de veiligheid
    > $query = 'SELECT * FROM `table` WHERE `id` IN ('.implode(',',$ids).')';
    >
    > Verder zou ik dit nooit doen:
    >> $j=$mensen[id];

    >
    > Dit _moet_ toch echt $j=$mensen['id']; zijn, de enige reden waarom het
    > goed gaat is dat PHP je fout zo goed als het kan probeert te herstellen.
    > Zou je echter om wat voor reden dan ook een define('id',0); (of wat voor
    > waarde dan ook ergens ervoor hebben staan dan loopt je code in de soep.
    > --Rik Wasmus


    Jouw(?) vorige advies (paar maanden terug) om overal `` en '' te
    gebruiken heb ik zeer ter harte genomen, ik vind het nu zelfs veel
    duidelijker staan. Dat ik hier weer de zelfde fout maak komt dus omdat
    ik eigenlijk nog nix weet van arrays.

    Toch blijft het vreemd dat als ik de query *in die loop* laat uitvoeren
    dat het dan niet werkt en met //voor het uitvoeren van de query werkt
    het wel naar verwachting. Is het een vreemde constructie om een query in
    een loop te zetten en dus mogelijk tientallen keren achter elkaar te
    laten draaien?

    Eerst maar eens jouw tips gaan verwerken en zien wat er dan van komt. En
    flink wat lezen natuurlijk over arrays.

    Hartelijk dank weer!

    bjorri.

  5. #5
    bjorri
    loop wordt slechts eenmaal doorlopen
    Gast
    n/a Berichten
    Berichten zijn liked



    Thread Starter

    Re: Opgelost Re: loop wordt slechts eenmaal doorlopen

    bjorri wrote:
    > Rik wrote:

    <goede adviezen>
    > Is het een vreemde constructie om een query in
    > een loop te zetten en dus mogelijk tientallen keren achter elkaar te
    > laten draaien?
    >
    > Eerst maar eens jouw tips gaan verwerken en zien wat er dan van komt. En
    > flink wat lezen natuurlijk over arrays.
    >
    > Hartelijk dank weer!
    >
    > bjorri.


    Rik,

    Door mezelf deze vraag te stellen tijdens het bestuderen van je adviezen
    ben ik op het juiste spoor gezet, met als gevolg een veel nettere
    oplossing dan de eerdere versie.

    Geweldig dus, ik heb nog heel veel te leren :-)

    Bedankt, (ook namens het goede doel),

    bjorri.

Webhostingtalk.nl

Contact

  • Rokin 113-115
  • 1012 KP, Amsterdam
  • Nederland
  • Contact
© Copyright 2001-2026 Webhostingtalk.nl.
Web Statistics