Forum Webmastera, HTML, CSS, PHP, MySQL, Hosting, Domeny - Forum dla Webmasterów
Filtr rekordu - Wersja do druku

+- Forum Webmastera, HTML, CSS, PHP, MySQL, Hosting, Domeny - Forum dla Webmasterów (https://www.webmastertalk.pl)
+-- Dział: Technologie internetowe - tworzenie stron WWW (https://www.webmastertalk.pl/forum-technologie-internetowe-tworzenie-stron-www)
+--- Dział: Programowanie, Bazy danych (https://www.webmastertalk.pl/forum-programowanie-bazy-danych)
+--- Wątek: Filtr rekordu (/thread-filtr-rekordu)



Filtr rekordu - michalszyd - 21-10-2012

Witam,

Powiedzmy że mam w bazie taki rekord:
1,6,3,5,6,3,4,3,6,9,8

Czy da się go pobrać tylko wtedy, gdy liczba 3 powtarza się >= 2 razy?
Czy trzeba najpierw pobrać i dopiero policzyć ilość występowania?


RE: Filtr rekordu - Morfeusz_2005 - 21-10-2012

Najpierw trzeba pobrać i za pomocą PHP stworzyć funkcję, która będzie dzielić to na czynniki pierwsze i liczyć ile jest tych danych liczb i wtedy kiedy jest więcej od załóżmy 3, to przekazuje to dalej zależnie co tam am robić z tym.


RE: Filtr rekordu - michalszyd - 21-10-2012

No dobra. Zrobię filtr w PHP.
W przypadku gdy id będzie występowało >= 2 razy, to wyszuka według innego ID.

I teraz pytanie, jak ominąć żeby nie wyszukiwało tego samego rekordu?

User | ID
1 | 4,2,3,6,9,6,3,3,2,8,2

Za pierwszym razem wyszukuje według klucza ID = 3

Pojawiło się 3 razy, wiec potrzebuję ponownie wyszukać. Tym razem los padł na ID = 6. Tym razem też nie udało się, ponieważ 6 występuję >= 2 razy. Ponawiamy sytuacje. Teraz padło na 9. Udało się, wykonuję dalsze działanie.

Jak ominąć ponownego wybierania tego samego ID? Dodam że ID to ID userów, więc będzie tego sporo. Myślę nad dwoma rozwiązaniami:
  1. Zapisanie do sesji/ciasteczka wybranego ID, po czym wyfiltrować przed to ID abye jego nie szukało.
  2. Utworzyć nowy rekord, gdzie będą dodawane wraz zapisem do powyższego rekordu kolejnego ID, ale tylko w przypadku gdy w tym rekordzie ID dodaje kolejny powtórzony ID. Wtedy filtrować z tego nowego rekordu i jeżeli w nim istnieje to ID to nie pobiera.
Może macie jeszcze jakieś pomysły?


RE: Filtr rekordu - Morfeusz_2005 - 21-10-2012

Zrobienie kolejnej bazy i dodawanie do niej już przejrzanych rekordów aby je weryfikować raz. Tabela z danymi w php to drugi sposób. Myślę, że to z bazą będzie najlepsze. Po pomyślnym znalezieniu rekordu można dać funkcję, która potem będzie czyścić bazę z tymi rekordami porównawczymi.


RE: Filtr rekordu - michalszyd - 21-10-2012

Ok, a jak teraz pobrać z bazy dane, gdzie w danym rekordzie nie występuje podany ciąg znaków?

Jeżeli chciałbym pobrać rekord gdzie jest podany ciąg znaków użyłbym `id` like (',$id,')

Jak uzyskać odwrotność tej funkcji?


RE: Filtr rekordu - Morfeusz_2005 - 21-10-2012

Wtedy trzeba bawić się dodatkowo PHP i warunkami IF


RE: Filtr rekordu - michalszyd - 21-10-2012

(21-10-2012, 17:27)Morfeusz_2005 napisał(a): Zrobienie kolejnej bazy i dodawanie do niej już przejrzanych rekordów aby je weryfikować raz. Tabela z danymi w php to drugi sposób. Myślę, że to z bazą będzie najlepsze. Po pomyślnym znalezieniu rekordu można dać funkcję, która potem będzie czyścić bazę z tymi rekordami porównawczymi.

Jak dokładniej miałoby to wyglądać, nie bawić się w filtrowaniu w PHP?


RE: Filtr rekordu - hieroshima - 25-10-2012

Nie zawsze trzeba używać PHPa do operacji na bazie. Możesz poczytać sobie o triggerach Wink