Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php][html]Pole opcji i wykonanie zapytania mysql
Forum PHP.pl > Forum > Przedszkole
puz219
Witam.

mam tabelkę, do której wczytuję elementy z bazy sql.

Teraz chciałem sobie zrobić coś takiego, że w jednej kolumnie tabelki jest pole opcji (type="radio"), a pod tabelką przycisk Wykonaj.

I ma to działać na takiej zasadzie, jak zaznaczę pole i kliknę wykonaj, to wykonuje mi zapytanie mysql.

Z pierwszymi dwoma zadaniami się uporałem tzn. pole opcji w tabelce i przycisk poza nią, lecz w żaden sposób mi to nie działa.

Czy potrzebne są do tego formularze.

Proszę o pomoc.
hondek
Nie lape chyba do konca o co chodzi... ale wydaje mi sie ze formularz jest niezbedny - tak czy siak.
puz219
faktycznie może to zbyt nieczytelnie napisałem.

Chodzi o to, ze chcę zaznaczyć pole opcji i jak kliknę w przycisk wykonaj, to żeby wykonywało zapytanie mysql dla konkretnego rekordu w bazie.

Jak coś takiego zrobić, bo ja już próbowałem na wszystkie sposoby (przynajmniej te, które znam) i nic nie dawało rezultatu
kossa
Jeśli masz kod który nie do końca działa to go przedstaw, ktoś może zauważy i poprawi błąd. Pamiętaj o BBcode. Twój problem można rozwiązać na kilka sposobów. Nie wiem jak przesyłasz wartość z pota radio do zapytania a wszystkich możliwości nie ma sensu przytaczać, zatem - pokaż kod.

Łukasz
puz219
funkcja, która jest pobiera dane z bazy

  1. <?php
  2. function fast_menu_opcje($zapytanie){
  3.  
  4. lacz_bd();
  5. $wynik=mysql_query($zapytanie);
  6. if(!$wynik){
  7. echo "Błąd. Połączenie nie powiodło się!";
  8. }
  9. $znalezionych=mysql_num_rows($wynik);
  10. echo "<a href=fast_menu_add_kreator.php>Dodaj pozycję</a>";
  11. echo "<form name=domyslne method=POST action=fast_menu_setdef.php>";
  12. echo "<table align=center border=1>";
  13. echo "<tr><td>ID</td><td>&nbsp;</td><td>Nazwa działu</td><td>Link do strony</td><td>Opcje</td></tr>";
  14.  
  15. for ($i=0; $i<$znalezionych; $i++){
  16. $wiersz=mysql_fetch_array($wynik);
  17.  
  18.  
  19. $select=$wiersz["select"];
  20. if($select==1){
  21. $select="checked=checked";
  22. }
  23. else{
  24. $select="";
  25. }
  26.  
  27. $id=$wiersz["fast_menuID"];
  28. echo "<tr><td>".$wiersz["fast_menuID"]."</td>";
  29. echo "<td><input type=radio name=id value=".$wiersz["fast_menuID"]." ".$select."/><input type=hidden name=nazwa_pozycji value=\"".$wiersz["nazwa"]."\"></td>";
  30. echo "<td>".$wiersz["nazwa"]."</td>";
  31. echo "<td>".$wiersz["link"]."</td>";
  32. echo "<td><small><a href=fast_menu_edit_kreator.php?fast_menuID=".$id.">[ edytuj ]</a>&nbsp;&nbsp;&nbsp;&nbsp;<a href=fast_menu_delete_kreator.php?usun=".$id." onclick=\"return confirm('Czy na pewno chcesz usunąć wybraną pozycję?');\">[ usuń ]</a></small></td></tr>";
  33. }
  34. echo "</table><br>";
  35. echo "<input type=submit name=submit value=Ustaw&nbsp;jako&nbsp;domyślne></form><br>";
  36. }
  37. ?>


Plik, który jest odpowiedzialny, za wykonanie formularza
  1. <?php
  2. include_once("safe_admin.php");
  3. include_once("funkcje.php");
  4.  
  5. $id=$_POST['id'];
  6. $nazwa=$_POST['nazwa_pozycji'];
  7. $query = "UPDATE fast_menu SET select='1' WHERE fast_menuID='$id'";
  8. mysql_query($query);
  9.  
  10. ?>
  11.  
  12. <html>
  13. <head>
  14. <link rel="stylesheet" type="text/css" href="site_style.css">
  15. </head>
  16. <body>
  17. <p class="title">SZYBKIE MENU - POTWIERDZENIE</p><br>
  18. <?php
  19. echo "Udało się!!!<br>Pozycja <?php echo $nazwa; ?> została ustawiona jako domyślna.<br><br><a href=fast_menu.php>Powrót</a>";
  20. ?>
  21. </body>
  22. </html>
PanGuzol
Domysle pole może być tylko jedno więc przed wykonanuiem zapytania
  1. <?php
  2. $query = "UPDATE fast_menu SET select='1' WHERE fast_menuID='$id'";
  3. ?>

wykonaj jeszcze zapytanie
  1. <?php
  2. $query = "UPDATE fast_menu SET select='0';
  3. ?>

Może to nie jest odpowiedź na twoje pytanie ale dobra rada ;]
hondek
PanGuzol:
A mozesz wyjasnic po co sie wykonuje takie zapytanie?
PanGuzol
Cytat(hondek @ 21.08.2007, 21:39:57 ) *
PanGuzol:
A mozesz wyjasnic po co sie wykonuje takie zapytanie?

Na podstawie tego pola wstawiany jest parametr checked w formularzu, jeśli kilka rekordów będzie miało taką wartość to kilka pól w formularzu będzie miało ten parametr.
A więc zanim zostanie zmieniona wartość dla nowego domyślnego pola powinien wszystkim rekordom ustawić wartość tej kolumny na 0.
hondek
dzieki : - )
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.