Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Zapisywanie uprawnień dla określonych rang :(
kubula
post 15.02.2008, 17:46:58
Post #1





Grupa: Zarejestrowani
Postów: 9
Pomógł: 0
Dołączył: 6.02.2008

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


Witam, ostatnio prosiłem o pomoc i mi pomogliście. Mam nadzieję, że i w tym przypadku będziecie w stanie mi pomóc smile.gif

Pracuję nad stroną, w której można ustalać odpowiednie uprawnienia dla określonych rang. Wygląda to tak



Problem polega na tym, że jak kliknę w którekolwiek ZAPISZ to zapisuję się wybrana opcja (TAK albo NIE) dla wszystkich rang. A chodzi mi o to, żeby można było to robić dla każdej rangi z osobna.
Liczę na Waszą pomoc, bo już tyle nad tym siedzę a efektów brak sad.gif

Oto fragment kodu

  1. <table width='100%'>
  2. <tr>
  3. <td align="center" bgcolor="red">Ranga</td>
  4. <td align="center" bgcolor="red">Podania</td>
  5. <td align="center" bgcolor="red">Edycja strony dla członków</td>
  6. <td align="center" bgcolor="red">Zapisz
  7.  
  8. </td>
  9.  
  10. </tr>
  11. <?
  12. $sql = "SELECT * from `gangsrang` WHERE `gangid` = '".$gang_class->id."' ORDER BY `ranga` DESC"; 
  13. $result = mysql_query($sql);
  14. while ($row = mysql_fetch_array($result, MYSQL_ASSOC)) {
  15. $ranga = ($row['ranga']);
  16. $podania = ($row['podania']);
  17. $infopriv = ($row['infopriv']);
  18. ?>
  19. <tr>
  20. <form method='post'>
  21. <td align="center"><? echo $ranga; ?></td>
  22. <td align="center"><select name="podania"><? 
  23. if ($podania == 0){
  24. echo '<option value="1">Tak</option><option value="0" selected="selected">Nie</option>';
  25.  }else{
  26.  echo '<option value="1" selected="selected">Tak</option><option value="0">Nie</option>';
  27.  }?>
  28. </td>
  29. <td align="center"><select name="infopriv"><? 
  30. if ($infopriv == 0){
  31. echo '<option value="1">Tak</option><option value="0" selected="selected">Nie</option>';
  32.  }else{
  33.  echo '<option value="1" selected="selected">Tak</option><option value="0">Nie</option>';
  34.  }?>
  35. </td>
  36. <td align="center"><input type='submit' name='zapisz' value='Zapisz'>
  37. <?
  38. if ($_POST['zapisz']){
  39. $wpodania = $_POST['podania'];
  40. $winfopriv = $_POST['infopriv'];
  41. $result2 = mysql_query("UPDATE `gangsrang` SET `podania` = '$wpodania', `infopriv` = '$winfopriv' WHERE `gangid`='".$gang_class->id."' AND `ranga`='$ranga'");
  42. }
  43. ?>
  44. </form></td>
  45. </td>
  46. </tr>
  47. <?
  48. }
  49. ?>
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 7)
bim2
post 15.02.2008, 18:18:37
Post #2





Grupa: Zarejestrowani
Postów: 1 873
Pomógł: 152
Dołączył: 9.04.2006
Skąd: Berlin

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


Daj echo '<select name="info_'.$row['id'].'">'; tongue.gif W sumie to ja bym zrobił coś w stylu Edytuj i tam miał zmiany (jak będzie tego dużo, możesz się pogubić tongue.gif


--------------------
Go to the top of the page
+Quote Post
kubula
post 15.02.2008, 18:33:24
Post #3





Grupa: Zarejestrowani
Postów: 9
Pomógł: 0
Dołączył: 6.02.2008

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


Dzięki za odpowiedź, zaraz będę testował tylko jak ma teraz wyglądać składnia:

  1. <?php
  2. $winfopriv = $_POST['info'];
  3. ?>


tak?

  1. <?php
  2. $winfopriv = $_POST['info_'.$row['id'].''];
  3. ?>
Go to the top of the page
+Quote Post
bim2
post 15.02.2008, 18:40:33
Post #4





Grupa: Zarejestrowani
Postów: 1 873
Pomógł: 152
Dołączył: 9.04.2006
Skąd: Berlin

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


Yhy, i pobierze tego posta co zmieniasz. smile.gif Tylko dodaj coś do WHERE, żebyś wiedział, że zmieniasz to prawo. W osobnych formach to daj smile.gif


--------------------
Go to the top of the page
+Quote Post
kubula
post 15.02.2008, 19:12:59
Post #5





Grupa: Zarejestrowani
Postów: 9
Pomógł: 0
Dołączył: 6.02.2008

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


Cytat(bim2 @ 15.02.2008, 18:40:33 ) *
Yhy, i pobierze tego posta co zmieniasz. smile.gif Tylko dodaj coś do WHERE, żebyś wiedział, że zmieniasz to prawo. W osobnych formach to daj smile.gif


No i właśnie z WHERE mam problem, bo $ranga jest zmienną, którą użytkownik może sobie sam dodawać, bądź usuwać. I teraz nie wiem jak to rozwiązać, żeby te dane z formularza przypisywały się do konkretnej rangi. Jakiś pomysł?

P.S
Osobne formy być nie mogą, bo jak będzie 8 opcji do wyboru to użytkownik mnie zastrzeli, że musi każdą akpceptować jedna po drugiej, więc to musi byc hurtem smile.gif
Go to the top of the page
+Quote Post
bim2
post 15.02.2008, 23:10:55
Post #6





Grupa: Zarejestrowani
Postów: 1 873
Pomógł: 152
Dołączył: 9.04.2006
Skąd: Berlin

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


Tyy chesz wszystko na raz? To zrób tak jak mówiłem, daj name="cos_'.$row['id'].'" i później dasz kilka update (nie znam twojej bazy danych)


--------------------
Go to the top of the page
+Quote Post
kubula
post 15.02.2008, 23:54:40
Post #7





Grupa: Zarejestrowani
Postów: 9
Pomógł: 0
Dołączył: 6.02.2008

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


Zrobiłem tak jak mówiłeś, ale niestety to dalej nie rozwiązuje mojego problemu, bo, fakt, przycisk ZAPISZ zapisuje dane tylko z danego rzędu, ale nadal zapisuje ustawienia dla wszystkich rang.

Kod wygląda tak:

  1. ?>
  2. <table width='100%'>
  3. <tr>
  4. <td align="center" bgcolor="red">Ranga</td>
  5. <td align="center" bgcolor="red">Podania</td>
  6. <td align="center" bgcolor="red">Edycja strony dla członków</td>
  7. <td align="center" bgcolor="red">Zapisz
  8.  
  9. </td>
  10.  
  11. </tr>
  12. <?
  13. $sql = "SELECT * from `gangsrang` WHERE `gangid` = '".$gang_class->id."' ORDER BY `ranga` DESC"; 
  14. $result = mysql_query($sql);
  15. while ($row = mysql_fetch_array($result, MYSQL_ASSOC)) {
  16. $ranga = ($row['ranga']);
  17. $podania = ($row['podania']);
  18. $infopriv = ($row['infopriv']);
  19. ?>
  20. <tr>
  21. <form method='post'>
  22. <td align="center"><? echo $ranga; ?></td>
  23. <td align="center"><?echo '<select name="podania_'.$row['id'].'">';?><? 
  24. if ($podania == 0){
  25. echo '<option value="1">Tak</option><option value="0" selected="selected">Nie</option>';
  26.  }else{
  27.  echo '<option value="1" selected="selected">Tak</option><option value="0">Nie</option>';
  28.  }?>
  29. </td>
  30. <td align="center"><?echo '<select name="infopriv_'.$row['id'].'">';?><? 
  31. if ($infopriv == 0){
  32. echo '<option value="1">Tak</option><option value="0" selected="selected">Nie</option>';
  33.  }else{
  34.  echo '<option value="1" selected="selected">Tak</option><option value="0">Nie</option>';
  35.  }?>
  36. </td>
  37. <td align="center"><input type='submit' name='zapisz' value='Zapisz'>
  38. <?
  39. if ($_POST['zapisz']){
  40. $wpodania = $_POST['podania_'.$row['id'].''];
  41. $winfopriv = $_POST['infopriv_'.$row['id'].''];
  42. $result2 = mysql_query("UPDATE `gangsrang` SET `podania` = '$wpodania', `infopriv` = '$winfopriv' WHERE `gangid`='".$gang_class->id."' AND `ranga`='$ranga'");
  43. }
  44. ?>
  45. </form></td>
  46. </td>
  47. </tr>
  48. <?
  49. }
  50. ?>


Nie wiem jak zmusić to zapisywania zmian przy odpowiedniej randze. Gdyby rangi były stałe nie było by problemu bo mógłbym zrobić

  1. <?
  2. $result3 = mysql_query("UPDATE `gangsrang` SET `podania` = '$wpodania', `infopriv` = '$winfopriv' WHERE `gangid`='".$gang_class->id."' AND `ranga`='ranga1'");
  3.  
  4. $result4 = mysql_query("UPDATE `gangsrang` SET `podania` = '$wpodania', `infopriv` = '$winfopriv' WHERE `gangid`='".$gang_class->id."' AND `ranga`='ranga2'");
  5. ...
  6. ?>


i tak dalej, ale problem polega na tym, że w innym formularzu jest możliwość dodawania usuwania rang, więc ich nazwy się zmieniają. Już nie wiem co z tym zrobić sad.gif
Go to the top of the page
+Quote Post
bim2
post 16.02.2008, 10:11:26
Post #8





Grupa: Zarejestrowani
Postów: 1 873
Pomógł: 152
Dołączył: 9.04.2006
Skąd: Berlin

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


To daj w poscie na jakiej randze własnie operujesz smile.gif Typu <inpu type="hidden" name="ranga_'.$row['id'].'" /> i później w zaputaniu dajesz WHERE ranga = '.$_POST['ranga'.$row['id']] Kapujesz?
Pamiętaj, że tak będziesz miał kilka updatów smile.gif


--------------------
Go to the top of the page
+Quote Post

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

 



RSS Wersja Lo-Fi Aktualny czas: 14.08.2025 - 09:53