Ocena wątku:
  • 0 głosów - średnia: 0
  • 1
  • 2
  • 3
  • 4
  • 5
Filtr rekordu
#1
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?
Odpowiedz
#2
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.
Odpowiedz
#3
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?
Odpowiedz
#4
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.
Odpowiedz
#5
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?
Odpowiedz
#6
Wtedy trzeba bawić się dodatkowo PHP i warunkami IF
Odpowiedz
#7
(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?
Odpowiedz
#8
Nie zawsze trzeba używać PHPa do operacji na bazie. Możesz poczytać sobie o triggerach Wink
Odpowiedz


Podobne wątki…
Wątek: Autor Odpowiedzi: Wyświetleń: Ostatni post
  Nie dodaje rekordu ;x Intelactive 4 4,323 07-12-2012, 04:05
Ostatni post: andrzejhi
  zaokraglanie liczb z rekordu Intelactive 6 4,751 12-11-2012, 02:59
Ostatni post: Engine
  Zwrócenie gotowego linku po dodaniu rekordu Intelactive 0 1,686 23-10-2012, 17:29
Ostatni post: Intelactive
  Nie dodaje rekordu Intelactive 4 3,200 22-10-2012, 22:18
Ostatni post: Intelactive
  Zwiększanie rekordu o jeden nie dziala hawkers 0 2,070 22-04-2012, 18:36
Ostatni post: hawkers

Skocz do:


Użytkownicy przeglądający ten wątek: 1 gości
Sponsorzy i przyjaciele
SeoHost.pl