Link in progress
Обо мне
Файлы и MySQL. Уроки PHP

Файлы и MySQL. Уроки PHPБаза данных, конечно хороша, но она не всемогущая. В базе дынных мы можем сохранять текста, числа, выводит их, удалять из базы и добавлять в нее новые записи, но куда девать бинарные файлы? Такие как: картинки, аудио, видео, документы разных форматов? Конечно, их тоже можно затолкать в БД, но этот как минимум не этично и далеко не профессионально. В этом уроке план будет таким:
1. Cтраница рейтинга, страница добавления данных в БД;
2. Форма с добавление файлов.

1. Cтраница рейтинга, страница добавления данных в БД.

С этого урока мы сменим тематику, с подписчиками мы попрощаемся, и перейдет к сайту рейтинга. Я выбрал конкурс спортсменов, которые будут соревноваться в жиме лёжа, добавлять свои результаты на сайт, просматривать список всех участников и их показатели. Первое что там нужно – это создать новую таблицу в БД, я ее назвал sport с колонками в ней: id, name, date, weight:

1
2
3
4
5
6
7
CREATE TABLE sport (
id INT NOT NULL AUTO_INCREMENT,
PRIMARY KEY (id),
name VARCHAR(100),
date DATETIME,
weight INT(3)
)

База у нас готова, теперь нужна страница добавления участников. Стиль и оформления я взял с прошлых уроков:

1
2
3
4
5
6
7
8
9
10
11
12
13
<p style="font-size:18pt; text-align:center;">Приветствую Вас на соревнованиях по жиму лёжа. Заполните все поля формы и станете участником соревнования. Победитель получил бесплатно абонемент на 1 год посещения нашего спортзала!<p />
<form method="post" action="<?PHP $_SERVER['PHP_SELF']?>">
    <label for="name">Имя:</label>
        <input type="text" id="name" name="name" value="<?PHP echo $name?>"/><br />
        <?php if ($error_name){ echo '<span class="error">' . $error_name . '</span><br />';}?>

    <label for="weight">Поднятый вес, кг</label>
        <input type="text" id="weight" name="weight" value="<?PHP echo $weight?>"/><br />
        <?php if ($error_weight){ echo '<span class="error">' . $error_weight . '</span><br />';}?>
    <div class="send">
    <input type="submit" id="send" value="Отправить" name="submit" />
</div>
</form>

Мы уже знаем, что эта форма ссылается сама на себя и этого говорит, что нам нужно написать PHP код, который будет обрабатывать и добавлять банные в БД.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
if (isset($_POST['submit'])) {
//Записываем данные пришедшие из формы в переменные
$name = $_POST['name'];
$weight = $_POST['weight'];
//Если все поля не заполненные
if (empty($name) && empty($weight)) {
    $error_name = 'Вы забыли указать имя!';
    $error_weight = 'Вы забыли указать ваш рекордный вес жима лёжа!';
    $need_form = 'ok';
    };

if (empty($name) && (!empty($weight))) {
    $error_name = 'Вы забыли указать имя!';
    $need_form = 'ok';
    };

if (!empty($name) && empty($weight)) {
    $error_weight = 'Вы забыли указать ваш рекордный вес жима лёжа!';
    $need_form = 'ok';
    };

// Если все поля заполненные
if ((!empty($name)) && (!empty($weight))) {
    //Подключаемся к БД
    $connect = mysqli_connect('hostname', 'login', 'pass', 'BDname', ) or die ('Нет подключения к базе данных');
    mysqli_query($connect, "SET CHARACTER SET 'utf8'");    
    //Записываем запрос к БД в переменную
    $query = "INSERT INTO sport VALUES ('', '$name', NOW(), '$weight')";

    // Выполняем отправку запроса в БД
    mysqli_query($connect, $query) or die ('Не удалось записать данные в БД');

    // Закрываем соединение с БД
    mysqli_close($connect);

    echo "Вы успешно добавлены в таблицу рейтинга. <a href="rank.php">Посмотреть рейтинг.</a>";
    $need_form = 'No';
    };
};

Все работает отлично! Данные в БД добавляются, теперь выведем эти данные на страницу:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<p style="font-size:18pt; text-align:center;">Рейтинг спортсменов<p />
<?php
//Подключаемся к БД
$ connect = mysqli_connect('hostname', 'login', 'pass', 'BDname', ) or die ('Нет подключения к базе данных');
mysqli_query($connect, "SET CHARACTER SET 'utf8'");
       
//Выводим список всех подписчиков
$query = "SELECT * FROM sport";
$result = mysqli_query($connect, $query);
while ($rank = mysqli_fetch_array($result)) {
    echo '<b>Поднял:</b><span class="rank"> ' . $rank['weight'] . 'кг.</span><br />';
    echo '<b>Имя:</b> ' . $rank['name'] . '<br />';
    echo '<b>Дата добавления:</b> ' . $rank['date'] . '<br />';
    echo '<br /><br />';
    };
// Закрываем соединение с БД
mysqli_close($connect);
?>

На этой станице мы использовали обычный цикл WHILE() для вывода данных.

2. Форма с добавление файлов.

Рейтинг работает, но он скучный и не интересный на вид. А если мы добавим возможность загружать свое фото атлету? Это придаст неякий интерес, похвастаться своими достижениями, показать свое тело, а также будет небольшим доказательством правдивых показателей рейтинга, ведь человек с весом тела в 50кг врятли сможет пожать 200кг. Дабы не затягивать урок, сегодня мы добавить в форму добавление участников возможность загрузки файлы:

1
2
<label for="photo">Фото:</label>
    <input type="file" id="photo" name="photo"/><br />

Вот и все, HTML уже готов передать нам файл, но это не значит, что HTML может его сохранить на сервере.
В следующем уроке мы узнаем, как обработать файл средствами PHP, переданный HTML формой, узнаем о новой суперглобальной переменной $_FILES.

Оставайтесь с нами, до скорой встречи, с уважение ProIN!

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Max quality, min price, min time expenditure
Send me a message to: work@glogla.net
Portfolio