Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php]radio & petla
Forum PHP.pl > Forum > Przedszkole
Stef@n
Witam
mam taki formularz:
  1. <? $zapytanie = mysql_query ("SELECT * FROM uzytkownicy ORDER BY id DESC") or die ("Bład w pytaniu");
  2. ?> <form name="form" enctype="multipart/form-data" action="index.php?uzytkownicy=uprawnienia&akcja=popraw" method="post" >
  3. <table border="1" cellpadding="0" cellspacing="0" bordercolor="#444444" width="100%">
  4. <tr bgcolor="#B02A27">
  5. <td width="50%" >
  6. <p><span class="biale"><b>UZYTKOWNIK</b></span></p>
  7. </td>
  8. <td width="50%">
  9. <p><span class="biale"><b>UPRAWNIENIA</b></span></p>
  10. </td>
  11. </tr>
  12. <?
  13.  while ($rekord = mysql_fetch_array ($zapytanie)) {
  14. ?>
  15.  <tr>  
  16. <td >
  17. <p><span><?=$rekord[nazwa]?>(<?=$rekord[login]?>)</span></p>
  18. </td>
  19. <td >
  20. <p align="center"><span>
  21. <input type="hidden" name="id[]" id="id[]" value="<?=$rekord[id]?>">
  22. <input type="radio" name="uprawnienia[<?=$rekord[id]?>]" value="0" <? if ($rekord[uprawnienia] == "0") { ?>checked<? } ?>> Admin &nbsp;&nbsp;
  23. <input type="radio" name="uprawnienia[<?=$rekord[id]?>]" value="1" <? if ($rekord[uprawnienia] == "1") { ?>checked<? } ?>> Moderator &nbsp;&nbsp;
  24. <input type="radio" name="uprawnienia[<?=$rekord[id]?>]" value="2" <? if ($rekord[uprawnienia] == "2") { ?>checked<? } ?>> User
  25. </span></p>
  26. </td>
  27. </tr>
  28.  
  29. <tr bgcolor="#444444">
  30. <td width="547" colspan="8">
  31. <p><img src="grafika/spacer.gif" width="1" height="1" border="0"></p>
  32. </td>
  33. </tr>
  34. <?
  35.  }} ?>
  36. </table>
  37. <div align=center><input type=submit value="Popraw uprawnienia"></div>
  38. </form>
  39. <?
  40. }?>


Teraz z tego formularza chce pobrac dane w sposób:
$id | $uprawnienia

Niestety tutaj juz jest problem $id pobiera sie ok a zmiena $uprawnienia nie!

  1. <?php
  2.  
  3. $zliczanie = mysql_fetch_array(mysql_query("SELECT COUNT(id) liczba FROM uzytkownicy"));
  4. $liczba = $zliczanie[liczba];
  5. for ($i=0; $i < $liczba; $i++) {
  6.  echo"$id[$i] | $uprawnienia[$i]<br>";
  7.  
  8.  }
  9.  
  10.  
  11. ?>


Jak wykonac te petle?
luinnar
Nie do końca rozumiem o co Ci chodzi jednak sądzę że możesz mieć wyłączone register_globals i zamiast $uprawnienia[$i] powinieneś pisać $_POST['uprawnienia'][$i] .

Jeszcze całkiem ogólnie:
1. Używaj pełnego rozpoczęcia kody php (czyli <?php )
2. Kiedy wypluwasz stringi używaj raczej znaków ' więcej szczegółów tutaj
3. Nie możesz wywoływać tablic tak: $rekord[id] tylko $rekord['id'] ponieważ php traktuje ciąg id jako nie zadeklarowaną stałą i wyrzuca warningi
4. <?php=$rekord['id']?> raczej już wychodzi z mody biggrin.gif w php6 nie będzie dostępne więc lepiej jednak pisać <?php echo $rekord['id']; ?>
Stef@n
no to opisze problem....
w pierwszym kodzie jest formularz... gdzie wyswietla uzytkowników i jego uprawnienia...
Uprawnienia sa wyswietlane typewm radio oto kod:
  1. <p align="center"><span>
  2. <input type="hidden" name="id[]" id="id[]" value="<?=$rekord[id]?>">
  3. <input type="radio" name="uprawnienia[<?=$rekord[id]?>]" value="0" <? if ($rekord[uprawnienia] == "0") { ?>checked<? } ?>> Admin &nbsp;&nbsp;
  4. <input type="radio" name="uprawnienia[<?=$rekord[id]?>]" value="1" <? if ($rekord[uprawnienia] == "1") { ?>checked<? } ?>> Moderator &nbsp;&nbsp;
  5. <input type="radio" name="uprawnienia[<?=$rekord[id]?>]" value="2" <? if ($rekord[uprawnienia] == "2") { ?>checked<? } ?>> User
  6. </span></p>


No i wyswietlaja sie wszyscy uzytkownicy z bazy... teraz chce zmienić niekturych uprawnienia... zmieniajac w radio... i przesłac dalej... wszysko było by OK... ale nie przesyła mi wartosc z radio... petla wyglada tak:
  1. <? $zliczanie = mysql_fetch_array(mysql_query("SELECT COUNT(id) liczba FROM uzytkownicy"));
  2. $liczba = $zliczanie[liczba];
  3. for ($i=0; $i < $liczba; $i++) {
  4.  echo"$id[$i] | $uprawnienia[$i]<br>";
  5.  
  6.  }?>

Na poczatku zlicza ile jest rekordów... i liczbe podstawiam do petli... efekt ma byc taki:
ID UZYTKOWNIKA | WARTOŚC Z RADIO (to jest 0, 1 lub 2)

A wyswietla sie tylko ID UZYTKOWNIKA... wartosci z radio sa jakies pokrecone ;/... dlaczego? Jak to wykonac prosze o pomoc sadsmiley02.gif
luinnar
A jak jakiś rekord jest usunięty? Wtedy nie ma takiego id.
Przykład:
id dostępne w tabeli: 1,2,5,6,8
wyciągając ilość rekordów dostajesz wartość 5 i w pętli próbujesz pobierać wartości o id 1,2,3,4,5!!!

Poczytaj o foreach" title="Zobacz w manualu php" target="_manual to powinno rozwiązać problem.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.