Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP][SQL] Przekazanie informacji z formularza i wykorzystanie w MYSQL
Klimek
post 24.08.2017, 08:46:32
Post #1





Grupa: Zarejestrowani
Postów: 11
Pomógł: 0
Dołączył: 20.07.2017

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


Witajcie mam następujący problem.

Przygotowany mam formularz, który powinien przekazywać dane do MYSQL, lecz tak nie robi.
  1. echo"<form action='test.php' method='post'>";
  2. echo"<p>";
  3. echo"<b>Month: </b>";
  4. echo"<select name='miesiac' size='1'>";
  5. echo"<option></option>";
  6. echo"<option value='1'>January</option>";
  7. echo"<option value='2'>February</option>";
  8. echo"<option value='3'>March</option>";
  9. echo"<option value='4'>April</option>";
  10. echo"<option value='5'>May</option>";
  11. echo"<option value='6'>June</option>";
  12. echo"<option value='7'>July</option>";
  13. echo"<option value='8'>August</option>";
  14. echo"<option value='9'>September</option>";
  15. echo"<option value='10'>October</option>";
  16. echo"<option value='11'>November</option>";
  17. echo"<option value='12'>December</option>";
  18. echo"</select>";
  19. echo"<b>Year: </b>";
  20. echo"<select name='rok' size='1'>";
  21. echo"<option></option>";
  22. for($i=2014;$i<=date('Y');$i++)
  23. {
  24. echo"<option>$i</option>";
  25. }
  26. echo"</select>";
  27. echo"<input type='submit' value='Show' />";
  28. echo"</p>";
  29. echo"</form>";
  30.  
  31. $miesiac=$_POST['miesiac'];
  32. $rok=$_POST['rok'];
  33.  
  34. echo"<b><font size='+2'><h1>Statistic for $miesiac - $rok</h1></font></b>";


Ogólnie krzaczy mi się na 31 i 32 linijce. Mówi, że jest to niezidentyfikowany indeks, choć podczas tworzenia innego pliku mam tak wprowadzone i działa normalnie.
Dążę do tego, aby wyrażenie:

Kod
$zapytanie = "select sum(ilosc) as ile  from `zamowienie` where data_zlecenia >= `data_zakonczenia_badania`='$rok' && `data_zakonczenia_badania`='$miesiac' && `status`='4' ";



Zadziałało.

Ten post edytował Klimek 24.08.2017, 09:13:22
Go to the top of the page
+Quote Post
viking
post 24.08.2017, 09:48:59
Post #2





Grupa: Zarejestrowani
Postów: 6 378
Pomógł: 1116
Dołączył: 30.08.2006

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


Przy pierwszym wejściu na stronę, przed wysłaniem formularza dane nie będą odnalezione zatem będą błędy. Sprawdzaj czy request_method == post


--------------------
Go to the top of the page
+Quote Post
Klimek
post 24.08.2017, 10:47:45
Post #3





Grupa: Zarejestrowani
Postów: 11
Pomógł: 0
Dołączył: 20.07.2017

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


Cytat(viking @ 24.08.2017, 10:48:59 ) *
Przy pierwszym wejściu na stronę, przed wysłaniem formularza dane nie będą odnalezione zatem będą błędy. Sprawdzaj czy request_method == post


Sprawdziłem żadnego efektu. Dziwnym trafem jest to, że praktycznie identyczny formularz wykorzystałem w innym pliku i działa. Tutaj niestety nie chce zatrybić..
Go to the top of the page
+Quote Post
olszam
post 24.08.2017, 10:49:25
Post #4





Grupa: Zarejestrowani
Postów: 342
Pomógł: 23
Dołączył: 20.01.2011
Skąd: Chełm

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


dałbym dodatkowo jeszcze do inputa w submit name="show" i do warunku jeszcze isset($_POST['show'])
Go to the top of the page
+Quote Post
nospor
post 24.08.2017, 10:49:45
Post #5





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




To moze pokaz jak sprawdziles

Dodatkowo pokaz wynik
print_r($_POST);
po wyslaniu formularza


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
Klimek
post 24.08.2017, 11:42:29
Post #6





Grupa: Zarejestrowani
Postów: 11
Pomógł: 0
Dołączył: 20.07.2017

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


Request method umieszczałem w kilku różnych miejscach i nie otrzymałem żadnego efektu. Dodatkowo wzbogacałem go o $_SERVER['REQUEST_METHOD']== 'POST') i również bez efektu.

ob_start();
session_start();
require("czy_zalogowany.php");
require('function.inc');
require("nazwy_raportow.inc");
['REQUEST_METHOD'] == 'POST';
[/code]

Wynik print_r($_POST);
Kod
Array ( [miesiac] => 1 [rok] => 2015 )
Go to the top of the page
+Quote Post
nospor
post 24.08.2017, 12:03:36
Post #7





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




['REQUEST_METHOD'] == 'POST';
yyy... ale co to ma niby byc? NIe slyszales ze do sprawdzania uzywa sie IF?

  1. if (!empty($_POST)) {
  2. // tutaj twoja czesc pobierajaca dane z bazy itp
  3.  
  4. $miesiac=$_POST['miesiac'];
  5. $rok=$_POST['rok'];
  6.  
  7. echo"<b><font size='+2'><h1>Statistic for $miesiac - $rok</h1></font></b>";
  8. }


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
olszam
post 24.08.2017, 12:33:54
Post #8





Grupa: Zarejestrowani
Postów: 342
Pomógł: 23
Dołączył: 20.01.2011
Skąd: Chełm

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


['REQUEST_METHOD'] == 'POST';
?
Nie chcę tu krytykować ale...
Go to the top of the page
+Quote Post
Klimek
post 24.08.2017, 13:26:37
Post #9





Grupa: Zarejestrowani
Postów: 11
Pomógł: 0
Dołączył: 20.07.2017

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


Dopiero "raczkuję" w PHP więc proszę o wyrozumiałość, poza tym temat założyłem w dziale "Przedszkole" także wszelkie komentarze to chyba nie są na miejscu.

Mam jeszcze kolejne pytanie.

Muszę wykorzystać dane z formularza, które użytkownik wybierze podczas uzupełniania formularza.

Na sucho zapytanie do bazy danych wygląda tak:

Kod
select sum(ilosc) as ile from `zamowienie` where `data_zlecenia` >= '2014-01-01' && `data_zlecenia` <='2014-01-31' && `status`='4' && `termin_zakonczenia`>`data_zakonczenia_badania`


Próbowałem różnych opcji ( wliczając nawet $_GET), ale niestety nic nie przyniosło efektu.
Go to the top of the page
+Quote Post
viking
post 24.08.2017, 14:02:52
Post #10





Grupa: Zarejestrowani
Postów: 6 378
Pomógł: 1116
Dołączył: 30.08.2006

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


W zależności od sterownika którego używasz powinieneś zamiast wstawienia bezpośrednio wartości zabindowac tam parametry z get-post. Na pewno nigdy nie bezpośrednio do zrobisz lukę w systemie.


--------------------
Go to the top of the page
+Quote Post
Klimek
post 25.08.2017, 09:42:00
Post #11





Grupa: Zarejestrowani
Postów: 11
Pomógł: 0
Dołączył: 20.07.2017

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


Cytat(viking @ 24.08.2017, 15:02:52 ) *
W zależności od sterownika którego używasz powinieneś zamiast wstawienia bezpośrednio wartości zabindowac tam parametry z get-post. Na pewno nigdy nie bezpośrednio do zrobisz lukę w systemie.


W tamtym przykładzie sprawdzałem tylko poprawność danej funkcji.

Kod
$zapytanie = "SELECT sum(ilosc) as ile FROM `zamowienie` WHERE `data_zlecenia`  >= year(data_zakonczenia_badania) ='$rok' AND miesiac(data_zakonczenia_badania)='$miesiac' && `status`='4' && `termin_zakonczenia`>`data_zakonczenia_badania`";


Kombinuje jakoś przerobić tą funkcję, ale zawsze zwraca to, czego nie chcę.
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: 8.07.2025 - 09:24