Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Generator słów
Forum PHP.pl > Forum > Przedszkole
qoryto
Witam. Buduję bazę danych unikalnych słów kluczowych

Teraz chcę zrobić to na bazie mysql (zarys):

W bazie danych mam 3 tabele
1 = kategorie
2 = tagi
3 = opisy

w każdej z tych tabeli mam ok 10 tyś wpisów (które załaduję)

Teraz jest problem. Chcę zrobić, aby skrypt przy połączeniu z bazą danych wyświetlił mi zdanie w takiej formie, aby utworzone zdania się nie powtarzały..

Chodzi mi o to gdy wygeneruje przykładowo:

1 = ania
2 = ma
3 = kota
przy kolejnym odświeżeniu, aby nie wygenerował znów tak samo
tylko w innej kolejności np.
2 => ma
3 => kota
1 => ania

W tej bazie jest sporo unikalnych wpisów, chodzi mi o takie rozwiązanie, aby przy każdym odświeżeniu tj. wygenerowaniu wpisy się nie powtarzały a jeżeli się powtarzają to w innej kolejności.
Mackos
No to przy zapytaniu SQL daj:
  1. ORDER BY rand()
Damonsson
10tys rekordów i
  1. ORDER BY rand()
to samobójstwo.

http://blog.vokiel.com/mysql-rand-jak-pobrac-losowe-wiersze/
bpskiba
Cytat(Damonsson @ 6.06.2013, 08:46:56 ) *
10tys rekordów i
  1. ORDER BY rand()
to samobójstwo.

http://blog.vokiel.com/mysql-rand-jak-pobrac-losowe-wiersze/


nie koniecznie...
sprawdzałem na milionie rekordów.
Damonsson
W sumie kiedyś o tym czytałem i tak napisałem, teraz sam sprawdziłem i dla 20tys też mi działa szybko. Więc skąd tyle artykułów o ułomności tego stosowania? Nowa wersja MySQL coś poprawiła? Czy coś źle testujemy?
mmmmmmm
Ale rand() nic mu nie daje...
Musi to zrobić mniej więcej tak:
  1. SELECT t1.slowo, t2.slowo, t3.slowo FROM slowa t1 JOIN slowa t2 ON t1.id<>t2.id JOIN slowa t3 ON t1.id<>t3.id AND t2.id<>t3.id ORDER BY t1.id, t2.id, t3.id LIMIT $ostatniouzyty+1,1

Oczywiście po wybraniu trzeba zwiększyć $ostatniouzyty i zapisać
qoryto
więc moje pytanie któro rozwiązanie byłoby najlepsze?
bpskiba
Cytat(qoryto @ 6.06.2013, 22:24:28 ) *
więc moje pytanie któro rozwiązanie byłoby najlepsze?

stosując rand() należało by zadać trzy pytania do bazy danych, więc pomysł mmmmmmm będzie moim zdaniem lepszy.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.