Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Licznik czytań - nieco inaczej (problem)
Forum PHP.pl > Forum > Bazy danych
roobik
Witam!
Przy pisaniu jednej z nowych stron utknąłem.
Założeniem moim jest, by wprowadzić licznik dla podstron każdego arta.
Mam więc w bazie kolumny:
id, data, tytul, opis, f_tekst, strona, licznik, typ, autor, komenty

Odpalam plik.php i niby wszystko jest w porządku, lecz jeśli dany art ma kilka podstron, to licznik zlicza mi kliknięcia w ten sposób, że wyświetlana jest suma czytań CAŁEGO arta.
Odpowiada za to funkcja:

  1. <?php
  2. function licz_str() {
  3. global $id, $tab_arty;
  4. $query = "SELECT licznik FROM $tab_arty WHERE id=$id";
  5. $result = mysql_query($query);
  6. $r = mysql_fetch_array($result);
  7. $licznik = $r['licznik'];
  8. $licznik++;
  9. $query = "UPDATE $tab_arty SET licznik=$licznik WHERE id=$id";
  10. $result = mysql_query($query);
  11. }
  12. ?>


Nie muszę chyba dodawać, że np.:
plik.php?id=1$strona=4
to czwarta strona artykułu
Wracając więc do mojego założenia. W jaki sposób zmienić zapis, by po odpaleniu:
plik.php?id=2&strona=3 licznik liczyłby kliknięcia (czyli ilość czytań) tylko tej podtsrony?

Czyli inaczej mówiąc:
plik.php?id=1&page=1 czytany był x razy
plik.php?id=1&page=2 czytany był y razy
Daimos
nie rozumiem dokladnie
chcesz zeby wyswietlenie kazdej pod strony bylo zliczone?
jesli tak to zrob po prostu sprawdzanie jaka zmienna "strona" przeslano
jakos nie jasno dla mnie to opisane, moze zaspany jestem zbyt smile.gif

ps. nie szybciej tak zwiekszyc rekord w bazie o jeden?
  1. UPDATE tabela SET pole1 = pole1+1 WHERE cos = 'cos' LIMIT 1;


ps. temat raczej sie odnosi do PHP niz baz danych ;>
roobik
Niezbyt dokładnie napisałem, więc już się poprawiam smile.gif

pola w bazie:
id, data - wiadomo
tytul - tytuł arta
Dalej jest "podział" na uzytkowników niezalogowanych (którym się pokazuje opis, czyli krótki tekst mający na celu zainteresowanie dalszą częścia arta) oraz dla użytkowników zalogowanych, którzy po zalogowaniu się widzą pełną treść tekstu znajdującą się w f_tekst.
Zarówno w opis jak i f_tekst jest podział na strony, lecz liczenie odbywa się dla całego arta...

Dalej jest kolumna strona - pomyślałem, że jeśli nie dałoby rady liczyć kliknięć w daną podstronę, to coś pokombinuję z tą nową kolumną - na razie jednak się nią nie zajmuję.

Potem jest licznik, czyli, jak nietrudno się domyślić licznbik kliknięć, który wiadomo w jaki sposób już zlicza, lecz nie to jest moim zamiarem sad.gif

Pozostałe pola (typ, autor, komenty) nie wymagają chyba komentarza - nie są one przydatne, jeśli chodzi o licznik, a nazwy ich mówią i tak same za siebie winksmiley.jpg

Jest na to jakaś rada? Pomóżcie proszę ...
Daimos
no najprosciej chyba by bylo zrobic tak
ze masz idartykulu i nrstrony (takie tabelki)
i po prostu kazda strona artykulu by byla oddzielnym rekordem
a laczylbys je w ten sposob, ze idartykulu bylo by takie samo, mam nadzieje ze rozumiesz o co mi chodzi smile.gif
no i do kazdego rekordu mozna dac zliczanie wtedy, chyba juz wiadomo jak
roobik
Cytat(my salsa)
no najprosciej chyba by bylo zrobic tak
ze masz idartykulu i nrstrony (takie tabelki)
i po prostu kazda strona artykulu by byla oddzielnym rekordem

OK, już tak miałem. Jednak sprawdza się to tylko w przypadku, gdy artykuły mają jednakową liczbę podstron. Może ktoś byłby tak dobry i napisał jak oprócz tego ewentualnie miałyby też wyglądać zapytania insert, update i delete...? Nic mi do głowy już nie przychodzi... sad.gif
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.