PHP база данных

В Xampp создаем пользователя

С именем и паролем и ставим localhost

Выдаем ему права и делаем базу данных с назанием его имени

«Loo samainimeline andmebaas ja anna kõik õigused»
«Anna kõik õigused metamärgiga nimele»
«Globaalsed õigused vali kõik»

Дальше создаем таблицы, которые вам нужны в этой базе данных

Дальше создаем файл с форматом .sql. На случае того, если ваша база данных сломается или удалится.

Делаем коннект базы данных с php (MariaDB) с именем, паролем и хостом таким же, как вы поставили в Xampp! И ставим базу данных с таким же названием

Делаем тест связки и если все успешно подтверждаем.

В php создаем config с форматом .php, где ставим конфиг базы данных. Перечисляем имя пользователя, пароль, название базы данных и имя хоста
Пример:

<?php
$kasutaja = "[username]";
$parool = "[password]";
$andmebaas = "[database name]";
$servernimi = "localhost";

$yhendus = new mysqli(hostname: $servernimi, username: $kasutaja, password: $parool, database: $andmebaas);


// Используется для установки кодировки соединения с базой данных MySQL.
$yhendus->set_charset("utf8");


Дальше создаем файл, где уже будем выводить таблицы

Что бы вывести таблицы нужно подключить ваш конфиг к файлу
Пример:

require_once("config.php");

Дальше подготавливаем SQL-запрос на выбор данных из таблицы
Пример:

// Запрос выбирает данные из таблицы osalejad
$paring=$yhendus->prepare("SELECT id, nimi, telefon, pilt, synniaeg FROM osalejad");
// Метод связывает переменные PHP с результатами, которые вернет SQL-запрос
$paring->bind_result($id, $nimi, $telefon, $pilt, $synniaeg);
// Этот метод выполняет подготовленный запрос
$paring->execute();

Задание: Список лагеря

Добавляю новую таблицу Osalejad

create table osalejad (
      id int PRIMARY KEY AUTO_INCREMENT,
      nimi varchar(30),
      telefon varchar(12),
      pilt text,
      synniaeg date);

Делаю файл conf.php, где будет храниться конфиг для контакта с базой данных

<?php
$kasutaja = "bogdan";
$parool = "123456";
$andmebaas = "bogdan";
$servernimi = "localhost";

$yhendus = new mysqli(hostname: $servernimi, username: $kasutaja, password: $parool, database: $andmebaas);

$yhendus->set_charset("utf8");


Делаю файл andmeOsalejad.php

Делаю удаление, запрос на вывод таблицы и добавление людей

<?php
require_once("conf.php");
global $yhendus;


// Удаление *Контактирует с кнопкой*
if(isset($_REQUEST["kustuta"])) {
    $kask = $yhendus->prepare("delete from osalejad where id = ?");
    $kask->bind_param("i", $_REQUEST["kustuta"]);
    $kask->execute();
}


// Добавление
if (isset($_REQUEST["nimi"]) && isset($_REQUEST["telefon"])
    && isset($_REQUEST["synniaeg"])
    && !empty($_REQUEST["synniaeg"])
    && !empty($_REQUEST["telefon"])
    && !empty($_REQUEST["nimi"])) {

    $paring = $yhendus->prepare("insert into osalejad(nimi, telefon, pilt,synniaeg) values (?, ?, ?, ?)");
    $paring->bind_param("ssss", $_REQUEST["nimi"], $_REQUEST["telefon"], $_REQUEST["pilt"], $_REQUEST["synniaeg"]);
    $paring->execute();
}



// Вывод данных
$paring=$yhendus->prepare("SELECT id, nimi, telefon, pilt, synniaeg FROM osalejad");
$paring->bind_result($id, $nimi, $telefon, $pilt, $synniaeg);
$paring->execute();

?>

Делаю форму для того, что бы добавлять людей в таблицу

<form action="?" method="post">
        <label for="nimi">Nimi</label>
        <input type="text" id="nimi" name="nimi" placeholder="Nimi">

        <label for="telefon">Telefon</label>
        <input type="text" id="telefon" name="telefon" placeholder="Näiteks +111111111">

        <label for="pilt">Pilt</label>
        <textarea name="pilt" id="pilt">Sisesta pildi linki</textarea>

        <label for="synniaeg">Sünniaeg</label>
        <input type="date" id="synniaeg" name="synniaeg">

        <input type="submit" value="Lisa">
    </form>

Делаю таблицу с выводом данных из базы

 <table>
        <tr>
            <th>ID</th>
            <th>Nimi</th>
            <th>Telefon</th>
            <th>Sünniaeg</th>
            <th>Vanus</th>
            <th>Pilt</th>

            <th></th>
        </tr>
        <?php
            while($paring->fetch()) {
                $today = new DateTime();
                $birthDate = new DateTime($synniaeg);
                $vanus = $today->diff($birthDate)->y;

                echo "<tr>";
                echo "<td>".htmlspecialchars($id)."</td>";
                echo "<td>".htmlspecialchars($nimi)."</td>";
                echo "<td>".htmlspecialchars($telefon)."</td>";
                echo "<td>".htmlspecialchars($synniaeg)."</td>";
                echo "<td>".htmlspecialchars($vanus)." aastat vana"."</td>";
                echo "<td><img src='$pilt' alt='pilt' width='150px'></td>";
                echo "<td><a href='?kustuta=$id'>X</a></td>";
                echo "</tr>";
            }
        ?>
    </table>