Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [php][mysql] problem z zapytaniem - LIKE
bluesqad
post
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:
  1. <?php
  2. $nr_oddzialu = $row[0];
  3. print $nr_oddzialu;
  4. $query = "SELECT klient_id, nazwa, miasto, ulica, nr_mpk FROM klient WHERE klient.nr_
    mpk LIKE '$nr_oddzialu___'"
    ;
  5. ?>


i jeszcze tak:
  1. <?php
  2. $nr_oddzialu = $row[0];
  3. print $nr_oddzialu;
  4. $query = "SELECT klient_id, nazwa, miasto, ulica, nr_mpk FROM klient WHERE klient.nr_
    mpk LIKE '$nr_oddzialu'+'___'"
    ;
  5. ?>


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
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 5)
legorek
post
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

  1. <?php
  2. $query = "SELECT klient_id, nazwa, miasto, ulica, nr_mpk FROM klient WHERE klient.nr_
    mpk LIKE '${$nr_oddzialu.'___'}'"
    ;
  3. ?>


Lub bardziej prawdopodobne:

  1. <?php
  2. $query = "SELECT klient_id, nazwa, miasto, ulica, nr_mpk FROM klient WHERE klient.nr_
    mpk LIKE '{$nr_oddzialu}___'"
    ;
  3. ?>
Go to the top of the page
+Quote Post
bluesqad
post
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.
Go to the top of the page
+Quote Post
okhan
post
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.
Go to the top of the page
+Quote Post
minou
post
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)
Go to the top of the page
+Quote Post
bluesqad
post
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)
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.08.2025 - 06:30