Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Wybór zmiennej po WHERE za pomocą input type radio
slawekxx
post
Post #1





Grupa: Zarejestrowani
Postów: 189
Pomógł: 2
Dołączył: 28.08.2010

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


Witam , mam mały problem z wyborem instrukcji WHERE, a mianowicie chciałbym tu użyć pola input type="radio" do wyboru zmiennej (będzie ich 6) po WHERE
  1. $rows=mysql_query("select * from region WHERE region ='$regiony' ");
jak kod muszę dopisać aby to działało ?
Go to the top of the page
+Quote Post
2 Stron V   1 2 >  
Start new topic
Odpowiedzi (1 - 19)
wookieb
post
Post #2





Grupa: Moderatorzy
Postów: 8 989
Pomógł: 1550
Dołączył: 8.08.2008
Skąd: Słupsk/Gdańsk




Nie pytaj jaki kod tylko pokaż co próbowałeś. Spojrzałeś w ogóle jak prawidłowo obsługiwać pola RADIO?
Stwórz z wybranych elementów tablicę i wstaw do zapytania
  1. $where = ' pole IN ('.implode(',', $regiony).')';
  2. // pod warunkiem, że regiony to cyfry. Jeżeli nie to musisz każdy element tablica zaopatrzyć w apostrofy (lub cudzysłowia) na końcu i początku jego wartości.


Ten post edytował wookieb 12.09.2010, 07:17:14


--------------------
Go to the top of the page
+Quote Post
slawekxx
post
Post #3





Grupa: Zarejestrowani
Postów: 189
Pomógł: 2
Dołączył: 28.08.2010

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


Ok a jak ma do tego przypisać input radio
Go to the top of the page
+Quote Post
wookieb
post
Post #4





Grupa: Moderatorzy
Postów: 8 989
Pomógł: 1550
Dołączył: 8.08.2008
Skąd: Słupsk/Gdańsk




http://www.kurshtml.boo.pl/html/pole_wyboru,formularze.html

Ten post edytował wookieb 12.09.2010, 07:23:44


--------------------
Go to the top of the page
+Quote Post
slawekxx
post
Post #5





Grupa: Zarejestrowani
Postów: 189
Pomógł: 2
Dołączył: 28.08.2010

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


Czyli coś takiego ?
  1. <input type="radio" value="nazwa_region1"/>Region1
  2. <input type="radio" value="nazwa_region_2"/>Region2
Go to the top of the page
+Quote Post
wookieb
post
Post #6





Grupa: Moderatorzy
Postów: 8 989
Pomógł: 1550
Dołączył: 8.08.2008
Skąd: Słupsk/Gdańsk




Cytat
Jeśli chodzi o PHP jako nazwy wszystkich pól tego samego pytania można wpisać: name="nazwa[]". W takim przypadku w skrypcie będzie dostępna tablica $nazwa ($_POST['nazwa'] lub $_GET['nazwa']), a wartości kolejnych zaznaczonych elementów (tylko zaznaczonych), będzie można odczytać poprzez użycie: $nazwa[0], $nazwa[1], $nazwa[2] ($_POST['nazwa'][0], $_POST['nazwa'][1], $_POST['nazwa'][2] albo $_GET['nazwa'][0], $_GET['nazwa'][1], $_GET['nazwa'][2]) itd. (w zależności ile pól zostanie zaznaczonych).


--------------------
Go to the top of the page
+Quote Post
slawekxx
post
Post #7





Grupa: Zarejestrowani
Postów: 189
Pomógł: 2
Dołączył: 28.08.2010

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


Póle zaznaczone będzie tylko jedno bo pod nazwą jednego regionu jest więcej nazw miast , które chcę wyświetlić z tabeli
Go to the top of the page
+Quote Post
phpion
post
Post #8





Grupa: Moderatorzy
Postów: 6 072
Pomógł: 861
Dołączył: 10.12.2003
Skąd: Dąbrowa Górnicza




Cytat(wookieb @ 12.09.2010, 08:16:12 ) *
  1. $where = ' pole IN ('.implode(',', $regiony).')';

Już po raz któryś widzę, jak wprowadzasz ludzi w błąd. Przecież lista pól radio (w tym przypadku regiony) to niejako odpowiednik listy <select> czyli umożliwia wybór 1 elementu (poza inną "konfiguracją" oczywiście). IN sprawdzi się w przypadku pól checkbox. Można oczywiście IN zastosować z polami radio, ale one z założenia powinny pozwalać na wybór tylko 1 opcji wewnątrz "grupy".

@slawekxx:
Pola definiujesz tak:
  1. <input type="radio" name="region" value="nazwa_region1"/>Region1
  2. <input type="radio" name="region" value="nazwa_region_2"/>Region2

Zwróć uwagę na tą samą wartość atrybutu name dla wszystkich regionów.
W PHP odbierasz to jako (jeśli formularz idzie POSTem, jeśli GETem to $_GET):
  1. $region = $_POST['region'];

Przydałoby się jeszcze obsłużyć brak wyboru regionu przez użytkownika (isset) ale to pozostawiam Tobie smile.gif
Zapytanie wykonujesz mniej-więcej takie, jak w Twoim pierwszym poście.

Jeśli jednak chodzi Ci o wybór X spośród regionów to pola formularza powinny wyglądać tak:
  1. <input type="checkbox" name="region[]" value="nazwa_region1"/>Region1
  2. <input type="checkbox" name="region[]" value="nazwa_region_2"/>Region2

Zwróć znowu uwagę na nazwę (region[]) oraz na zmianę typu z radio na checkbox. W tym przypadku kończysz zapytanie warunkiem podanym przez ~wookieba.
Go to the top of the page
+Quote Post
wookieb
post
Post #9





Grupa: Moderatorzy
Postów: 8 989
Pomógł: 1550
Dołączył: 8.08.2008
Skąd: Słupsk/Gdańsk




A tfu pomyliło mi się z checkboxem. Muszę się obudzić.


--------------------
Go to the top of the page
+Quote Post
slawekxx
post
Post #10





Grupa: Zarejestrowani
Postów: 189
Pomógł: 2
Dołączył: 28.08.2010

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


Dobra kawa się przyda się z rana :-)

to jak to ma być bo trochę jestem zdezorientowany :-)
Go to the top of the page
+Quote Post
wookieb
post
Post #11





Grupa: Moderatorzy
Postów: 8 989
Pomógł: 1550
Dołączył: 8.08.2008
Skąd: Słupsk/Gdańsk




  1. if ($_POST)
  2. {
  3. if (!empty($_POST['region']) && is_scalar($_POST['region']))
  4. {
  5. $region = mysql_real_escape_string($_POST['region']);
  6. $resource = mysql_query('SELECT * FROM tabela WHERE region = "'.$region.'"');
  7. }
  8. else {
  9. // tutaj alert o nie wybraniu regionu
  10. }
  11. }

Formularz standardowo.
  1. <input type="radio" name="region" value="pomorskie" />
  2. <input type="radio" name="region" value="mazowieckie" />
  3. <input type="radio" name="region" value="slaskie" />

Gdzie wartości są zależne od tego co ty tam wstawiasz.


Ten post edytował wookieb 12.09.2010, 08:18:48


--------------------
Go to the top of the page
+Quote Post
slawekxx
post
Post #12





Grupa: Zarejestrowani
Postów: 189
Pomógł: 2
Dołączył: 28.08.2010

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


a jak dodać przycisk input type submit , aby po kliknięciu wyświetlały się nazwy miast ?

Go to the top of the page
+Quote Post
wookieb
post
Post #13





Grupa: Moderatorzy
Postów: 8 989
Pomógł: 1550
Dołączył: 8.08.2008
Skąd: Słupsk/Gdańsk




Dude nie przesadzaj co? Submita nie umiesz dodać a do tego pobrac prostych danych z bazy? Nie będziemy czytać kursu na dobranoc wszystkim którzy sami tego nie umieją zrobić.


--------------------
Go to the top of the page
+Quote Post
slawekxx
post
Post #14





Grupa: Zarejestrowani
Postów: 189
Pomógł: 2
Dołączył: 28.08.2010

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


Mam jeszcze jedno pytanie chcę połączyć dwie tabele , napisałem trochę kodu ale chyba nie jest poprawny
  1. (SELECT " 'name_pl','dzien','czas','wind_dir','wind_force','temperature','pressure' FROM Tabela1,Tabela2 WHERE region ="' .$region.'" Tabela1.station_id=Tabela2.station_id ")


zmienna- name_pl pochodzi z Tabeli1 a pozostałe z Tabeli 2

Ten post edytował slawekxx 12.09.2010, 16:40:46
Go to the top of the page
+Quote Post
wookieb
post
Post #15





Grupa: Moderatorzy
Postów: 8 989
Pomógł: 1550
Dołączył: 8.08.2008
Skąd: Słupsk/Gdańsk




Chyba tzn?


--------------------
Go to the top of the page
+Quote Post
slawekxx
post
Post #16





Grupa: Zarejestrowani
Postów: 189
Pomógł: 2
Dołączył: 28.08.2010

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


W taki zapytaniu
  1. SELECT name_pl,region,dzien,czas,wind_dir,wind_force,temperature,pressure,lng,lat FROM region,pogoda
  2. WHERE region.station_id=pogoda.station_id
w myadmin działa bez zarzutu , tylko nie umie napisać poprawnego kodu w php. Wersja pierwsza jest ok
  1. <body>
  2. <form name="form1" id="form1" action="" method="post">
  3. <table>
  4. <tr>
  5. <tr><td>Wybierz Region</td></tr>
  6. <tr><td><input type="radio" name="region" value="Peloponez" />Peloponez</td></tr>
  7. <tr><td><input type="radio" name="region" value="Cyklady" />Cyklady</td></tr>
  8. <tr><td><input type="radio" name="region" value="Macedonia Srodkowa" />Macedonia Środkowa</td></tr>
  9. <tr><td><input type="radio" name="region" value="Macedonia Zachodnia" />Macedonia Zachodnia</td></tr>
  10. <tr><td><input type="radio" name="region" value="Macedonia Wschodnia i Tracja" />Macedonia Wschodnia</td></tr>
  11. <tr><td><input type="radio" name="region" value="Tesalia" />Tesalia</td></tr>
  12. <tr><td><input type="radio" name="region" value="Sporady" />Sporady</td></tr>
  13. <tr><td><input type="radio" name="region" value="Kreta" />Kreta</td></tr>
  14. <tr><td><input type="radio" name="region" value="Epirus" />Epirus</td><tr>
  15. <tr><td><input type="radio" name="region" value="Dodekanez" />Dodekanez</td></tr>
  16. <tr><td><input type="radio" name="region" value="Wyspy Egejskie Północne" />Wyspy Egejskie Północne</td></tr>
  17. <tr><td><input type="radio" name="region" value="Wyspy Jońskie" />Wyspy Jońskie</td></tr>
  18. <tr><td><input type="radio" name="region" value="Wyspy Sorońskie" />Wyspy Sorońskie</td></tr>
  19. <td><input type="submit" name="Wybierz" value="Wybierz"/></td>
  20. </tr>
  21. </table>
  22.  
  23.  
  24. // łączymy się z bazą danych
  25.  
  26.  
  27.  
  28.  
  29. if ($_POST)
  30. {
  31. if (!empty($_POST['region']) && is_scalar($_POST['region']))
  32. {
  33. $region = mysql_real_escape_string($_POST['region']);
  34. $resource = mysql_query('SELECT * FROM region WHERE region = "'.$region.'"');
  35.  
  36. while($rew=mysql_fetch_array($resource)){
  37.  
  38. echo "<h4>" .$rew['name_pl'] ."</h4>";
  39.  
  40.  
  41. }
  42.  
  43. }
  44. }
  45.  


chcę zamienić kod w linijce 34 z kodem jak wyżej ,ale z funkcjonalnością wyboru regionu

Ten post edytował slawekxx 12.09.2010, 17:29:27
Go to the top of the page
+Quote Post
wookieb
post
Post #17





Grupa: Moderatorzy
Postów: 8 989
Pomógł: 1550
Dołączył: 8.08.2008
Skąd: Słupsk/Gdańsk




No ale ja nie widzę abyś w tym kodzie w ogóle próbował wstawić twoje zapytanie. Wstaw to powiemy Ci co masz źle.


--------------------
Go to the top of the page
+Quote Post
slawekxx
post
Post #18





Grupa: Zarejestrowani
Postów: 189
Pomógł: 2
Dołączył: 28.08.2010

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


  1. $resource = mysql_query('SELECT 'name_pl','dzien','czas','wind_dir','wind_force','temperature','pressure','lat','lng', FROM 'region','pogoda' WHERE region =" ' .$region.' " AND
  2.  
  3. 'region.station_id'='pogoda.station_id '');
to jest ten kod :-)

Ten post edytował slawekxx 12.09.2010, 18:43:39
Go to the top of the page
+Quote Post
wookieb
post
Post #19





Grupa: Moderatorzy
Postów: 8 989
Pomógł: 1550
Dołączył: 8.08.2008
Skąd: Słupsk/Gdańsk




Podstawy... http://pl.php.net/manual/en/language.types.string.php
Zapytanie jest stringiem a nie "byle czym"


--------------------
Go to the top of the page
+Quote Post
slawekxx
post
Post #20





Grupa: Zarejestrowani
Postów: 189
Pomógł: 2
Dołączył: 28.08.2010

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


A gdzie mam te ukośniki wstawić ?
Go to the top of the page
+Quote Post

2 Stron V   1 2 >
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 Aktualny czas: 20.08.2025 - 03:50