Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Odświeżanie po kliknięciu
wariat12
post
Post #1





Grupa: Zarejestrowani
Postów: 18
Pomógł: 0
Dołączył: 28.03.2015

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


Witam,

mam taki filtr towarów, który po wybraniu checkboxa wysyła POSTem zmienną i wrzuca do zapytania SQL, problem pojawia się tutaj, że program pokazuje cały czas pierwszą wersję zapytania, czyli tak jakby bez filtrów, a gdy robie sobię podgląd zapytania, to widzę, że zmienia się po przyciśnięciu submit.

  1. $sql = "SELECT cecha_id_towaru FROM cecha WHERE 1 = 1 ";
  2. if ($nazwa_dzial) {
  3. $sql .= " AND cecha_dzial = '$nazwa_dzial' OR cecha_dzial_ii = '$nazwa_dzial' OR cecha_dzial_iii = '$nazwa_dzial'";
  4. }
  5. if (isset($_POST["typ"])) {
  6. $typ_sql = $_POST["typ"];
  7. $sql .= " AND cecha_typ='$typ_sql'";
  8. }


Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 6)
nospor
post
Post #2





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




No skoro wyswietlone zapytanie jest zmienione to raczej jest. Problem wiec ze albo ty tego zapytania nie przekazujesz do wykonania albo plamy na Sloncu.
Pokaza caly kod, wlacznie z formularzem


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

"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
wariat12
post
Post #3





Grupa: Zarejestrowani
Postów: 18
Pomógł: 0
Dołączył: 28.03.2015

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


Przepraszam, myślałem, że może popełniam jakiś oczywisty i bardzo częsty błąd, stąd to pytanie. Może uda Ci się coś wyczytać z tego:

  1. echo "<form action='?' method='post'>";
  2.  
  3. echo "Typ: <br />";
  4. $wynika = mysql_query("SELECT DISTINCT cecha_typ FROM cecha WHERE cecha_dzial = '$nazwa_dzial' OR cecha_dzial_ii = '$nazwa_dzial' OR cecha_dzial_iii = '$nazwa_dzial'")
  5. or die('Błąd zapytania');
  6. if(mysql_num_rows($wynika) > 0) {
  7. while($a = mysql_fetch_assoc($wynika)) {
  8. $typ = $a['cecha_typ'];
  9. echo " <input type='checkbox' name='typ' value='$typ' />";
  10. echo $a['cecha_typ']."<br />";
  11. }
  12. }
  13.  
  14.  
  15. echo "<input type='submit' name='send' value='Filtruj' />";
  16. echo "</form>";
  17.  
  18.  
  19.  
  20.  
  21. $sql = "SELECT cecha_id_towaru FROM cecha WHERE 1 = 1 ";
  22. if ($nazwa_dzial) {
  23. $sql .= " AND cecha_dzial = '$nazwa_dzial' OR cecha_dzial_ii = '$nazwa_dzial' OR cecha_dzial_iii = '$nazwa_dzial'";
  24. }
  25. if (isset($_POST["typ"])) {
  26. $typ_sql = $_POST["typ"];
  27. $sql .= " AND cecha_typ='$typ_sql'";
  28. }
  29.  
  30. $wynik = mysql_query($sql)
  31. or die('Błąd zapytania');
  32.  
  33. echo "SQL=" . $sql; // for debugging
  34.  
  35. if(mysql_num_rows($wynik) > 0) {
  36.  
  37. while($r = mysql_fetch_assoc($wynik)) {
  38.  
  39. $id = $r['cecha_id_towaru'];
  40.  
  41. $wynik2 = mysql_query("SELECT towar_kod, towar_kod_producenta, towar_nazwa, towar_nazwa_dodatkowa, towar_jednostka_miary FROM towar WHERE towar_id='$id'")
  42. or die('Błąd zapytania');
  43. if(mysql_num_rows($wynik2) > 0) {
  44.  
  45. while($k = mysql_fetch_assoc($wynik2)) {
  46. if($kontrola != $wynik2)
  47. {
  48. echo "<center><p>Kod towaru: ".$k["towar_kod"]."<br /> Nazwa: ".$k["towar_nazwa"]."<br /> Nazwa dodatkowa: ".$k["towar_nazwa_dodatkowa"]."<br /> Jednosta miary: ".$k["towar_jednostka_miary"]."<br /><br /></p></center>";
  49. $kontrola = $wynik2;
  50. }
  51. }
  52. }
  53. }
  54. }
Go to the top of the page
+Quote Post
nospor
post
Post #4





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




Czyli mowisz, ze
echo "SQL=" . $sql;
wyswietla poprawny sql ze zmienionymi warunkami?


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

"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
wariat12
post
Post #5





Grupa: Zarejestrowani
Postów: 18
Pomógł: 0
Dołączył: 28.03.2015

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


Tak, w momencie, gdy zaznaczam coś w formularzu i klikam "Filtruj" echo się zmienia, lecz wyświetla mi cały czas tę samą listę rekordów, tak jakby nie pojawiał się nowy warunek w WHERE.
Go to the top of the page
+Quote Post
nospor
post
Post #6





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




To spowodu tych OR ktore nawaliles.

Pamietaj, ze OR i AND mają inną siłę, tak samo jak + i *

2 + 3 * 4
da inny wynik niż
(2 +3) * 4

To samo musisz miec na uwage w mysql


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

"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
wariat12
post
Post #7





Grupa: Zarejestrowani
Postów: 18
Pomógł: 0
Dołączył: 28.03.2015

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


Jeju, jesteś genialny, drugi dzień się wkurzałem na to, a sprawę załatwił jeden nawias! Dzięki wielkie od razu za wyjaśnienie.
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: 19.08.2025 - 15:38