CREATE DATABASE SITE
DEFAULT CHARACTER SET utf8
DEFAULT COLLATE utf8_general_ci;
USE SITE;
CREATE TABLE timer(
id INT AUTO_INCREMENT PRIMARY KEY,
create_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
);
/**
* Создает подготовленное выражение на основе готового SQL запроса и переданных данных
*
* @param $link mysqli Ресурс соединения
* @param $sql string SQL запрос с плейсхолдерами вместо значений
* @param array $data Данные для вставки на место плейсхолдеров
* @return mysqli_stmt Подготовленное выражение
*/
function db_get_prepare_stmt($link, $sql, $data = []) {
$stmt = mysqli_prepare($link, $sql);
if ($data) {
$types = '';
$stmt_data = [];
foreach ($data as $value) {
$type = null;
if (is_int($value)) {
$type = 'i';
}
else if (is_string($value)) {
$type = 's';
}
else if (is_double($value)) {
$type = 'd';
}
if ($type) {
$types .= $type;
$stmt_data[] = $value;
}
}
$values = array_merge([$stmt, $types], $stmt_data);
$func = 'mysqli_stmt_bind_param';
$func(...$values);
}
return $stmt;
}
/**
* функция конектится с базой
*
* @param array $db_config данные от базы
* @return mysqli object
*/
function db_connect($db_config)
{
$connection = mysqli_connect($db_config['host'], $db_config['user'], $db_config['password'], $db_config['database']);
if (!$connection) {
die('Ошибка подключение: ' . mysqli_connect_error());
}
mysqli_set_charset($connection, "utf8");
return $connection;
}
/**
* функция получение даты
*
* @param mysqli $connection конектится с базой
* @return int
*/
function get_lots($connection) {
$sql = '
SELECT ... ... ... что то длинное ';
$result = mysqli_query($connection, $sql);
$time = mysqli_fetch_all($result, MYSQLI_ASSOC);
return $time ;
}
function getTimeRemaining(endtime) {
const newDate = new Date()
const t = Date.parse(endtime) - Date.parse(newDate.getTimezoneOffset() / 60),
days = Math.floor(t / (1000 * 60 * 60 * 24)),
hours = Math.floor(t / (1000 * 60 * 60) % 24),
import Header from './components/MyComponent'; - а потом думай что за Header, уж лучше писать import MyComponent from './components/MyComponent'; - имя файла и компонета одинаковы также и при импорте
jsx можешь и js ) jsx реактовский фаил можно и без расширения писать, а можешь и с ним) Если в импорте нет расширения файла, по умолчанию будет искать фаил с jsx