Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Ranking zdjęć na podstawie kliknięć w "lubie to"
Forum PHP.pl > Forum > Przedszkole
alarec
Witam wszystkich,

Napotkałem na problem przy tworzeniu aplikacji, narazie stoje w miejscu i myślę jak można to obejść najprostrzym sposobem.

Z początku może troche o aplikacji:
Jest to zwykły konkurs na najlepsze zdjęcia z 3 kategorii.
Czyli na stronie głównej mamy 3 kategorie, wchodzimy w jedną z nich (index.php?kategoria=pierwsza), ukazuje nam się 10 zdjęć i pod każdym przycisk lubie to.
Linki do 'lubie to' generowane są dynamicznie w formacie www.mojadomena.pl/index.php?kategoria=[nazwa]&plik=[nazwa_pliku.jpg].

Cel:
Na stronie głównej chce pokazać które zdjęcie w danej kategorii ma najwięcej głosów.
Czyli np. w kategrii pierwszej wygrywa zdjęcie nazwa1, w kategorii drugie wygrywa nazwa2 ...

Moje nieskuteczne rozwiązania:
To co działa (ale nie o to chodzi)
  1. $url = 'http://www.mojadomena.pl/index.php?kategoria=Kategoria3&plik=042.jpg';
  2. $query = 'SELECT like_count FROM link_stat WHERE url="'.$url.'" ';


Więc można wyciągać liczbę kliknięć na podstawie adresu url. Lecz jak wyciągnąć url i liczbę kliknięc na podstawie części adresu??
Załużmy że chce zobaczyć adresy i liczbe kliknięć w dane zdjęcie na podstawie kategorii, normalnie w takim przypadku zapytanie SQL by wyglądało tak:
  1. SELECT url, like_count FROM link_stat WHERE url LIKE "mojadomena.pl/index.php?kategoria=pierwsza%"

% pozwala zastąpic dalszą część znaków.
Niestety facebook nie pozwala użyć LIKE. Można użyć w zapytaniu strpos, ale moje próby nie dawały rezultatu, wyglądało to tak:
  1. SELECT * FROM link_stat WHERE strpos(url,"facebook.com")


inne rozwiazania:
Jedyne co mi przychodzi do głowy to pobierać każdy adres url z przycisku lubie to, sprawdzać w bazie (FQL) ilość kliknięć zapisywać do tymczasowej tablicy i poprzez sortowanie wyswietlenie tego zdjęcia co ma największą liczbę kliknięć.
Ale wg. mnie pomysł nie jest za dobry, bo jeśli będziemy mieli 10zdjęć w 10'ciu kategoriach to zapytanie FQL będzie trzeba wykonać 100 razy, a do tego jeszcze zapisać i posortować tablice.

Innym pomysłem jest nie opieranie się na kliknięciach w bazie facebooka, tylko zliczać kliknięcia "lubie to" za pomocą JS a url'e zapisywac AJAXem do własnej bazy. Znacznie wygodniejszy niż powyższy sposób. Ale jak probowałem dla testów wyswietlić najprostrzy alert() przy kliknięciu w $('.fb-like') to nie zadziałał.


Proszę o pomoc jak mogę najprościej ugryźć ten problem.

Pozdrawiam A.

Teraz tak sobie myślę że gdybym użył onclick na przyciku lubie to przekazując dane do bazy ajaxem, to nie działało by to dobrze gdyby użytkownik kliknął "lubie to" a następnie się rozmyślił i kliknął "nie lubie" albo w swoim profilu na tablicy zaznaczył by opcję że ma usunąć post z tablicy i znacznik "lubie to".

Więc ta druga opcja odpada, zostaje tylko pierwsza, ale nie chciałbym jej używać bo nie jest dobrym pomysłem.

Może ktoś podpowie co nie co, albo ma inne rozwiązanie do zaproponowania?
Croos22
Jeśli już dodajesz do bazy ilość kliknięć to nie możesz wyciągnąć od największego do najmniejszego z tym, że ustawiasz limit 1?
alarec
Jeszcze nie dodaje do bazy, narazie szukam rozwiązania. Ale rzeczywiście można ustawić LIMIT 1, wtedy odchodzi tablica i sortowanie.

A ma ktoś pomysł jak wykonać to kożystając tylko z bazy FB?
potrzebne mi było by zapytanie które wyciąga adresy url bez parametrów GET, czyli wpisując ..."WHERE url='mojadomena.pl/index.php" chciałbym uzyskać wyniki
...index.php?kategoria=kat1?plik=1.jpg
...index.php?kategoria=kat1?plik=2.jpg
...index.php?kategoria=kat2?plik=011.jpg
itd.

edit:
Zapytam się może o jeszcze jedną żecz dotyczącą tej samej aplikacji:
mam na stronie 10zdjęć i pod nimi 10 przycisków "lubie to", każdy ma unikalny href, ale jak przesłać odpowiednie zdjęcie na tablice użytkownika? obecnie przesyła pierwsze zdjęcie z folderu, a ma przesyłać zdjęcie powyżej przycisku "lubie to".
Wiem że można użyć open graph przesyłająć odpowiedni link do obrazka w meta tagach, ale można przesłać taki jeden dla jedej strony/podstrony, a jeśli mam te 10 przysków "lubie to", dla każdego powinnien być wysyłany inny meta tag, jak to osiągnąć?
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.