Уроки Счетчик загрузок файлов - Заготовка
4 февраля 2016
1169
счетчик загрузок файлов, счетчик скачиваний файлов

Счетчик загрузок файлов - Заготовка

Сложность Рубрика Ajax
Демонстрация » Скачать »

Добрый вечер, уважаемые читатели! Не знал, какой материал лучше подготовить из двух вариантов для Вас, а именно, что-нибудь про API в социальной сети ВКонтакте, как например, - скрипт проверки пользователя в сообществе ВКонтакте или же что-то другое. Ну как Вы, возможно, уже поняли, речь пойдет сегодня о счетчике загрузок файлов. Решил данный материал разбить на две части - заготовка и полностью весь скрипт.

 

Почему же все-таки на две? Да подумал, может к началу второй части у Вас будут какие-либо пожелания, независимо от того, что я собираюсь для Вас подготовить и выпустить. Если же комментариев не будет, то выпущу то, что подготовил и опять также в видео формате, ну и конечно же в текстовом формате тоже. А теперь, всем советую посмотреть демо и понять, что же будет. Как видно на демо или на изображении ниже, что для реализации данного скрипта нам потребуется база данных, файлы для скачивания, ну и конечно же PHP, HTML и CSS код.

 

Счетчик загрузок файлов

 

Первый шаг. Создание базы данных MySQL. Заполнение полей.

 

Для начала создаем базу данных и назовем ее download, с привилегиями пользователя - 'root' и паролем - ''. 

Нам потребуется всего одна таблица materials, в которой мы будем хранить четыре поля:

 

  • id - идентификатор, ставим ему auto increment, primary key и integer (10) 
  • title - название, varchar (255)
  • files - файлы, varchar (255)
  • download - количество загрузок файла, int (100)

 

Структура таблицы materials

 

Счетчик загрузок с сайта

 

--
-- Структура таблицы `materials`
--

CREATE TABLE IF NOT EXISTS `materials` (
  `id` int(10) NOT NULL AUTO_INCREMENT,
  `title` varchar(255) NOT NULL,
  `files` varchar(255) NOT NULL,
  `download` int(100) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB  DEFAULT CHARSET=utf8 AUTO_INCREMENT=3 ;

 

 

Дамп таблицы materials

 

Счетчик количества скачиваний

 

--
-- Дамп данных таблицы `materials`
--

INSERT INTO `materials` (`id`, `title`, `files`, `download`) VALUES
(1, 'Первая запись', 'rh_logo_white.rar', 1),
(2, 'Вторая запись', 'rh_logo_black.rar', 0);

 

 

Весь код таблицы materials

 

--
-- Структура таблицы `materials`
--

CREATE TABLE IF NOT EXISTS `materials` (
  `id` int(10) NOT NULL AUTO_INCREMENT,
  `title` varchar(255) NOT NULL,
  `files` varchar(255) NOT NULL,
  `download` int(100) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB  DEFAULT CHARSET=utf8 AUTO_INCREMENT=3 ;

--
-- Дамп данных таблицы `materials`
--

INSERT INTO `materials` (`id`, `title`, `files`, `download`) VALUES
(1, 'Первая запись', 'rh_logo_white.rar', 1),
(2, 'Вторая запись', 'rh_logo_black.rar', 0);

 

Второй шаг. Подключение стилей CSS. Подключение к базе данных MySQL. Вывод таблицы materials.

 

Переходим ко второму шагу и для начала подключим стили CSS.

 

<link type="text/css" rel="stylesheet" href="css/demo.css">

 

Теперь, давайте, реализуем вывод таблицы materials, но сначала нам нужно подключиться к базе данных. Для этого мы будем использовать PDO. В переменной $bd мы будем хранить базу данных MySQL и укажем ей хост, в нашем случае localhost. В переменную $user, мы записываем нашего пользователя - 'root' и, соответственно, в переменную $password наш пароль, который пустой - ''.

Далее нам потребуются исключения, в первый блок try мы записываем переменные, которые адресуются к PDO, если все проходит хорошо, то мы успешно подключаемся к базе данных, если же нет, то нам выводится второй блок исключений catch, показывающий ошибку.

 

<?php
$bd = "mysql:dbname=download;host=localhost";
$user = 'root';
$password = '';

try{
	$pdo = new PDO($bd,$user,$password);
	$pdo->exec('SET NAMES utf8');
}
catch(PDOException $e){
	echo 'Ошибка :'.$e->getMessage();
}
?>

 

Теперь переходим к созданию таблицы HTML и выводим всем поля из таблицы materials, а именно нам потребуются три поля: ссылка на файл - поле files, название - поле title и количество загрузок - поле download. Надеюсь, реализация данного запроса посредством PDO Вам понятна и не вызовет каких-либо трудностей. 

 

<table>
<thead>
<tr>
<th>Ссылка на файл</th>
<th>Название записи</th>
<th>Количество загрузок</th>
</tr>
</thead>
<tbody>

<?php
$sqlDownload = "SELECT * FROM materials";
$sql = $pdo->query($sqlDownload);
$res = $sql->fetch(PDO::FETCH_BOTH);
do{
?>
<tr>
<td><a class="counter" href="files/<?=$res['files']?>">Скачать файл</a></td>
<td><?=$res['title'];?></td>
<td><?=$res['download'];?></td>
</tr>
<?
}
while($res = $sql->fetch(PDO::FETCH_BOTH));
?>

</tbody>
</table>	

 

Третий шаг. Стили CSS.

 

Решил немного оформить таблицу HTML, поэтому давайте пропишем следующие стили.

 

table{
	width: 600px;
	text-align: left;
}

thead{
	background: #000;
	color: #FFF;
}

th, td{
	padding: 5px;
}

 

 

На этом заготовка счетчика загрузок файла окончена, ждите вторую часть счетчика загрузок файлов, в которой весь скрипт уже будет работать полностью. Жду от Вас комментариев, если какие идеи возникнут или просьбы, готов выслушать и попробовать во второй части реализовать. Спасибо большое за внимание!)





Роман Краутер