Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP]Przeszukiwanie ciągu
henio
post
Post #1





Grupa: Zarejestrowani
Postów: 237
Pomógł: 1
Dołączył: 15.10.2004
Skąd: Lublin

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


Mam taki problem, otóż pobieram z jednej tabeli bazy danych MySQL rekord, który przykładowo wygląda tak:
"11 , 14"

Potem pobieram z drugiej tabeli konkretne id np 1 czy 11

I chce sprawdzić czy to konkretne id zawiera się w tym 'grupowym'

  1. <?php
  2. // Sprawdzenie za pomocą funkcji strstr() czy dany użytkownik ma już uprawnienia
  3. if(strstr($rekord1['id_uzytkownikow'], $rekord2['id_uzytkownik']))
  4. {
  5. echo "<tr><td><input type=\"checkbox\" name=\"".$rekord2['id_uzytkownik']."\" value=\"".$rekord2['id_uzytkownik']."\" checked=\"checked\" /> ".$rekord2['login']." - ".$rekord2['zarejestrowany']."</td></tr>\n";
  6. }
  7. else
  8. {
  9. echo "<tr><td><input type=\"checkbox\" name=\"".$rekord2['id_uzytkownik']."\" value=\"".$rekord2['id_uzytkownik']."\" /> ".$rekord2['login']." - ".$rekord2['zarejestrowany']."</td></tr>\n";
  10. }
  11. ?>


No, ale wówczas skrypt 'myśli', że zarówno 1 jak i 11 się zawiera, choć tylko ten drugi jest. Pytanie moje, jak to rozwiązać?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
calebos
post
Post #2





Grupa: Zarejestrowani
Postów: 104
Pomógł: 3
Dołączył: 22.02.2008

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


Nie rozumiem masz identyfikatory uzytkownikow w jednym polu w tablicy uprawnienia ? $row[rezultat1]='1,5,43,543,123' ?!
Bez sensu odebrales sobie wszystkie opcje jakie daje Ci baza danych wlasnie do takich zlaczen.
Juz chyba lepiej robic 10 wpisow z tym samym userem a innym skryptem nizeli w ten sposob normalizowac baze i nie miec mozliwosci dac joina.

Nie wyszukasz w stringu "6" bo jak napisales wywali ci np "16" jako rezultat.
Mozesz dodac na poczatek i koniec kazdego ciagu w 'grupowych' indentyfikatorach "," (sam przecinek).
Wtedy bedziesz mial 'separator' do swoich wartosci i mozesz prawidlowo przyronac

W ten sposob trzeba bedzie wyszukiwac przy pomocy like w polu co nie jest zbyt wydajnei zalecane.

if strlen($x)==1
{
$y=",".$x.",";
select..... where id_costam like '%$y%';
}

Ten post edytował calebos 14.08.2008, 13:00:40
Go to the top of the page
+Quote Post

Posty w temacie


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: 17.09.2025 - 16:09