Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][SQL] Przekazanie informacji z formularza i wykorzystanie w MYSQL
Forum PHP.pl > Forum > Przedszkole
Klimek
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.
viking
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
Klimek
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ć..
olszam
dałbym dodatkowo jeszcze do inputa w submit name="show" i do warunku jeszcze isset($_POST['show'])
nospor
To moze pokaz jak sprawdziles

Dodatkowo pokaz wynik
print_r($_POST);
po wyslaniu formularza
Klimek
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 )
nospor
['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. }
olszam
['REQUEST_METHOD'] == 'POST';
?
Nie chcę tu krytykować ale...
Klimek
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.
viking
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.
Klimek
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ę.
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.