[PHP] geneste while loop wil niet

Pagina: 1
Acties:
  • 113 views sinds 30-01-2008
  • Reageer

  • surfdude
  • Registratie: Maart 2000
  • Laatst online: 16-06 22:34
Ik probeer met een geneste while loop de waarden uit 2 arrayŽs met elkaar te vergelijken:
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
<?
// Put current usergroups in a string
$user_group_ids = explode(",", $user_group_ids);
// Put current doc groups in a string
$doc_group_ids = explode(",", $db->f("groups"));
// make an array from the string
while (list(,$doc_group) = each($doc_group_ids)) {
   echo "vergelijk doc_group: ".$doc_group. "&amp;nbsp;&amp;nbsp;&amp;nbsp;";
   while (list(,$user_group) = each($user_group_ids)) {
      echo " met user_group: ".$user_group. "<br>";
      if($doc_group == $user_group) {
          echo "waar!<p>";
?>

Zo beter? Het staat ook beter in mijn editor hoor.


Volgens mij gooit ie eerst alle elementen van de 1e while eruit en dan gaat ie met de laatste door naar de 2e while. Hoe komt dit (door de list()?)? En hoe los ik het op?

ps. Ik zie altijd van die mooie colorized code hier, hoe gaat dat?

Het kan altijd mooier en beter...


  • D2k
  • Registratie: Januari 2001
  • Laatst online: 31-08 10:19

D2k

[.php] en [./php]

zonder .

Doet iets met Cloud (MS/IBM)


  • ACM
  • Registratie: Januari 2000
  • Niet online

ACM

Software Architect

Werkt hier

Op maandag 17 september 2001 16:50 schreef surfude het volgende:
ps. Ik zie altijd van die mooie colorized code hier, hoe gaat dat?
Dmv de [php]tag...
En dat dan afsluiten met een [ /php] zonder spatie ;)


Maar als je je code ook es een betere structuur geeft, zie je misschien zelf al waar het mis gaat?

  • D2k
  • Registratie: Januari 2001
  • Laatst online: 31-08 10:19

D2k

Op maandag 17 september 2001 16:54 schreef ACM het volgende:

[..]
Maar als je je code ook es een betere structuur geeft, zie je misschien zelf al waar het mis gaat?
zie daarvoor ook mijn stukje hier
[topic=152278/1/25]

Doet iets met Cloud (MS/IBM)


  • D2k
  • Registratie: Januari 2001
  • Laatst online: 31-08 10:19

D2k

PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<?
// Put current usergroups in a string
$user_group_ids = explode(",", $user_group_ids);
// Put current doc groups in a string
$doc_group_ids = explode(",", $db->f("groups"));
// make an array from the string
while (list(,$doc_group) = each($doc_group_ids)) 
{
     echo "vergelijk    doc_group: ".$doc_group. "&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;";

     while (list(,$user_group) = each($user_group_ids)) 
     {
           echo " met user_group: ".$user_group. "<br>";
           if($doc_group == $user_group) 
           {
                echo "waar!<p>";
?>

ik mis wel het nodige

Doet iets met Cloud (MS/IBM)


  • Grum
  • Registratie: Juni 2001
  • Niet online
* Grum gilt zachtjes '}' :P

  • D2k
  • Registratie: Januari 2001
  • Laatst online: 31-08 10:19

D2k

Op maandag 17 september 2001 16:58 schreef Grum_ het volgende:
* D2k gilt zachtjes '}' :P
schreeuwen is toegestaan :)

Doet iets met Cloud (MS/IBM)


  • surfdude
  • Registratie: Maart 2000
  • Laatst online: 16-06 22:34
na die if() op het eind komt er nog meer (het geeft geen error oid. Het functioneert alleen niet... ;)).
Dit lijkt me de relevante code (en volgens mij is de fout ook allang gezien... :)).

Die } staat er dus wel hoor...

Het kan altijd mooier en beter...


  • Grum
  • Registratie: Juni 2001
  • Niet online
* Grum denkt hardop dat while (list(,$doc_group) = each($doc_group_ids)) ook niet goed is .. maar dat misschien GoT de schuldige daaraan is :)

  • ACM
  • Registratie: Januari 2000
  • Niet online

ACM

Software Architect

Werkt hier

Op maandag 17 september 2001 17:33 schreef Grum_ het volgende:
* ACM denkt hardop dat while (list(,$doc_group) = each($doc_group_ids)) ook niet goed is .. maar dat misschien GoT de schuldige daaraan is :)
* ACM denkt dat Grum_ es naar www.php.net/list moet kijken. En dan met name de usercomments ;)

  • surfdude
  • Registratie: Maart 2000
  • Laatst online: 16-06 22:34
Ik vind jullie list() discussie wel leuk hoor, maar uh hebben jullie ook nog een tip voor mijn probleempje? :?

Ik krijg dus geen syntax error en het scriptje wordt gewoon geparsed(alleen niet zoals ik dat wil)...

Het kan altijd mooier en beter...


  • ACM
  • Registratie: Januari 2000
  • Niet online

ACM

Software Architect

Werkt hier

Op maandag 17 september 2001 23:36 schreef surfude het volgende:
Ik vind jullie list() discussie wel leuk hoor, maar uh hebben jullie ook nog een tip voor mijn probleempje? :?

Ik krijg dus geen syntax error en het scriptje wordt gewoon geparsed(alleen niet zoals ik dat wil)...
Ik heb wat debug tips voor je dan:
Stop er zoveel mogelijk echo's tussen, zodat je het verloop van je variabelen kan volgen.
Stop er duidelijke messages tussen "going into first loop with i = $i" ofzo.

en kijk daar goed naar.

Zet evt de error_reporting op E_ALL en dan moet het lukken.

  • surfdude
  • Registratie: Maart 2000
  • Laatst online: 16-06 22:34
hmm, nog meer echo's dan de 3 die er al staan?
Hieraan zag ik dat eerst al de $doc_group elementen op het scherm verschenen en daarna de user_group vars.
Terwijl dat om en om moet zijn.

Die extra error meldingen ga ik maar 's proberen (dat is voor morgen).

Maar uh, zie jij nu wel wat er mis is? *D

Het kan altijd mooier en beter...


  • Knutselsmurf
  • Registratie: December 2000
  • Laatst online: 17:28

Knutselsmurf

LED's make things better

Op dinsdag 18 september 2001 00:08 schreef surfude het volgende:
hmm, nog meer echo's dan de 3 die er al staan?
Hieraan zag ik dat eerst al de $doc_group elementen op het scherm verschenen en daarna de user_group vars.
Terwijl dat om en om moet zijn.

Die extra error meldingen ga ik maar 's proberen (dat is voor morgen).

Maar uh, zie jij nu wel wat er mis is? *D
edit:
Laat maar......

- This line is intentionally left blank -


  • GiLuX
  • Registratie: Juni 1999
  • Laatst online: 12-11-2025
ik zie het probleem niet,
het werkt het gewoon.

je moet natuurlijk wel even die array elke keer resetten anders maaktie het rijtje nooit af.
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<?
$user_group_ids="e,a,y,c";
$doc_group_ids="a,b,c,d";

$user_group_ids=explode(",",$user_group_ids);
$doc_group_ids=explode(",",$doc_group_ids);

while (list(,$doc_group) = each($doc_group_ids)) {
    echo "vergelijk doc_group: ".$doc_group. "&nbsp;&nbsp;&nbsp;";
    while (list(,$user_group) = each($user_group_ids)) {
        echo " met user_group: ".$user_group. "<br>";
        if($doc_group == $user_group) {
            echo "waar!<p>";
        }
    }
    reset($user_group_ids);
}
?>

geeft dit als antwoord:
vergelijk doc_group: a
met user_group: e
met user_group: a
waar!

met user_group: y
met user_group: c

vergelijk doc_group: b
met user_group: e
met user_group: a
met user_group: y
met user_group: c

vergelijk doc_group: c
met user_group: e
met user_group: a
met user_group: y
met user_group: c
waar!

vergelijk doc_group: d
met user_group: e
met user_group: a
met user_group: y
met user_group: c

"I disagree with what you are saying, but I will defend to the death your right to say it." -- not clear who


  • surfdude
  • Registratie: Maart 2000
  • Laatst online: 16-06 22:34
ff niet vergeten: Thanx GiLux!

Het kan altijd mooier en beter...

Pagina: 1