Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP]Generator słów
qoryto
post
Post #1





Grupa: Zarejestrowani
Postów: 63
Pomógł: 0
Dołączył: 1.07.2009
Skąd: Rzeszów

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


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.
Go to the top of the page
+Quote Post
Mackos
post
Post #2





Grupa: Zarejestrowani
Postów: 362
Pomógł: 44
Dołączył: 10.06.2009

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


No to przy zapytaniu SQL daj:
  1. ORDER BY rand()
Go to the top of the page
+Quote Post
Damonsson
post
Post #3





Grupa: Zarejestrowani
Postów: 2 355
Pomógł: 533
Dołączył: 15.01.2010
Skąd: Bydgoszcz

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


10tys rekordów i
  1. ORDER BY rand()
to samobójstwo.

http://blog.vokiel.com/mysql-rand-jak-pobrac-losowe-wiersze/
Go to the top of the page
+Quote Post
bpskiba
post
Post #4





Grupa: Zarejestrowani
Postów: 340
Pomógł: 49
Dołączył: 3.07.2009
Skąd: Rzeszów

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


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.

Ten post edytował bpskiba 6.06.2013, 08:48:58
Go to the top of the page
+Quote Post
Damonsson
post
Post #5





Grupa: Zarejestrowani
Postów: 2 355
Pomógł: 533
Dołączył: 15.01.2010
Skąd: Bydgoszcz

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


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?
Go to the top of the page
+Quote Post
mmmmmmm
post
Post #6





Grupa: Zarejestrowani
Postów: 1 421
Pomógł: 310
Dołączył: 18.04.2012

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


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ć
Go to the top of the page
+Quote Post
qoryto
post
Post #7





Grupa: Zarejestrowani
Postów: 63
Pomógł: 0
Dołączył: 1.07.2009
Skąd: Rzeszów

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


więc moje pytanie któro rozwiązanie byłoby najlepsze?
Go to the top of the page
+Quote Post
bpskiba
post
Post #8





Grupa: Zarejestrowani
Postów: 340
Pomógł: 49
Dołączył: 3.07.2009
Skąd: Rzeszów

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


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.
Go to the top of the page
+Quote Post

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: 21.12.2025 - 06:14