• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Jak wysłać z formularza w html zapytanie o wszystko do MySQL

Object Storage Arubacloud
+1 głos
1,659 wizyt
pytanie zadane 18 maja 2015 w PHP przez fmc Początkujący (260 p.)
zmienione kategorie 19 maja 2015 przez Arkadiusz Waluk
Witam!

W HTML wykonałem formularz z listą województw tak jak poniżej:

<form action="dane.php" method="post">
                    <label>Województwo </label>
                        <select name="wojewodztwo">
                            <option value="wojewodztwo" />
                            <option value="Dolnośląskie" />Dolnośląskie
                            <option value="Kujawsko-pomorskie" />Kujawsko-pomorskie
                            <option value="Lubuskie" />Lubuskie
                            <option value="Lubelskie" />Lubelskie
                            <option value="Łódzkie" />Łódzkie
                            <option value="Małopolskie" />Małopolskie
                            <option value="Mazowieckie" />Mazowieckie
                            <option value="Opolskie" />Opolskie
                            <option value="Podkarpackie" />Podkarpackie
                            <option value="Podlaskie" />Podlaskie
                            <option value="Pomorskie" />Pomorskie
                            <option value="Śląskie" />Śląskie
                            <option value="Świętokrzyskie" />Świętokrzyskie
                            <option value="Warmińsko-mazurskie" />Warmińsko-mazurskie
                            <option value="Wielkopolskie" />Wielkopolskie
                            <option value="Zachodniopomorskie" />Zachodniopomorskie
                        </select>

<input id="submit" type="submit" name="dodaj" value="Szukaj"/>
                </form>

Natomiast w pliku .php mam następujące zapytanie:

$zapytanietxt = "SELECT dane.id, dane.kod, dane.miasto, dane.idtyp, typ.typ, dane.idwojewodztwo, wojewodztwo.wojewodztwo, dane.nazwa, dane.nazwa2, dane.ulica, dane.tel, dane.fax, dane.mail, dane.www, dane.plik FROM dane, typ, wojewodztwo where dane.idtyp=typ.idtyp and dane.idwojewodztwo=wojewodztwo.idwojewodztwo and wojewodztwo='$wojewodztwo' order by wojewodztwo";

Chciałbym, żeby w sytuacji, gdy formularz jest ustawiony na pierwszej opcji "pustej", przyciśnięcie przycisku "submit" lub po prostu wejście na stronę powodowalo wyświetlenie calej zwartości bazy danych.

2 odpowiedzi

+2 głosów
odpowiedź 18 maja 2015 przez ssnake Obywatel (1,860 p.)
musisz w php sptrawdzić dane przesłane z formularza i na ich podstawie zbudować odpowiednie zapytanie do bazy (np zmodyfikować warunki w WHERE)
komentarz 18 maja 2015 przez fmc Początkujący (260 p.)

Dzięki za podpowiedź. To wiem. Z formularza wysyła się to co jest wpisane jako value nastomiast nie przekłada się to na zapytanie w MySQL. Jak wpisuję "z palca" wojewodztwo w zapytanie to otrzymuję dane z całej bazy. Tak jak chcę. Natomiast z fomularz, mimo tego, że wydaje mi się, że jest ok zapytanie nie generuje właściwej odpowiedzi.

komentarz 19 maja 2015 przez Boshi VIP (100,240 p.)
W takim razie wyświetl  sobie zapytanie przez var_dump i zobacz co otrzymujesz w zmiennej.
komentarz 19 maja 2015 przez ssnake Obywatel (1,860 p.)

i lepiej będzie przekazywać w value id województwa a nie jego nazwę

komentarz 19 maja 2015 przez fmc Początkujący (260 p.)

Dzięki za radę.

Var_dump wyświetla mi prawidłową wartość zmiennej, czyli wojewodztwo. Problemem jest wstawienie jej do zapytania. Tam w miejscu zmiennej powinien pojawić się jej wynik i wtedy zapytanie powinno zadzialać. Teoretycznie powinno być ok, ale nie jest ...

0 głosów
odpowiedź 19 maja 2015 przez elaen Gaduła (4,760 p.)

w dane.php dodaj np cos takeigo

<?php

if($_POST){
   if($_POST['wojewodztwo']=='wojewodztwo'){
 /*tutaj zapytanie gdy ktos zostawi pusta opcje select * from dane,typ,wojewodztwo chyba bedziesz musial uzyc group by ale nie jestem pewny*/
} else{
  //twoje normalne zapytanie gdy ktos zaznaczy jakies wojewodztwo a nie zostawi puste
}
} else{
// gdy ktos w ogole wejdzie do skryptu bez posta

}
?>

oczywiscie pominalem wszystkie wzgledy bezpieczenstwa

komentarz 19 maja 2015 przez efiku Szeryf (75,160 p.)
edycja 19 maja 2015 przez efiku
if($_POST) zawsze bedzie true xd
// EDIT: empty array, ktore castowane jest jako bool false, link do stacka niżej w dyskusji.

lepiej dac $_SERVER["REQUEST_METHOD"] == "POST"
komentarz 19 maja 2015 przez elaen Gaduła (4,760 p.)
kompletna bzdura nie będzie zawsze tru ponieważ jak wejdzie sobie ktos prosto do dane.php post bedzie pust i będzie = null; jezeli tak sie czepiasz moze dać isset($_POST); sprawdź następnym razem czy napewno jezeli mi nie wierzysz to sobie wklej ten kod:

<?php
        if($_POST){
            
            print_r($_POST);
        } else{
            ?>
<form method="post">
                    <label>Województwo </label>
                        <select name="wojewodztwo">
                            <option value="wojewodztwo" />
                            <option value="Dolnośląskie" />Dolnośląskie
                            <option value="Kujawsko-pomorskie" />Kujawsko-pomorskie
                            <option value="Lubuskie" />Lubuskie
                            <option value="Lubelskie" />Lubelskie
                            <option value="Łódzkie" />Łódzkie
                            <option value="Małopolskie" />Małopolskie
                            <option value="Mazowieckie" />Mazowieckie
                            <option value="Opolskie" />Opolskie
                            <option value="Podkarpackie" />Podkarpackie
                            <option value="Podlaskie" />Podlaskie
                            <option value="Pomorskie" />Pomorskie
                            <option value="Śląskie" />Śląskie
                            <option value="Świętokrzyskie" />Świętokrzyskie
                            <option value="Warmińsko-mazurskie" />Warmińsko-mazurskie
                            <option value="Wielkopolskie" />Wielkopolskie
                            <option value="Zachodniopomorskie" />Zachodniopomorskie
                        </select>

<input id="submit" type="submit" name="dodaj" value="Szukaj"/>
                </form>
<?php
        }

?>

 

downvote za niewiedze nie jest dobrym glosem pozdrawiam :)
komentarz 19 maja 2015 przez efiku Szeryf (75,160 p.)
edycja 19 maja 2015 przez efiku

http://stackoverflow.com/questions/409351/post-vs-serverrequest-method-post

smiley

PS: Nie będzie null tylko empty array.
"$_POST will always exist, though it may be empty (which is cast to boolean false). And what do you mean by "cleaner"? –" http://stackoverflow.com/a/409365

komentarz 19 maja 2015 przez elaen Gaduła (4,760 p.)
no i ? w tym przypadku jest puste, rownie dobrze moge wyslac kazdego posta na kazda strone i co z tego?

koniec dyskusji nie mam czasu na to pozdraiwam
komentarz 19 maja 2015 przez efiku Szeryf (75,160 p.)
Pozdrawiam:)
komentarz 19 maja 2015 przez elaen Gaduła (4,760 p.)

ps. Nie będzie true tylko będzie empty

'if($_POST) zawsze bedzie true xd'

pozdrawiam

komentarz 19 maja 2015 przez efiku Szeryf (75,160 p.)

Wiem, nie sprecyzowałem - przepraszam. Ale czy trzeba tak agresywnie? 
"koniec dyskusji nie mam czasu na to pozdraiwam" - zgadzam się.  Zerknij na tego stacka w wolnej chwili. :)

komentarz 19 maja 2015 przez fmc Początkujący (260 p.)
Dzięki za rady. Spróbuję zastosować. W teorii to powinno wszystko być proste, wynik ze zmiennej wstawiany jest w zapytaniu a zapytanie generuje odpowiedź z bazy. Z jakiegoś powodu wynik jest pusty. W sumie to taka forma generowania zapytania z bazy, w oparciu o formularz w HTML, wydaje mi się, że jest dosyć powszechna. Musze "pogrzebać" sieci.

Podobne pytania

0 głosów
2 odpowiedzi 13,397 wizyt
0 głosów
1 odpowiedź 149 wizyt
0 głosów
1 odpowiedź 1,197 wizyt
pytanie zadane 25 lutego 2017 w SQL, bazy danych przez kacperl95 Obywatel (1,980 p.)

92,621 zapytań

141,477 odpowiedzi

319,817 komentarzy

62,005 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...