Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [SQL/PHP] ignorowane znaki
proklin
post 15.02.2009, 13:18:31
Post #1





Grupa: Zarejestrowani
Postów: 5
Pomógł: 0
Dołączył: 15.02.2009

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


Witam

Chcę zrobić wyświetlanie użytkowników należących do danych grup na swojej stronie.

Problem tkwi w tym że w tabeli z userami jest komurka w której zawarte są id grup w której jest dany użytkownik

Np. jeśli jest w dwuch grupach .1 i .2 to w komurce jest zapisane tak .1.2

I jeśli jest 

Kod
$result = dbquery("SELECT * FROM ".$db_prefix."users".$orderby." WHERE user_groups = .1  ORDER BY user_groups DESC, user_name LIMIT $rowstart,20");


po wpisaniu odpowiedniego kodu wyświetla mi tylko użytkowników będących w jednej grupie, jesli ktoś jest w 2 np. tak jak napisałem wcześniej ma zawartość komurki .1.2 to już nie jest wyświetlany.

Myślałęm żeby zrobić coś żeby ignorował znaki przed i po .1 ale nie mogę nigdzie tego znalec ani samemu napisac, słyszałem że można połączyć to ze skrpytem java ale na javie się kompletnie nie znam.

więc postanowiłem poprosić o pomoć na forum może akurat komuś się uda pomóc



(strona jest na Extreme fusion)

Z góry THX
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 5)
wookieb
post 15.02.2009, 13:24:44
Post #2





Grupa: Moderatorzy
Postów: 8 989
Pomógł: 1550
Dołączył: 8.08.2008
Skąd: Słupsk/Gdańsk




Jezeli wstawisz dane do bazy w takiej postaci .1.2 tzn ze jest to tekst i w zapytaniu ujmij go w "" albo w ''


--------------------
Go to the top of the page
+Quote Post
proklin
post 15.02.2009, 13:47:29
Post #3





Grupa: Zarejestrowani
Postów: 5
Pomógł: 0
Dołączył: 15.02.2009

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


jesli robie tak

Kod
$result = dbquery("SELECT * FROM ".$db_prefix."users".$orderby." WHERE user_groups = '.1'  ORDER BY user_groups DESC, user_name LIMIT $rowstart,20");


to nie wyświetla się nic



Nie wiem może źle się zrozumieliśmy ja chcę wyświetlić użytkowników mających w user_groups gdzieś między znakami .1  (może być samo 1)

Czasami znaki są przed .1 czasami za a czasami przed i za...

Ten post edytował proklin 15.02.2009, 13:49:21
Go to the top of the page
+Quote Post
wookieb
post 15.02.2009, 14:06:39
Post #4





Grupa: Moderatorzy
Postów: 8 989
Pomógł: 1550
Dołączył: 8.08.2008
Skąd: Słupsk/Gdańsk




  1. pole REGEXP '\.1[^0-9]'

Przy dużej ilości userów nie bedzei to optymalne i wtedy stosuje sie oddzielna tabele
o takich np polach
id,id_user,id_grupy i dodajesz tam kolejny rekordy. 1 przynaleznosc do grupy to jeden rekord.

Ten post edytował wookieb 15.02.2009, 14:07:42


--------------------
Go to the top of the page
+Quote Post
kefirek
post 15.02.2009, 14:43:40
Post #5





Grupa: Zarejestrowani
Postów: 781
Pomógł: 256
Dołączył: 29.06.2008

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


To zobacz moze tak
  1. <?php
  2. $result = dbquery("SELECT * FROM ".$db_prefix."users".$orderby." WHERE user_groups REGEXP('^.1$|.1.|.1$')  ORDER BY user_groups DESC, user_name LIMIT $rowstart,20");
  3. ?>


Albo
  1. <?php
  2. $id=1;
  3. $result = dbquery("SELECT * FROM ".$db_prefix."users".$orderby." WHERE user_groups REGEXP('^.({$id})$|.({$id}).|.({$id})$')  ORDER BY user_groups DESC, user_name LIMIT $rowstart,20");
  4. ?>


Ten post edytował kefirek 15.02.2009, 14:48:03
Go to the top of the page
+Quote Post
proklin
post 15.02.2009, 14:56:06
Post #6





Grupa: Zarejestrowani
Postów: 5
Pomógł: 0
Dołączył: 15.02.2009

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


Ok działa dzięki za szybką odpowiedź



(nie zapominam o "pomógł" tongue.gif )
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 14.08.2025 - 08:56