Witam, mam pytanie w jaki sposób wygenerować z jednego słowa unikalną liczbę w okreslonym przedziale np od 0 do 200 jak to napisac w php , wielkie dzieki
Napisz może do czego tego potrzebujesz. Mi się wydaje że to raczej nie jest możliwe z jednego prostego powodu. Masz znacznie więcej niż 200 słów więc nie da się wygenerować unikalnej liczby... Po wykorzystaniu 200 zaczną się powtarzać.
do wyciągania artykułu z bazy o id -> numerze wygenerowanym z określonego słowa...
tych artykułów jest przykładowo 200, i dlatego liczba musi być z tego przedziału... 0 - 200
a słów jest oczywiście dużo więcej niż artykułów.....
nie wiem jak wyciągasz te artykuły ale może prościej by było szukać ich po tych słowach? a numerować można artykuły w takiej kolejności w jakiej są wgrane np. po dacie. nie wiem czy łatwo byłoby trafić na 2 artykuły wgrane w tej samej sekundzie, ale zrób sobie numer z data+godzina+minuta+sekunda wgrania artykułu i po problemie
e? to sie rozwiazaje przy uzyciu tzw slug, tzn: masz tytul artykulu np:
"To jest tytuł artukułu" i z tego powstaje slug "to-jest-tytul-artykulu" i zamiast id uzywasz slugu do pobrania konkretnego rekordu z bazy, tyle ze to ma wady:
- trzeba stworzyc index
- jak zmienisz tytul artykulu to zmieni sie slug
- jak chcesz zrobic przyjazne linki to po zmianie tytuly artykul nie bedzie dostepny pod tym adresem
- dosc skomplikowana implementacja :P
one muszą być wyciągane na podstawie liczby wygenerowanej z określonego słowaa.....po prostu muszą to mnie tylko interesuje... :-( liczba w przedziale 0 - 200 , liczba ta może się powtarzać dla dwóch różnych słów ale żeby był mały współczynnik powtórzeń ...
a chciałęm to w ten sposób zrobić że , za jednym razem ustalam jedną liczbę z słowa , następnie od tej wygenerowanej liczby odejmuje np. 5 , i wyciągam z bazy dwa artykuły i nastepnie je łącze...
a do czego mi potrzebna taka dziwna kombinacja to już nie istotne heh... :-)
średni pomysł ale zawsze
$numerek = crc32("jakiś artykuł");
$numerek = substr($numerek, 1, 3);
od drugiego znaku jakby trafiła się liczba ujemna, będziesz miał coś z przedziale 0-999. jaka szansa że coś się powtórzy to musisz potestować.
// nie lepiej użyć modulo zamiast substr? - n
A może chodzi o hash tables?