krzysiu99995
30.12.2012, 13:29:04
Witam, mam pytanie które poprę przykładem. Załóżmy że w tabeli są takie rekody.
ID | Coś
1 | a
2 | b
3 | c
4 | d.
I teraz podczas dodawania rekordu, ID będzie zawsze +1 jako primary key. Czy jest jakaś możliwość ustawienia w bazie, żeby po usunięcie rekordu ID 2, następny rekord wypełniał to ID?
Tak aby zawsze były rekordy od 1 w górę.
viking
30.12.2012, 13:49:51
Jest ale poczytaj o integralności danych, kluczach obcych bo nie bez powodu to działa w ten sposób.
webdice
30.12.2012, 14:10:05
Wybij sobie taki głupi pomysł z głowy. Poszukaj na forum, było wiele razy.
krzysiu99995
30.12.2012, 14:25:47
Szukam i nie mogę nic ciekawego znaleźć. Muszę zrobić losowanie cytatu z bazy na dany dzień, umieściłbym więc 30 cytatów od 1 do id 30 i bym wyświetlał to id jaki mamy dzień. Ale gdy już usunę jakiś cytat poprzez mój skrypt i dodam nowy, to będzie 31,32,33, a np. 4,5,6 w ogóle nie będzie. Nie wiem co zrobić.
webdice
30.12.2012, 14:34:47
W MySQL jest funkcja RAND.
krzysiu99995
30.12.2012, 14:37:54
Też nad tym myślałem, ale zależy mi na tym aby każdy użytkownik widział ten sam cytat w dany dzień.
Wielkie dzięki za okazaną pomoc.
webdice
30.12.2012, 14:41:17
Losujesz rekord za pomocą MySQL RAND i przetrzymujesz go w bazie przez cały dzień, a jeśli masz już rekord to dla każdego robisz:
SELECT * FROM `cytaty` WHERE `id` = ( SELECT `id` FROM `tabela_z_zapisanym_id` )
PS. RAND jest dość wolne, choć w Twoim wypadku nie ma to znaczenia. Poczytaj sobie jak zastąpić RAND.
krzysiu99995
30.12.2012, 14:51:52
Chciałem uniknąć tego, ale ok.
Dzięki wielkie.
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.