Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> złe wyniki zapytania, jeden parametr nie jest barny pod uwage.
dobryvinyl.com
post
Post #1





Grupa: Zarejestrowani
Postów: 126
Pomógł: 0
Dołączył: 1.11.2004

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


Witam,

problem wyglada następujaco:

mam zapytanie w postaci
Kod
SELECT * FROM miejsca WHERE miasto_id='$miasto' AND (nazwa LIKE '%$fraza%') OR (opis LIKE '%$fraza%') OR (adres LIKE '%$fraza%')



niestety zwrocony mi wynik wogole nie uwzglednia tego parametru miasto_id='$miasto'. Zostaja mi wyswietlone wyniki z wszystkich miast.

Co robie nie tak?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 11)
vieri_pl
post
Post #2





Grupa: Zarejestrowani
Postów: 406
Pomógł: 9
Dołączył: 24.07.2005
Skąd: Bydgoszcz

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


Czy miasto przekazujesz z formularza (IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif) jak tak to zrób:

  1. <?php
  2. $miasto = $_POST['wartosc-miasto'];
  3.  
  4. ?>


Jeśli metodą get to zamiast $_POST daj $_GET, jeśli dajesz to w parametrach linku daj

  1. <?php
  2.  
  3. $miasto = $_GET['wartosc-misato'];
  4. ?>
Go to the top of the page
+Quote Post
dobryvinyl.com
post
Post #3





Grupa: Zarejestrowani
Postów: 126
Pomógł: 0
Dołączył: 1.11.2004

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


niestety nic to nie daje, dalej mam w wynikach wszystkie miasta.
Go to the top of the page
+Quote Post
mike
post
Post #4





Grupa: Przyjaciele php.pl
Postów: 7 494
Pomógł: 302
Dołączył: 31.03.2004

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


Pole miasto_id jest chyba liczbowe?

Usuń przy porównywaniu apostrofy, liczby porównuje sie bez nich.
Go to the top of the page
+Quote Post
dobryvinyl.com
post
Post #5





Grupa: Zarejestrowani
Postów: 126
Pomógł: 0
Dołączył: 1.11.2004

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


eh dlaej nic, a miasto_id to pole typu char(3).

kod wyglada tak:

  1. <?php
  2. $miasto = $_GET['miasto'];
  3.  
  4. $wynik_miejsca = mysql_query ("SELECT * FROM miejsca WHERE miasto_id=$miasto AND (nazwa LIKE '%$fraza%') OR (opis LIKE '%$fraza%') OR (adres LIKE '%$fraza%')");
  5. while ($rekord_miejsca = mysql_fetch_array ($wynik_miejsca)) {
  6.  
  7. print "<p><b><a href="?dzial=miejsce&id=$rekord_miejsca[0]">$rekord_miejsca[2] <img src="gfx/strzalka.gif" width="12" height="10" border="0"></a></b><br>";
  8. Br("$rekord_miejsca[5]");
  9. print "</p>";
  10.  
  11. }
  12. ?>


Ten post edytował dobryvinyl.com 22.01.2006, 11:32:54
Go to the top of the page
+Quote Post
mike
post
Post #6





Grupa: Przyjaciele php.pl
Postów: 7 494
Pomógł: 302
Dołączył: 31.03.2004

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


Zrób tak ...
  1. <?php
  2.  
  3. echo $sql = "SELECT * FROM miejsca WHERE miasto_id=$miasto AND (nazwa LIKE '%$fraza%') OR (opis LIKE '%$fraza%') OR (adres LIKE '%$fraza%')"
  4. $wynik_miejsca = mysql_query ( $sql );
  5.  
  6. // ...
  7.  
  8. ?>

.. i zodacz jakie zapytanie Ci wyświetli. I spróbuj je wykonać bezpośrednio, np. przez PHPMyAdmina.
Go to the top of the page
+Quote Post
dobryvinyl.com
post
Post #7





Grupa: Zarejestrowani
Postów: 126
Pomógł: 0
Dołączył: 1.11.2004

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


yyyy

Kod
Parse error: parse error, unexpected T_VARIABLE, expecting ',' or ';'
Go to the top of the page
+Quote Post
mike
post
Post #8





Grupa: Przyjaciele php.pl
Postów: 7 494
Pomógł: 302
Dołączył: 31.03.2004

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


Zjadłem średnik, sorry.
  1. <?php
  2.  
  3. echo $sql = "SELECT * FROM miejsca WHERE miasto_id=$miasto AND (nazwa LIKE '%$fraza%') OR (opis LIKE '%$fraza%') OR (adres LIKE '%$fraza%')";
  4. $wynik_miejsca = mysql_query ( $sql );
  5.  
  6. // ...
  7.  
  8. ?>


P.S.
Mnie w szkole uczyli myślenia nawet w trakcie przepisywania z tablicy (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif)
Go to the top of the page
+Quote Post
dobryvinyl.com
post
Post #9





Grupa: Zarejestrowani
Postów: 126
Pomógł: 0
Dołączył: 1.11.2004

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


teraz to juz calkowicie oszalalem.

jak jest dodany ten kod:

  1. <?php
  2.  
  3. echo $sql = "SELECT * FROM miejsca WHERE miasto_id=$miasto AND (nazwa LIKE '%$fraza%') OR (opis LIKE '%$fraza%') OR (adres LIKE '%$fraza%')";
  4. $wynik_miejsca = mysql_query ( $sql );
  5.  
  6. // ...
  7.  
  8. ?>


to wyniki wyswietlania sa dobre, czyli nie wyswietla miejsc z innych miast.
Go to the top of the page
+Quote Post
crash
post
Post #10





Grupa: Przyjaciele php.pl
Postów: 2 196
Pomógł: 2
Dołączył: 17.01.2004
Skąd: Sosnowiec

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


  1. SELECT *
  2. FROM miejsca WHERE miasto_id= '$miasto' AND ( ( nazwa LIKE '%$fraza%' ) OR ( opis LIKE '%$fraza%' ) OR ( adres LIKE '%$fraza%' ) )";

Jak na mój gust to błąd był tu w grupowaniu warunków. Dane pasowały jeśli był spełniony pierwszy i drugi lub trzeci lub czwarty.
Go to the top of the page
+Quote Post
mike
post
Post #11





Grupa: Przyjaciele php.pl
Postów: 7 494
Pomógł: 302
Dołączył: 31.03.2004

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


A dopuszczasz możliwość tego że przeglądarka zcacheowała stronę?

Spróbuj teraz wrócić do poprzedniej wersji.
Go to the top of the page
+Quote Post
dobryvinyl.com
post
Post #12





Grupa: Zarejestrowani
Postów: 126
Pomógł: 0
Dołączył: 1.11.2004

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


crash, bingo! Dzieki wielkie Panowie.

Ten post edytował dobryvinyl.com 22.01.2006, 11:51:54
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: 23.12.2025 - 18:12