config.php
<?php
$db_host = 'localhost';
$db_user = 'root';
$db_pass = '';
$db = 'test';
@$mysqli = new mysqli($db_host, $db_user, $db_pass, $db);
if ($mysqli->connect_errno){
echo 'Нет подключения с базой данных ' . $mysqli->connect_error;
exit();
}
$mysqli->set_charset('utf8');
index.php
<?php
error_reporting(-1);
include 'config.php';
/**
* Проверка на наличие данных из формы регистрации
*/
if (isset($_POST['reg']) && !empty($_POST['login'])) {
$login = $mysqli->real_escape_string(trim($_POST['login']));
reg($login);
header('Location: ' . $_SERVER['REQUEST_URI']);
}
/**
* Проверка на наличие данных из формы поиска
*/
if (isset($_GET['search']) && !empty($_GET['item'])) {
$item = $mysqli->real_escape_string(trim($_GET['item']));
$search = search($item);
}
/**
* Функция для запросов к базе данных и возврата результата
*/
function query($sql) {
global $mysqli;
$result = $mysqli->query($sql) OR die($mysqli->error);
/**
* Если вернулся объект, ложим результаты в массив и возвращаем данные
*/
if (is_object($result)) {
$data = array();
while ($res = $result->fetch_assoc()) {
$data[] = $res;
}
return $data;
}
}
/**
* Регистрация пользователя
*/
function reg($login) {
$sql = "INSERT INTO `names`
(`name`)
VALUES ('".$login."')";
query($sql); //Посылаем запрос
}
/**
* Вывод всех пользователей
*/
function get_users() {
$sql = "SELECT * FROM `names` ORDER BY `id` DESC";
$users = query($sql);
$users['count'] = count($users); //Считаем сколько всего юзеров
return $users;
}
/**
* Поиск по юзерам
*/
function search($item) {
$item = addcslashes($item, '%_'); //Экранируем символ "%" и "_" для поиска
$sql = "SELECT `name` FROM `names` WHERE `name` LIKE '%".$item."%' ";
$result = query($sql);
return $result;
}
/**
* Достаем всех пользователей
*/
$all_user = get_users();
include 'templates.tpl';
templates.tpl
<!DOCTYPE html>
<html lang="ru">
<head>
<meta charset="UTF-8">
<title>Регистрация</title>
</head>
<body>
<form action="<?=$_SERVER['REQUEST_URI']?>" method="post">
<input type="text" name="login" placeholder="Ваш логин">
<input type="submit" name="reg" value="Регистрация">
</form>
<p></p>
Всего пользователей: <?=$all_user['count']?></br>
<?php foreach ($all_user as $key => $value) { ?>
<a href="?id=<?=$value['id']?>"><?=htmlspecialchars($value['name'])?></a>
<?php if (isset($_GET['id']) && $_GET['id'] == $value['id']) {?>
<?=$value['date']?>
<?php } ?><br/>
<?php } ?>
<form action="<?=$_SERVER['REQUEST_URI']?>" method="get">
<input type="text" name="item" placeholder="Искать">
<input type="submit" name="search" value="Найти">
</form>
<p></p>
<?php if (isset($search)) { ?>
<p>Найдено <?=count($search)?> пользователей</p>
<?php foreach ($search as $value) { ?>
<?=htmlspecialchars($value['name'])?> <br>
<?php } } ?>
</body>
</html>
Ну вот как то так)
Посмотреть работу скрипта можно здесь тЫЦ
К стати, на этом хостинге не работает mysqli_result::fetch_all, пришлось оставлять как есть.