Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Pętla foreach zagnieżdżona w for - problem z indeksami
jurcio6
post
Post #1





Grupa: Zarejestrowani
Postów: 40
Pomógł: 0
Dołączył: 4.11.2010

Ostrzeżenie: (0%)
-----


Witam.

Mam pewien problem z indeksami. Kod:

  1. //$answers to dwuwymiarowa tablica rekordów pobranych z bazy - załóżmy, że tych rekordów ma tam 3
  2. for($i=0; $i<3; $i++)
  3. {
  4. //jakiś kod do wykonania
  5. $j = 1;
  6. foreach($answers as $row)
  7. {
  8. //jakiś kod do wykonania - $row coś tam - wiadomo, ale problem poniżej:
  9. echo $j.", ";
  10. $j++;
  11. }
  12. }


I teraz problem mam następujący: wynikiem takiej pętli jest: "1, 2, 3, 4, 5, 6, 7, 8, 9" - jakim cudem, skoro przy każdej iteracji pętli zewnętrznej for ustawiam licznik $j =1? Czy wynikiem nie powinno być "1, 2, 3, 1, 2, 3, 1, 2, 3"? Jak uzyskać taki efekt?

Proszę o pomoc! Z góry dzięki.

Ten post edytował jurcio6 14.02.2011, 11:59:29
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
jurcio6
post
Post #2





Grupa: Zarejestrowani
Postów: 40
Pomógł: 0
Dołączył: 4.11.2010

Ostrzeżenie: (0%)
-----


Niestety nic się nie zmieniło. Poszczególne pola <input.. /> nadal przyjmują wartości value="" od 1 do 23 (tyle jest rekordów).

  1. echo "<table align=\"center\">";
  2. for($i=0; $i<$nq; $i++)
  3. {
  4. echo "\n<tr><td style=\"padding: 15px 0px 5px 0px;\"><b>Pytanie ";
  5. echo $i+1 .": <i>".$questions[$i]['question_text']."</i></b>";
  6. if($questions[$i]['multiple_choice']==1)
  7. {
  8. echo " [wybór wielokrotny]";
  9. }
  10. echo "</td></tr>\n<tr><td style=\"padding-left: 30px;\">";
  11. $j = 1;
  12. foreach($answers as $row)
  13. {
  14. if($questions[$i]['question_id'] == $row['question_id'])
  15. {
  16. if($questions[$i]['multiple_choice']==1)
  17. {
  18. echo "\n<label name=\"".$row['question_id']."\"><input type=\"checkbox\" name=\"question_".$i."[]\" value=\"".$j."\" />".$row['answer_text']."</label><br />";
  19. }
  20. else
  21. {
  22. echo "\n<label name=\"".$row['question_id']."\"><input type=\"radio\" name=\"question_".$i."\" value=\"".$j."\" />".$row['answer_text']."</label><br />";
  23. }
  24. }
  25. $j++;
  26. }
  27. echo "</td></tr>";
  28. }
  29. echo "\n</table>";


Efekt:
  1. <table align="center">
  2. <tr><td style="padding: 15px 0px 5px 0px;"><b>Pytanie 1: <i>Czy wolisz kolory jasne czy ciemne?</i></b></td></tr>
  3. <tr><td style="padding-left: 30px;">
  4. <label name="92"><input type="radio" name="question_0" value="1" />jasne</label><br />
  5. <label name="92"><input type="radio" name="question_0" value="2" />ciemne</label><br />
  6. <label name="92"><input type="radio" name="question_0" value="3" />jest mi to obojętne</label><br /></td></tr>
  7.  
  8. <tr><td style="padding: 15px 0px 5px 0px;"><b>Pytanie 2: <i>Czy wolisz odcienie stonowane czy jaskrawe?</i></b></td></tr>
  9. <tr><td style="padding-left: 30px;">
  10. <label name="93"><input type="radio" name="question_1" value="4" />jaskrawe</label><br />
  11. <label name="93"><input type="radio" name="question_1" value="5" />stonowane</label><br />
  12. <label name="93"><input type="radio" name="question_1" value="6" />jest mi to obojętne</label><br /></td></tr>
  13. <tr><td style="padding: 15px 0px 5px 0px;"><b>Pytanie 3: <i>Jakiego koloru koszulki lubisz nosić?</i></b> [wybór wielokrotny]</td></tr>
  14. <tr><td style="padding-left: 30px;">
  15. <label name="94"><input type="checkbox" name="question_2[]" value="7" />białe</label><br />
  16.  
  17. <label name="94"><input type="checkbox" name="question_2[]" value="8" />czarne</label><br />
  18. <label name="94"><input type="checkbox" name="question_2[]" value="9" />zielone</label><br />
  19. <label name="94"><input type="checkbox" name="question_2[]" value="10" />czerwone</label><br />
  20. <label name="94"><input type="checkbox" name="question_2[]" value="11" />żółte</label><br />
  21. <label name="94"><input type="checkbox" name="question_2[]" value="12" />niebieskie</label><br /></td></tr>
  22. <tr><td style="padding: 15px 0px 5px 0px;"><b>Pytanie 4: <i>Czy lubisz odcienie szarości?</i></b></td></tr>
  23. <tr><td style="padding-left: 30px;">
  24. <label name="95"><input type="radio" name="question_3" value="13" />tak</label><br />
  25. <label name="95"><input type="radio" name="question_3" value="14" />nie</label><br /></td></tr>
  26.  
  27. <tr><td style="padding: 15px 0px 5px 0px;"><b>Pytanie 5: <i>Jaki jest twój ulubiony kolor?</i></b></td></tr>
  28. <tr><td style="padding-left: 30px;">
  29. <label name="96"><input type="radio" name="question_4" value="15" />pomarańczowy</label><br />
  30. <label name="96"><input type="radio" name="question_4" value="16" />fioletowy</label><br />
  31. <label name="96"><input type="radio" name="question_4" value="17" />niebieski</label><br />
  32. <label name="96"><input type="radio" name="question_4" value="18" />żółty</label><br />
  33. <label name="96"><input type="radio" name="question_4" value="19" />zielony</label><br />
  34. <label name="96"><input type="radio" name="question_4" value="20" />czerwony</label><br />
  35. <label name="96"><input type="radio" name="question_4" value="21" />biały</label><br />
  36.  
  37. <label name="96"><input type="radio" name="question_4" value="22" />czarny</label><br />
  38. <label name="96"><input type="radio" name="question_4" value="23" />turkusowy</label><br /></td></tr>


Pożądany efekt:
  1. <table align="center">
  2. <tr><td style="padding: 15px 0px 5px 0px;"><b>Pytanie 1: <i>Czy wolisz kolory jasne czy ciemne?</i></b></td></tr>
  3. <tr><td style="padding-left: 30px;">
  4. <label name="92"><input type="radio" name="question_0" value="1" />jasne</label><br />
  5. <label name="92"><input type="radio" name="question_0" value="2" />ciemne</label><br />
  6. <label name="92"><input type="radio" name="question_0" value="3" />jest mi to obojętne</label><br /></td></tr>
  7.  
  8. <tr><td style="padding: 15px 0px 5px 0px;"><b>Pytanie 2: <i>Czy wolisz odcienie stonowane czy jaskrawe?</i></b></td></tr>
  9. <tr><td style="padding-left: 30px;">
  10. <label name="93"><input type="radio" name="question_1" value="1" />jaskrawe</label><br />
  11. <label name="93"><input type="radio" name="question_1" value="2" />stonowane</label><br />
  12. <label name="93"><input type="radio" name="question_1" value="3" />jest mi to obojętne</label><br /></td></tr>
  13. <tr><td style="padding: 15px 0px 5px 0px;"><b>Pytanie 3: <i>Jakiego koloru koszulki lubisz nosić?</i></b> [wybór wielokrotny]</td></tr>
  14. <tr><td style="padding-left: 30px;">
  15. <label name="94"><input type="checkbox" name="question_2[]" value="1" />białe</label><br />
  16. <label name="94"><input type="checkbox" name="question_2[]" value="1" />czarne</label><br />
  17. <label name="94"><input type="checkbox" name="question_2[]" value="1" />zielone</label><br />
  18. <label name="94"><input type="checkbox" name="question_2[]" value="1" />czerwone</label><br />
  19. <label name="94"><input type="checkbox" name="question_2[]" value="1" />żółte</label><br />
  20. <label name="94"><input type="checkbox" name="question_2[]" value="1" />niebieskie</label><br /></td></tr>
  21. <tr><td style="padding: 15px 0px 5px 0px;"><b>Pytanie 4: <i>Czy lubisz odcienie szarości?</i></b></td></tr>
  22. <tr><td style="padding-left: 30px;">
  23. <label name="95"><input type="radio" name="question_3" value="1" />tak</label><br />
  24. <label name="95"><input type="radio" name="question_3" value="2" />nie</label><br /></td></tr>
  25.  
  26. <tr><td style="padding: 15px 0px 5px 0px;"><b>Pytanie 5: <i>Jaki jest twój ulubiony kolor?</i></b></td></tr>
  27. <tr><td style="padding-left: 30px;">
  28. <label name="96"><input type="radio" name="question_4" value="1" />pomarańczowy</label><br />
  29. <label name="96"><input type="radio" name="question_4" value="2" />fioletowy</label><br />
  30. <label name="96"><input type="radio" name="question_4" value="3" />niebieski</label><br />
  31. <label name="96"><input type="radio" name="question_4" value="4" />żółty</label><br />
  32. <label name="96"><input type="radio" name="question_4" value="5" />zielony</label><br />
  33. <label name="96"><input type="radio" name="question_4" value="6" />czerwony</label><br />
  34. <label name="96"><input type="radio" name="question_4" value="7" />biały</label><br />
  35.  
  36. <label name="96"><input type="radio" name="question_4" value="1" />czarny</label><br />
  37. <label name="96"><input type="radio" name="question_4" value="2" />turkusowy</label><br /></td></tr>


//ignore na pola checkbox - je wiem jak obsłużyć (IMG:style_emoticons/default/smile.gif)

Nadal nie udało mi się uporać z tym problemem - jakieś pomysły? ;/

Ten post edytował jurcio6 14.02.2011, 12:53:54
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 10.10.2025 - 12:21