Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: alternatywa LIKE w zapytaniu
Forum PHP.pl > Forum > PHP
SN@JPER^
Witam,

obecnie artykuły z bazy pobieram tak:

  1. $sql = 'select * from news where main=0 AND pages LIKE "%'.$id_page.'%" ORDER BY id DESC';


gdzie $id_page=4.

Jednak gdy w polu pages pojawi się 44, artykuł jest również wyświetlany. Jak temu zapobiec?
skowron-line
A dlaczego używasz LIKE questionmark.gif
  1. WHERE pages = '. $id_page .'
darko
Wywal znaki procentu:
LIKE "'.$id_page.'"
chociaż lepiej byłoby
pages=$id_page
SN@JPER^
@skowron-line
Ponieważ w polu pages, jest kilka liczb 4,10,9,11 etc.

darko - nic nie pomogło...
piotrooo89
to daj tak:

  1. WHERE pages IN ('. $id_page .')


tylko muszą być przecinkami rozdzielone.
skowron-line
Cytat(SN@JPER^ @ 14.12.2009, 14:05:44 ) *
@skowron-line
Ponieważ w polu pages, jest kilka liczb 4,10,9,11 etc.

słabe rozwiązanie no ale.
  1. WHERE pages LIKE "%,'. $id_pages .',%"
phpion
@piotrooo89:
IN na stringu?

@skowron-line:
Nie zadziała dla pierwszego i ostatniego elementu.

@SN@JPER^:
http://forum.php.pl/index.php?s=&showt...st&p=690248
SN@JPER^
Cytat(phpion @ 14.12.2009, 14:23:34 ) *
@piotrooo89:
IN na stringu?

@skowron-line:
Nie zadziała dla pierwszego i ostatniego elementu.

@SN@JPER^:
http://forum.php.pl/index.php?s=&showt...st&p=690248


"IN na stringu?" - zadziałało...


Dzięki wielkie za wszystko!
piotrooo89
Cytat(phpion @ 14.12.2009, 14:23:34 ) *
@piotrooo89:
IN na stringu?


ale z tego co ja wywnioskowałem tam są id danej strony rozdzielone przecinkiem.
SN@JPER^
Tak.

http://ifotos.pl/img/ScreenSho_xpaqrn.jpg
piotrooo89
w takim razie IN jest najlepszym rozwiązaniem, choć średnio bazodanowym.
phpion
Cytat(piotrooo89 @ 14.12.2009, 14:35:26 ) *
w takim razie IN jest najlepszym rozwiązaniem, choć średnio bazodanowym.

...i do tego średnio działającym winksmiley.jpg
SN@JPER^
Witam,

odkopuje temat...

  1. WHERE pages IN ('. $id_page .')
- nie działa. Poprzednio testowałem tylko z jedną działającą stroną. Przy zapytaniu:

[php]select * from news where main=0 AND pages IN ('. $id_page .') ORDER BY id DESC/php] wyświetla artykuł tylko na jeden stronie, przy wpisie pages=1,3. Wyświetla artykuł na stronę o ID 1.

Próbowałem również
  1. SELECT * FROM news WHERE main=0 AND pages LIKE "%,'.$id_page.',%" ORDER BY id DESC


Przy wpisie 1,3 nie ma na końcy przecinka, wiec na strone o ID 3 nie chce wyświetlić artykułów.

Jak to rozwiązać inaczej?
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.