Рейтинг страниц по количеству посещений.
Давно хотел такой скрипт написать!
В связи с тем, что скрипты, которые описаны ниже, уже реализованы на следующих страницах сайта:
вывод примера сортировки здесь, на данной странице стал не актуальным!
Рейтинг страниц по количеству посещений.
Подготовка нового массива для рейтинга.
Если у вас базы данных и счетчик там же, то вы сразу можете перейти к скрипту, а я продолжу про своих баранов.У каждой страницы есть свой файл, в который складываются количество перезагрузок.
При загрузке основного файла(можно назвать базой данных). При выводе списка в цикле , формируется новый массив, ставим перед "while" , но у нас база данных в файле, поэтому у нас - "{for}"
Построчно заносим в новый массив каждую строку о странице.
Где:
$url - заносится в базу при создании страницы. При выводе в цикле - извлекаем из базы.
$title - заголовок страницы.(берем из базы)
$id_page - о нескольких вариантах мы рассказывали в том же счетчике
На странице список размещаем новую ссылку - сортировать по возрастанию.
Скрипт php, для файла/массива:
У нас база данных это массив $main_array и пример одной строки, берем отсюда выделенное красным:
<?
$ITS_NEW_LISTS = array();
for ( $i =-1; $i < count($main_array); $i++){
$line_explode = explode('::' , $main_array[$i]); //разбиваем ячейку массива на составляющие
$title = $line_explode[4] ;
$url = $line_explode[7];
$COUNT = @file_get_contents($id_page); //Получаем количество просмотров из счетчика
$ITS_NEW_LISTS[] = $COUNT .'**'. $url .'**'.$title ;//Формируем новую ячейку массива в новом массиве.
}
?>
Скрипт php, для базы данных:
Про вывод из базы данных мы писали здесь.Если у вас есть счетчик и он вносился в базу данных в строку принадлежащей данной странице, то вам вообще просто, будем создавать новый массив в цикле while при переборе таблицы базы данных!
<?
$ITS_NEW_LISTS = array();
while ($row=mysql_fetch_array($result))
{
$title = $row["title"];// Предполагаю, что заголовок будет title
$url = $row["url"];
$COUNT = $row["COUNTER"];
$ITS_NEW_LISTS[] = $COUNT .'**'. $url .'**'.$title ;//Формируем новую ячейку массива в новом массиве.
}
?>
+На странице где выводим все страницы сайта(из выше приведенного цикла), размещаем новую ссылку - сортировать по возрастанию, здесь важно выделенным красным:
https://dwweb.ru/?spisok=all&Сортировать рейтинг страниц по возрастанию и убыванию
После того, как вы нажимаете на ссылку:
На странице. которая будет выводится по выше приведенной ссылке размещаем
Можно добавить в нижний код, по условию, если это "up", то
если это "down", то
Нам нужно обработать ранее описанный новый массив - здесь неважно, что вы используете, потому, что в первом пункте мы рассмотрели создание нового массива и для файла и для базы данных.
Собственно далее - из одного массива создаем два, array_unique используем для уникальности строкиСортируем по возрастанию и убыванию :
rsort ($ITS_NEW_UP ,SORT_NUMERIC);
sort ($ITS_NEW_DOWN ,SORT_NUMERIC);
Ну и далее совсем просто, пропускаем массив в цикле for и выводим соответствующую разбитую информацию в "$main_text" и далее выводим в echo.
Сверху я показывал, как это работает у нас:
if($_GET['sort'])
{
$ITS_NEW_DOWN = $ITS_NEW_UP = array_unique ($ITS_NEW_LISTS);
rsort ($ITS_NEW_UP ,SORT_NUMERIC);
sort ($ITS_NEW_DOWN ,SORT_NUMERIC);
if($_GET['sort'] =='up')
{
$THE_COUTERSs = count($ITS_NEW_UP);
for ($i=0; $i < $THE_COUTERSs; $i++)
{
$line = explode('**', $ITS_NEW_UP[$i]);
$main_text .= '<div class="border_button"><red>'.($i+1).'.</red> <a href="'. $line [1]. '" target="_blank">'. $line [2] .'</a><right>'.$line[3].' <count>'.$line [0].'</count></right> </div>';
}
}
if($_GET['sort'] =='down')
{
$THE_COUTERSs = count($ITS_NEW_DOWN);
for ($i=0; $i < $THE_COUTERSs; $i++)
{
$line = explode('**', $ITS_NEW_DOWN[$i]);
$main_text .= '<div class="border_button"><red>'.($i+1).'.</red> <a href="'. $line [1]. '" target="_blank">'. $line [2] .'</a><right>'.$line[3].' <count>'.$line [0].'</count></right> </div>';
}
}
}
echo $main_text;
Счетчик в график :
Построение гравиковОснова для графика : счетчик посещаемости.
На отдельной : странице.
подробнее.
подробнее.
подробнее.

подробнее.