Post
#1
|
|
|
Grupa: Zarejestrowani Postów: 495 Pomógł: 2 Dołączył: 5.02.2006 Skąd: Wrocław Ostrzeżenie: (0%)
|
Mając powyższe zapytanie pobieram listę użytkowników sortując ich w odwrotnej kolejności według ilości odwiedzin. Wszystko działa poprawnie. (Zmienne na pewno przyjmują odpowiednie wartości) Tabele: datylogowan id id_uzytkownika data logowanie id login data Czy istnieje możliwość takiego napisania tego zapytania, aby tworzyła się dodatkowa kolumna (wirtualna - nieistniejaca w bazie), w której widoczna byłaby ilośc wizyt każdego z tych użytkowników na dzień...? Obliczenie powinno wyglądać tak:
Gdzie ilosc pochodzi z zapytania: count(d.id) as ilosc, a data jest kolumną już istniejącą w tabeli. Kiedy zrobić to dla każdego użytkownika po wykonaniu zapytania bez obliczeń wygląda to tak:
Porblem polega jednak na tym, że w takim przypadku nie istnieje możliwość posortowania listy według częstotliwości odwiedzin, a jedynie według ich ilości, co może być zakłamaniem. Jeden użytkownik mógłby zarejestrować się rok temu i mieć 366 wizyt inny 2 dni temu i mieć wizyt 15, czyli odwiedzać stronę znacznie częściej. Czy da się to jakoś rozwiązać? W skrócie chodzi o pobieranie danych z bazy danych MySQL wraz z dodatkowymi kolumnami, w których znajdowałyby się jakieś modyfikacje tych danych (tak by można było według nich sortować)... Ten post edytował The Night Shadow 11.06.2006, 11:49:33 |
|
|
|
![]() |
Post
#2
|
|
|
Grupa: Zarejestrowani Postów: 984 Pomógł: 41 Dołączył: 16.03.2002 Skąd: Płock Ostrzeżenie: (0%)
|
pisane z palca.. ale: jasne, ze mozna Ten post edytował em1X 11.06.2006, 11:59:38 |
|
|
|
Post
#3
|
|
|
Grupa: Zarejestrowani Postów: 495 Pomógł: 2 Dołączył: 5.02.2006 Skąd: Wrocław Ostrzeżenie: (0%)
|
Normalnie wszystko działa. Po dodaniu tego:
Za:
I zmianie sortowania na: ORDER by czestosc DESC pojawia się błąd: Warning: mysql_fetch_assoc(): supplied argument is not a valid MySQL Błąd dotyczy tej linii:
Zauważyłem, że skrypt nie widzi ilosc Kiedy zamienić ją na nazwę jakiejkolwiek kolumny zawierające liczby wszystko działa... da się to jakoś rozwiązać? Ten post edytował The Night Shadow 11.06.2006, 12:15:30 |
|
|
|
Post
#4
|
|
|
Grupa: Zarejestrowani Postów: 984 Pomógł: 41 Dołączył: 16.03.2002 Skąd: Płock Ostrzeżenie: (0%)
|
nie dziwne skoro raz: twoja formuła miała chyba o jeden nawias za duzo, dwa: usunales kolumne ktora jest wykorzystywana w równaniu
|
|
|
|
Post
#5
|
|
|
Grupa: Zarejestrowani Postów: 495 Pomógł: 2 Dołączył: 5.02.2006 Skąd: Wrocław Ostrzeżenie: (0%)
|
Nie usuwałem tej kolumny... Po prostu wynikałoby z tego, że powinno być tak:
count(d.id) as ilosc, (CEIL(((count(d.id)/(CEIL((UNIX_TIMESTAMP()-(l.data))/60/60/24)))*100))/100) as czestosc B teraz jeśli w działaniu obliczającym częstotliwość zamienię count(d.id) na ilosc pojawia się ten błąd... Dzięki za pomoc :- ) |
|
|
|
![]() ![]() |
|
Aktualny czas: 22.12.2025 - 23:56 |