Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php][mysql] Zmienne i zapytanie
Forum PHP.pl > Forum > Przedszkole
in5ane
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ę.
piczu
  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
in5ane
To jak mam to np. zrobic?
siemakuba
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.
in5ane
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
skowron-line
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. ?>
in5ane
tyle to ja wiem, a to dlatego ze jest
  1. <?php
  2. $data[0] = 'wiek LIKE %';
  3. ?>


poradzilem sobie w inny sposob, thx
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.