![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 50 Pomógł: 6 Dołączył: 25.06.2007 Skąd: Olkusz Ostrzeżenie: (0%) ![]() ![]() |
Witajcie,
mam problem z LIKE w zapytaniu mysql pod php. W pierwszym zapytaniu wyciągam z tabeli jedno konkretne pole które ma wartość no 01 lub 06 lub 12 Wyciągam do poleceniem $row = mysql_fetch_row($result) i $row[0] ma tą konkretną wartość. Problem pojawia sie przy nastepnym zapytaniu. Chciałbym zrobić tak aby funkcja LIKE porownywala mi nr_mpk ze wzorcem. Próbowalem zrobić to następująco ale niestety nie dziala:
i jeszcze tak:
Wzorzec ma sie składać ze zmiennej $nr_oddziału który ma wartość braną z bazy danych i z 3 innych dowolnych znaków. Pozdrowienia Ten post edytował bluesqad 3.06.2008, 13:35:29 |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 411 Pomógł: 35 Dołączył: 27.06.2004 Skąd: Kraków Ostrzeżenie: (0%) ![]() ![]() |
Postaraj się formułowac pytania w prosty sposób. Nie jestem pewien czy dobrze rozumiem wiem przedstawiam dwie odpowiedzi
Lub bardziej prawdopodobne:
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 50 Pomógł: 6 Dołączył: 25.06.2007 Skąd: Olkusz Ostrzeżenie: (0%) ![]() ![]() |
Te rozwiazania niestety nie działają (IMG:http://forum.php.pl/style_emoticons/default/sad.gif)
A co do pytań to spróbuje prościej: Wzorzec który jest po LIKE ma składać się z danych które są w zmiennej $nr_oddzialu oraz po niej trzech dowolnych znaków. czyli jesli zmienna $nr_oddzialu ma przypisaną wartosć np 01 to pasującym wzorcem bedzie np 01439 albo 01826. |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 10 Pomógł: 3 Dołączył: 2.06.2008 Skąd: Poznań Ostrzeżenie: (0%) ![]() ![]() |
Drugie rozwiązanie rozwiązuje problem o którym piszesz.
Problem musi leżeć gdzie indziej. Wyświetl sobie zapytanie jakie jest tworzone (echo $query), przeklej do phpMyAdmina i sprawdź co jest nie tak. |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 11 Pomógł: 0 Dołączył: 1.06.2008 Ostrzeżenie: (0%) ![]() ![]() |
Sprawdzałam to sobie w PMA. W ogóle - pierwszy raz spotykam się z tym, że można wyznaczyć ilość dowolnych znaków. Ciekawe (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)
Na mój babski rozum, w rozwiązaniach które podałeś problem jest taki: Kod <?php $nr_oddzialu = $row[0]; print $nr_oddzialu; $query = "SELECT klient_id, nazwa, miasto, ulica, nr_mpk FROM klient WHERE klient.nr_mpk LIKE '$nr_oddzialu___'"; ?> Szuka zmiennej: $nr_oddzialu___, której nie posiadasz. Kod <?php $nr_oddzialu = $row[0]; print $nr_oddzialu; $query = "SELECT klient_id, nazwa, miasto, ulica, nr_mpk FROM klient WHERE klient.nr_mpk LIKE '$nr_oddzialu'+'___'"; ?> Tutaj w ogóle coś dziwnego jest zrobione. W PHP można stosować plusy? Ja zrobiłabym to tak: Kod <?php $nr_oddzialu = $row[0]; print $nr_oddzialu; $numerek=$nr_oddzialu."___"; $query = "SELECT klient_id, nazwa, miasto, ulica, nr_mpk FROM klient WHERE klient.nr_mpk LIKE '$numerek'"; ?> Ale sprawdź, bo mi się już nie chce testować (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 50 Pomógł: 6 Dołączył: 25.06.2007 Skąd: Olkusz Ostrzeżenie: (0%) ![]() ![]() |
Dzięki za pomoc.
Tak jak pisaliście drugie rozwiązanie działa. Błąd był w bazie danych - pole było typu INT co powodowało że z liczby 01234 robiło 1234 no i nie wyświetlało. Jeszcze raz dzięki wielkie (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) |
|
|
![]() ![]() |
![]() |
Aktualny czas: 23.08.2025 - 06:30 |