<?php
error_reporting(E_ALL | E_STRICT);
ini_set('display_errors', true);
ini_set('html_errors', true);
ini_set('error_reporting', E_ALL ^ E_STRICT);
ini_set('default_charset', 'utf-8');
date_default_timezone_set('Europe/London');
header('Content-Type: text/html; charset=utf-8', true);
// Перед "употреблением" создать базу данных с именем "test". Или с другим именем, но отдедактировать имя базы данных ниже.
$db_host = 'localhost';
$db_user = 'root';
$db_pass = '';
$db_name = 'test';
if(!$db = @mysqli_connect($db_host, $db_user, $db_pass, $db_name)) die(mysqli_connect_error());
// создаём таблицу, если её до сих пор нет
mysqli_query($db, "CREATE TABLE IF NOT EXISTS `user` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(32) COLLATE utf8_unicode_ci NOT NULL DEFAULT '',
`email` varchar(256) COLLATE utf8_unicode_ci DEFAULT '',
`chislo` int(11) NOT NULL DEFAULT '0',
PRIMARY KEY (`id`),
UNIQUE KEY `name` (`name`),
UNIQUE KEY `email` (`email`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;");
?>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<style type="text/css">
html,body{width:600px;margin-right:auto;margin-left:auto;}
form{margin:6px;padding:6px;border:1px solid #D4D0C8;}
form h3{font-size:110%;color:#FF6600;margin:0px;padding:0px;}
ul{margin:6px;padding:6px;border:1px solid #D4D0C8;}
li{margin:0px;padding:0px;list-style-type:none;}
.m_input{width:300px;}
</style>
</head>
<body>
<?php
$action = isset($_REQUEST['action']) ? $_REQUEST['action'] : '';
$stop = '';
// Если добавляем юзера
if($action == 'user_add'){
$name = isset($_REQUEST['name']) ? trim($_REQUEST['name']) : '';
if($name === ''){
$stop .= '<li>Не заполнено имя</li>';
}
else{
$result = mysqli_query($db, "SELECT * FROM `user` WHERE `name`='".$name."'");
if(mysqli_num_rows($result)){
$stop .= '<li>Юзер с таким именем уже существует</li>';
}
}
$email = isset($_REQUEST['email']) ? trim($_REQUEST['email']) : '';
if($email === ''){
$stop .= '<li>Не заполнено email</li>';
}
else{
$result = mysqli_query($db, "SELECT * FROM `user` WHERE `email`='".$email."'");
if(mysqli_num_rows($result)){
$stop .= '<li>Юзер с таким email уже существует</li>';
}
}
$chislo = isset($_REQUEST['chislo']) ? intval($_REQUEST['chislo']) : 0;
if(!$stop){
$sql = "INSERT INTO `user` (`name` , `email` , `chislo`) VALUES ('".$name."', '".$email."', ".$chislo.")";
mysqli_query($db, $sql);
}
}
// Если редактируем юзеров
elseif($action == 'user_edit'){
if($data = isset($_REQUEST['data']) ? (array) $_REQUEST['data'] : array()){
foreach($data as $id => $value){
$id = intval($id);
// Проверяем существование юзера с таким ID
$result = mysqli_query($db, "SELECT * FROM `user` WHERE `id`=".$id);
// Если не существует - пропускаем цикл
if(!mysqli_num_rows($result)) continue;
// Если удаляем юзера
if(isset($value['del']) and $value['del'] = intval($value['del'])){
mysqli_query($db, "DELETE FROM `user` WHERE `id`=".$id);
continue;
}
$value['name'] = isset($value['name']) ? trim($value['name']) : '';
if($value['name'] === '') continue;
// У каждого юзера у нас уникальное name. Поэтому проверяем, что бы новое name уже не существовало у другого юзера
$result = mysqli_query($db, "SELECT * FROM `user` WHERE `id` != ".$id." AND `name` = '".$value['name']."'");
if(mysqli_num_rows($result)) continue;
$value['email'] = isset($value['email']) ? trim($value['email']) : '';
if($value['email'] === '') continue;
// У каждого юзера у нас уникальное email. Поэтому проверяем, что бы новое email уже не существовало у другого юзера
$result = mysqli_query($db, "SELECT * FROM `user` WHERE `id` != ".$id." AND `email` = '".$value['email']."'");
if(mysqli_num_rows($result)) continue;
$value['chislo'] = isset($value['chislo']) ? intval($value['chislo']) : 0;
// Собственно обновляем
$sql = "UPDATE `user` SET `name` = '".$value['name']."', `email` = '".$value['email']."', `chislo` = ".$value['chislo']." WHERE `id`=".$id;
mysqli_query($db, $sql);
}
}
}
if($stop){ ?><ul><?=$stop?></ul><?php }
?>
<form id="form_add" name="form_add" method="post">
<h3>Добавить нового юзера</h3>
<input name="name" type="text" class="m_input" value="" /> name<br />
<input name="email" type="text" class="m_input" value="" /> email<br />
<input name="chislo" type="text" class="m_input" value="0" /> chislo<br />
<input name="action" type="hidden" value="user_add" />
<input type="submit" value="Добавить" />
</form>
<form method="post" name="form_edit" id="form_edit">
<h3>Редактируем юзеров</h3>
<table width="100%">
<tr><td>id</td><td>name</td><td>email</td><td>chislo</td><td>удалить</td></tr>
<?php
$result = mysqli_query($db, "SELECT * FROM `user` ORDER BY `id` ASC");
while($row = mysqli_fetch_assoc($result)){ ?>
<tr>
<td><?=$row['id']?></td>
<td><input name="data[<?=$row['id']?>][name]" type="text" value="<?=htmlentities($row['name'], ENT_QUOTES, 'utf-8')?>" /></td>
<td><input name="data[<?=$row['id']?>][email]" type="text" value="<?=htmlentities($row['email'], ENT_QUOTES, 'utf-8')?>" /></td>
<td><input name="data[<?=$row['id']?>][chislo]" type="text" value="<?=$row['chislo']?>" /></td>
<td><input name="data[<?=$row['id']?>][del]" type="checkbox" value="1" /></td>
</tr>
<?php } ?>
</table>
<input name="action" type="hidden" value="user_edit" />
<input type="submit" value="Сохранить" />
</form>
</body>
</html>