Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php][mysql] problem z zapytaniem - LIKE
Forum PHP.pl > Forum > PHP
bluesqad
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
legorek
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. ?>
bluesqad
Te rozwiazania niestety nie działają 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.
okhan
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.
minou
Sprawdzałam to sobie w PMA. W ogóle - pierwszy raz spotykam się z tym, że można wyznaczyć ilość dowolnych znaków. Ciekawe 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ć winksmiley.jpg
bluesqad
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 smile.gif
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.