Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [php][mysql] Zmienne i zapytanie
in5ane
post
Post #1





Grupa: Zarejestrowani
Postów: 1 335
Pomógł: 34
Dołączył: 9.11.2005
Skąd: Wrocław

Ostrzeżenie: (10%)
X----


Witam, mam problem.

Chodzi o to, że jest problem z wiekiem w wyszukiwarce.

  1. <select name="wiek" style="font-family: Verdana; font-size: 10px">
  2. <option value="%">--- dowolny ---</option>
  3. <option value=" wiek <= 22">Do 22 lat</option>
  4. <option value=" BETWEEN 23 AND 30">Od 23 do 30 lat</option>
  5. <option value=" BETWEEN 31 AND 40">Od 31 do 40 lat</option>
  6. <option value=" wiek >= 41">Powyżej 41 lat</option>

To jest kod do wyszukiwarnia wzgledem wieku.

  1. <?php
  2. $query = "SELECT * FROM dziwki WHERE uslugi LIKE '$rodzaj' AND data >= '$data' AND status = '2' AND woj LIKE '$woj' AND wiek '$wiek' ORDER BY time DESC LIMIT $od,$ilosc";
  3. ?>

Zapytanie zaś wygląda tak.

Nie działa to.
Poza tym, że to nie działa wyświetla mi taki komunikacik:
Kod
Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource



Proszę o pomoc, z góry dziękuję.

Ten post edytował in5ane 13.04.2007, 12:10:44
Go to the top of the page
+Quote Post
piczu
post
Post #2





Grupa: Zarejestrowani
Postów: 182
Pomógł: 0
Dołączył: 4.01.2005
Skąd: piczu.info

Ostrzeżenie: (10%)
X----


  1. <option value=" wiek <= 22">Do 22 lat</option>
  2. <option value=" wiek >= 41">Powyżej 41 lat</option>

na pewno w tych przypadkach slowo wiek ci sie powtorzy w zapytaniu
  1. <option value="%">--- dowolny ---</option>

tu tez nie bedzie poprawne
Ogolnie proponowalbym ci zmienic podejscie, bo takie wysylanie czesci zapytan SQL jest niebezpieczne
Go to the top of the page
+Quote Post
in5ane
post
Post #3





Grupa: Zarejestrowani
Postów: 1 335
Pomógł: 34
Dołączył: 9.11.2005
Skąd: Wrocław

Ostrzeżenie: (10%)
X----


To jak mam to np. zrobic?
Go to the top of the page
+Quote Post
siemakuba
post
Post #4





Grupa: Przyjaciele php.pl
Postów: 1 112
Pomógł: 20
Dołączył: 10.04.2005

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


Najpierw zacznij od podstaw, czyli wyświetlenia zapytania kiedy już wszystko do niego podstawisz.
Załóżmy taką sytuację:

  1. <?php
  2. // Z selecta wybierasz "Od 23 do 30 lat". 
  3.  
  4. $wiek = ' BETWEEN 23 AND 30';
  5.  
  6. // teraz pakujesz zmienną $wiek do swojego zapytania (fragment):
  7.  
  8. $sql = "AND wiek '$wiek' ORDER BY time ";
  9.  
  10. // popatrz jak faktycznie wygląda zapytanie po podstawieniu wartości zmiennych:
  11.  
  12. $sql = "AND wiek ' BETWEEN 23 AND 30' ORDER BY time";
  13.  
  14. // stąd błąd w zapytaniu i potem błąd, który pokazałeś - wynika z braku wyniku mysql na którym chcesz pracować.
  15. ?>


A jak to zrobić lepiej? Chwilkę pomyśleć :)
W formularzy robisz wartości np. 0, 1, 2, 3:
  1. <option value="1">Do 22 lat</option>
  2. <option value="2">Powyżej 41 lat</option>


W PHP tłumaczysz je sobie na odpowiednie wartości dla SQL, chociażby tworząc tablicę z mapą danych:

  1. <?php
  2. $data = array();
  3. $data[1] = 'wiek <= 22';
  4. $data[2] = 'wiek > 100';
  5.  
  6. $sql_wiek = $data[$wiek];
  7. ?>


pozdr.
Go to the top of the page
+Quote Post
in5ane
post
Post #5





Grupa: Zarejestrowani
Postów: 1 335
Pomógł: 34
Dołączył: 9.11.2005
Skąd: Wrocław

Ostrzeżenie: (10%)
X----


ok, poradzilem sobie ale jak robie
  1. <?php
  2. $data[0] = 'wiek LIKE %';
  3. ?>


to nie dziala

jest taki error
Kod
Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource


Ten post edytował in5ane 13.04.2007, 13:15:45
Go to the top of the page
+Quote Post
skowron-line
post
Post #6





Grupa: Zarejestrowani
Postów: 4 340
Pomógł: 542
Dołączył: 15.01.2006
Skąd: Olsztyn/Warszawa

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


Cytat(in5ane @ 13.04.2007, 12:15:27 ) *
jest taki error
Kod
Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource


taki error znaczy ze masz blad w zapytaniu

daj
  1. <?php
  2. ?>


Ten post edytował skowron-line 13.04.2007, 13:19:29
Go to the top of the page
+Quote Post
in5ane
post
Post #7





Grupa: Zarejestrowani
Postów: 1 335
Pomógł: 34
Dołączył: 9.11.2005
Skąd: Wrocław

Ostrzeżenie: (10%)
X----


tyle to ja wiem, a to dlatego ze jest
  1. <?php
  2. $data[0] = 'wiek LIKE %';
  3. ?>


poradzilem sobie w inny sposob, thx
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 9.10.2025 - 08:26