
<?php // dodajemy do naszej tabelki kolumne lubie_to // np ALTER TABLE `twoja_tabelka` ADD `lubie_to` INT(10) // haslo do bazy danych require 'haslo_do_bazy.php'; // pobieramy plik ktory informuje nas o wierszach w tabeli które trzeba teraz sprawdzić , jak go utworzysz wpisz jakąś cyfre np 0 inaczej bezesz miał błąd , pózniej skrypt sam się zajmie resztą try { $dbh = new PDO("mysql:host=$baza;dbname=$baza[1]",$baza[2], $baza[3]); // sprawdzamy ilosc elementow w bazie $stmt = $dbh->prepare("SELECT * FROM `twoja_tabelka`"); $page_count = $stmt->execute(); // Pobieramy 20 elementów z tablicy dla których sprawdzimy ilość polubień , można więcej ale wtedy skrypt się zawiesza $stmt = $dbh->prepare("SELECT * FROM `twoja_tabelka` ORDER BY `id` DESC LIMIT $last_numbers,20"); $stmt->execute(); while($wiersz = $stmt->fetch()){ // pobieram like z facebooka , dla url z mojej strony $url = 'http://demotivators.us/'.$wiersz['id'].'/'.$wiersz['title']; $request_url ="https://graph.facebook.com/".$url; // odczytuje ilość polubień z json $obj = json_decode($requests); $like_count=$obj->{'likes'}; // Jeżeli ktoś lubi naszą stronę to wciskam id strony oraz ilośc polubień do 2 tablic } } // robimy zapytanie do bazy z akualizacja wierszy i ilosci polubień // moje dziwaczne zapytanie do bazy używa upade dla wielu wierszy jednocześnie , jak ktoś chce niech zrobi z insert foreach($id as $index => $numer_id ){ $sql_warunek.= 'WHEN '.$numer_id.' THEN '.$likes[$index].' '; } for($i=0;$i<($ile-1);$i++){ $sql_id.= $id[$i].','; } $sql_id.= $id[$ile-1]; $sql=' UPDATE `twoja_tabelka` SET `lubie_to` = CASE `id` '.$sql_warunek.' END WHERE `twoja_tabelka.id in ('.$sql_id.')'; // zerknij na to straszydło // aktualizacja w bazie danych $stmt = $dbh->prepare("$sql"); $stmt->execute(); $dbh = null; } catch(PDOException $e) { } // ostatnie linijki zapisują do pliku informacje o ostatniu sprawdzonych wierszach z tabeli if($page_count<$last_numbers){ $last_numbers=0; } else{ $last_numbers= $last_numbers+20; } // zapisujemy file_put_contents('last_checked.txt', $last_numbers , LOCK_EX); // tak dla pewności ?>

Facebook często wyświetla zawyżoną liczbę polubień przy przycisku like , jednak pod tym adresem https://graph.facebook.com/".$url; znajduje się ich realna ilość dla tego
czasami podstrony mogą wydawać się zle posortowane , możecie sprawdzić że polubienia często są liczone podwójnie jeżeli poza kliknięciem like skomentujesz stronę czyli umieścisz link na tablicy facebooka
Przykład mojej strony z posortowanymi obrazkami według ilości polubień http://demotivators.us/demotivationalposters/1
Ta sama strona sortowana od najnowszych do najstarszych http://demotivators.us/