Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> wyszukiwarka+combobox z bazy
misty
post
Post #1





Grupa: Zarejestrowani
Postów: 366
Pomógł: 0
Dołączył: 2.01.2007

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


Witam.
tworze prosta wyszukwarke.tj uzytkownik ma 3 pola (combobox) z ktorych wybiera co chce szukac i zakresy(daty od -do). Daty pobierane sa automatycznie z bazy danych. Moj problem jest nastepujacy: gdy uzykownik wybierze date od i date do zawsze pojawia mi sie ostatnia w bazie data, tj. powiedzmy ze ostatnia jest 25-10-07, user wybierze zas 12-10-07 to mimo to wybierana jest ostatnia. Fragemencik mojego kodu:
  1. <?php
  2. $szukaj=$_POST['szukaj'];
  3. $opcja=$_POST['opcja'];
  4. $data_od_id=$_POST['data_od_id'];
  5. $data_od=$_POST['data_od'];
  6.  
  7. $pobierz_daty=pg_query($polaczenie, "select * from t_data;");
  8. echo "<table border><tr><td>Opcja</td><td>Data od</td></tr><form action='test.php' method='POST'><tr><td>
  9. <select name='opcja'>
  10. <option>opcja 1</option>
  11. <option>opcja 2</option></select></td>
  12. <td><select name='data_id'>";
  13. while ($row=pg_fetch_array($pobierz_daty)) {
  14. foreach($row as $data)
  15. $data_id=$row['id'];
  16. $data_od=$row['data'];
  17. echo "<option>$data_od</option>";
  18. }
  19. echo "</select></td><td><input type='submit' name='szukaj' value='szukaj'></td></tr></form></table>";
  20.  
  21. //uzytkownik wybiera jakas opcje i date i jesli kliknie na szukaj ma sie pojawic w
    ybrana opcja i data
  22. if($szukaj){
  23. echo "$opcja i $data_od<br>";
  24. }
  25. ?>

Problem wlasnie w tym, ze opcja sie zawsze wyswietla taka jaka wybral uzytkownik, natomiast data (czy data_id) zawsze pokazuje sie ostatnia w bazie. Ma ktos z Was moze pomysl gdzie mam blad?
Pzdr!
Go to the top of the page
+Quote Post
Tibod
post
Post #2





Grupa: Zarejestrowani
Postów: 108
Pomógł: 2
Dołączył: 9.05.2007
Skąd: INTERNET

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


Jeżeli dobrze zrozumiałem chcesz filtrować po dacie. Wszystko fajnie, tylko że w Twoim zapytaniu SQL nie ma żadnego filtrowania. Poczytaj może o WHERE


--------------------
"There are only 10 types of people in the world: Those who understand binary, and those who don't"
Go to the top of the page
+Quote Post
misty
post
Post #3





Grupa: Zarejestrowani
Postów: 366
Pomógł: 0
Dołączył: 2.01.2007

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


nie, nie rozumiesz mnie. filtrowaniem sie nie przejmuje, mam juz odpowiednie zapytania stworzone. chodzi o to, ze jak user wybierze date np. sprzed 3 dni i da 'szukaj' to zmienna $data_od ma miec wartosc daty sprzed 3 dni. a skrypt, zmienna $data_od przyjmuje zawsze ostatnia date w bazie, a wlasciwie to ostatnia wyciagnieta z bazy. jak widzisz daty sa wyciagniete za pomoca zapytania, ladnie sie pokazuja na stronie w postaci combo boxa. ale jakby wogole nie rozumial tego, ze $data_od moze przyjmowac rozne wartosci, w zaleznosci od tego co wybierze user. tu jest gdzies blad po str skryptu. wyszukiwanie to krok nastepny, na razie musze miec sczytywane odpowiednie wartosci (z czym wlasnie jest problem) wg ktorych pozniej bede dokonywac filtracji. mam nadz ze teraz wyjasnilam lepiej o co mi chodzi
Go to the top of the page
+Quote Post
Cezar708
post
Post #4





Grupa: Zarejestrowani
Postów: 1 116
Pomógł: 119
Dołączył: 10.05.2005
Skąd: Poznań

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


Nie wiem czy ja dobrze zrozumiałem, ale Ty chcesz pobrać z bazy danych wszystkie występowanie dat po to aby potem wyświetlić je w swoim combo. potem użytkownik sobie je wybierze i to będzie służyło do jakiejś tam filtracji...

To może tak zrób popraw odpowiedni fragment kodu:
  1. <?php
  2. while ($row=pg_fetch_array($pobierz_daty)) {
  3. foreach($row as $data)
  4. $data_id=$row['id'];
  5. $data_od_w_foreach=$row['data'];
  6. echo "<option value='$data_od_w_foreach'>$data_od_w_foreach</option>";
  7. }
  8. ?>


ponieważ wcześniej nadpisywałeś zmienną $data_od, dlatego była ta ostatnia z bazy.
Go to the top of the page
+Quote Post
misty
post
Post #5





Grupa: Zarejestrowani
Postów: 366
Pomógł: 0
Dołączył: 2.01.2007

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


no pewnie gdzies nadpisuje.. tylko akurat nie widze zadnej roznicy pomiedzy Twoim framgentem skryptu, a moim..
Go to the top of the page
+Quote Post
Cezar708
post
Post #6





Grupa: Zarejestrowani
Postów: 1 116
Pomógł: 119
Dołączył: 10.05.2005
Skąd: Poznań

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


Twój fragment:
  1. <?php
  2. while ($row=pg_fetch_array($pobierz_daty)) {
  3. foreach($row as $data)
  4. $data_id=$row['id'];
  5. $data_od=$row['data'];
  6. echo "<option>$data_od</option>";
  7. }
  8. ?>

Mój fragment:
  1. <?php
  2. while ($row=pg_fetch_array($pobierz_daty)) {
  3. foreach($row as $data)
  4. $data_id=$row['id'];
  5. $data_od_w_foreach=$row['data'];
  6. echo "<option value='$data_od_w_foreach'>$data_od_w_foreach</option>";
  7. }
  8. ?>


różnice:
1. zamieniłem nazwę $data_od na $data_od_w_foreach
2. dodałem do <option> parametr value='$data_od_w_foreach'

Jak widać różnice są tongue.gif i zmienna $data_od nie jest już nadpisywana
Go to the top of the page
+Quote Post
misty
post
Post #7





Grupa: Zarejestrowani
Postów: 366
Pomógł: 0
Dołączył: 2.01.2007

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


tej, ale na prawde roznicy nie ma-teraz za to jest nadpisywana zmienna '$data_od_w_foreach'. i efekt jest ten sam, to widac na pierwszy rzut oka. ale dla pewnosci wrzucilam Twoj fragment i tak jak mowilam-to jest to samo. czyli nadal nie dziala:/
Go to the top of the page
+Quote Post
Cezar708
post
Post #8





Grupa: Zarejestrowani
Postów: 1 116
Pomógł: 119
Dołączył: 10.05.2005
Skąd: Poznań

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


hmm... w takim razie nie zrozumiałem,

to może błąd masz tutaj:
  1. <select name='data_id'>


generujesz formatkę, która zawiera pole o nazwie `data_id` a poprzez POST pobierasz `data_od`
Cytat
  1. <?php
  2. $data_od=$_POST['data_od'];
  3. ?>


być może jak poprawisz nazwę to Ci pomoże.
Go to the top of the page
+Quote Post
misty
post
Post #9





Grupa: Zarejestrowani
Postów: 366
Pomógł: 0
Dołączył: 2.01.2007

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


nee, probowalam tez pobierac $data_od_id ale takze pojawia sie ostatnie id. o co mi chodzi, to rozumiesz dobrze:) tylko wlasnie nie wychodzi rozwiazanie problemu :/ generalnie stosowalam identyczny zapis kiedys w przypadku innego formularza. tylko tam pola nie byly w tabeli, tylko normalnie,tj.
opcja [combobox]
daty [combobox]
szukaj

i wtedy dzialalo.
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 Aktualny czas: 22.08.2025 - 02:04