Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [php][mysql] Zapis do bazy ustawienia Radiobuttona
rja
post 5.07.2007, 13:23:11
Post #1





Grupa: Zarejestrowani
Postów: 35
Pomógł: 0
Dołączył: 8.12.2006

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


Witam,
Mam bazę danych z listą stron i chciałbym za pomocą formularza ustawiać która strona ma się wyświetlać jako główna. W bazie danych domyślnie dla pola "strona_g" jest zero. Po zaznaczeniu w formularzu chciałbym przypisać tej stronie 1.
Nie wiem do końca jak mam przesyłać tę tablicę.
  1. <?php
  2. if (isset($_GET["akcja"])=='ustaw'){
  3.  
  4.  //tu są jakieś błędy
  5.  
  6. for($i=0;$i<count($_POST['sg']);$i++) {
  7. $id = $_POST['sg'][$i];
  8. if ($_POST['sg']=checked){
  9.  
  10. $g="1";
  11. }else{
  12. $g="0";
  13. }
  14. mysql_query("UPDATE menu SET strona_g='$g' WHERE id='$id'");
  15. }
  16.  
  17. }
  18. ?>
  19. <form action="?akcja=ustaw" method="post" enctype="multipart/form-data" name="form3">
  20. <table width="773" border="0" cellspacing="2" cellpadding="1">
  21. <tr bgcolor="#FF3300" >
  22. <td height="24" colspan="3" bgcolor="#99CC00">:: Istniejące pozycje menu</td>
  23. </tr>
  24. <tr>
  25. <td width="15%" height="20" bgcolor="#BCFE63"><div align="center" class="div_bold">Lp.</div></td>
  26. <td width="70%" height="20" bgcolor="#BCFE63"><div align="center" class="div_bold">Nazwa strony</div></td>
  27. <td width="15%" height="20" bgcolor="#BCFE63" align="center" class="text9">Ustaw stronę główną</td>
  28. </tr>
  29. <?php
  30.  
  31.  
  32. $sql="SELECT * FROM menu order by id";
  33. $wynik=mysql_query($sql,$db);
  34.  
  35. if (mysql_num_rows($wynik)==0){
  36. ?>
  37. <table border="0" width="100%" cellspacing="2" cellpadding="0">
  38. <tr>
  39. <td width="100%" bgcolor="#FFF6ED" align="center">Brak pozycji.</td>
  40. </tr>
  41. </table><br>
  42. <?php
  43. }else{
  44.  
  45. $i=1;
  46. while($dane = mysql_fetch_array($wynik)) {
  47.  
  48. if ($dane["strona_g"]="1"){
  49. $znak="checked";
  50. }
  51.  
  52. ?>
  53. <tr>
  54. <td ><?php echo $i;?>.</td>
  55. <td >&nbsp;<?php echo $dane["nazwa"];?></td>
  56. <td ><input type="radio" name="sg[]" value="<?php echo $dane["id"];?><?php echo $znak;?>></td>
  57. </tr>
  58. <?php
  59. $i++;
  60. }
  61. }
  62. ?>
  63. <tr>
  64. <td colspan="3">&nbsp;</td>
  65. <td align="center"><input type="submit" name="Submit" value="Ustaw"></td>
  66. </tr>
  67.  
  68. </table>

Struktura bazy:
  1. <?php
  2. CREATE TABLE `menu` (
  3. `id` int(3) NOT NULL auto_increment,
  4. `nazwa` varchar(100) NOT NULL,
  5. `strona_g` char(1) NOT NULL default '0',
  6. PRIMARY KEY (`id`)
  7. ) ENGINE=InnoDB ;
  8. ?>


Ten post edytował rja 5.07.2007, 14:36:29
Go to the top of the page
+Quote Post
uli
post 5.07.2007, 14:18:55
Post #2





Grupa: Zarejestrowani
Postów: 318
Pomógł: 6
Dołączył: 27.01.2005

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


Skoro to jest radiobutton to przecież nie jest tablica tylko value. Tablice masz dla checkboxów.


--------------------
Prawo Wylera:
Nie ma rzeczy niemożliwych dla kogoś, kto nie musi ich zrobić sam.
Go to the top of the page
+Quote Post
rja
post 5.07.2007, 14:22:35
Post #3





Grupa: Zarejestrowani
Postów: 35
Pomógł: 0
Dołączył: 8.12.2006

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


Ok. Tu się zgodzę. Na początku myślałem o checkboxach, ale to musi być na radio. Temat jest może zły. W każdym bądź razie jak to poprawić.
Tzn. dla jednaego ID nie jest dla mnie problemem przypisania 1, ale chciałbym przy zmianie, tam gdzie była 1 przypisac 0. NIe wiem jak zrobić tam pętlę, bo rozumiem że jak jej nie będzie to po kilku zmianach wszędzie będę miał 1.

Chyba zamotałem.

Ten post edytował rja 5.07.2007, 14:33:52
Go to the top of the page
+Quote Post
uli
post 5.07.2007, 14:29:52
Post #4





Grupa: Zarejestrowani
Postów: 318
Pomógł: 6
Dołączył: 27.01.2005

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


Pokaż w takim razie wycinek kodu z tym radio...


--------------------
Prawo Wylera:
Nie ma rzeczy niemożliwych dla kogoś, kto nie musi ich zrobić sam.
Go to the top of the page
+Quote Post
rja
post 5.07.2007, 14:34:54
Post #5





Grupa: Zarejestrowani
Postów: 35
Pomógł: 0
Dołączył: 8.12.2006

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


Przecież jest cały kod.
Go to the top of the page
+Quote Post
mrjozo
post 5.07.2007, 14:40:49
Post #6





Grupa: Zarejestrowani
Postów: 142
Pomógł: 3
Dołączył: 27.06.2007

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


Rozumiem, że masz tylko jedną wartośc 1, więc po prostu wykonujesz:

  1. mysql_query("UPDATE menu SET strona_g=0 WHERE strona_g=1 ");


a potem ustawiasz gdzie potrzeba wartość 1


--------------------
W chwili wolnego zapraszam na gry Dla każdego coś się znajdzie;)
Go to the top of the page
+Quote Post
uli
post 5.07.2007, 14:57:11
Post #7





Grupa: Zarejestrowani
Postów: 318
Pomógł: 6
Dołączył: 27.01.2005

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


Autora przepraszam, przeoczyłem.

Kod:

Zamiast 'sg[]' w linii 57:

  1. <td ><input type="radio" name="sg" value="<?php echo $dane["id"];?>" <?php echo $znak;?>></td>


Zamiast linii od 6 do 16:

  1. <?php
  2. $sg = $_POST["sg"];
  3.  
  4. mysql_query("UPDATE menu SET strona_g=0 WHERE strona_g=1 "); 
  5. mysql_query("UPDATE menu SET strona_g=1 WHERE id='$sg'");
  6. ?>


Ten post edytował uli 5.07.2007, 14:57:29


--------------------
Prawo Wylera:
Nie ma rzeczy niemożliwych dla kogoś, kto nie musi ich zrobić sam.
Go to the top of the page
+Quote Post
rja
post 5.07.2007, 15:02:33
Post #8





Grupa: Zarejestrowani
Postów: 35
Pomógł: 0
Dołączył: 8.12.2006

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


Przepraszam za zamieszanie już wszystko jasne. To przez to że o Radio myślałem jak o tablicy.

dzięki wielkie wszystkim za pomoc i oświecenie.
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: 20.06.2025 - 07:03