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)
$url = 'http://www.mojadomena.pl/index.php?kategoria=Kategoria3&plik=042.jpg'; $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:
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:
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?