- Автор темы
- #1
у меня вот этот скрипт:
записывает вот в эту базу:
...значения.
Но проблема в том, что если у меня было зарегано 5 узеров с id 1, 2, 3, 4 и 5 соответственно. Я их всех удаляю, добавляю новых юзеров, но id новых узеров начинается не с нуля а с id 6
Как подправить базу чтоль, чтоб после удаления всех юзеров присвоение id начиналось с нуля... а если удален 1 или несколько юзеров, то при реге новых им присваиваются иды удаленных ?
PHP:
<?
if(!defined('in_site')) die('Hacking attempt');
// если юзер зареган, редиректим на страницу юзера
if(!empty($_SESSION['userid']) or !empty($_COOKIE['save_user_id'])){
header("Location: ?q=user");
exit();
}
// register vars
$email = isset($_POST['email']) ? str_ent($_POST['email']) : '';
$login = isset($_POST['login']) ? str_ent($_POST['login']) : '';
$phone = isset($_POST['phone']) ? str_ent($_POST['phone']) : '';
$tzone = isset($_POST['tzone']) ? str_ent($_POST['tzone']) : '';
// register
if(isset($_POST['submit']) && $_POST['submit']=='register')
{
// user agree with rules
if(!empty($_POST['agree']))
{
$pass1 = str_ent($_POST['pass1']);
$pass2 = str_ent($_POST['pass2']);
$scode = str_ent($_POST['scode']);
// check errors
if(empty($email) or empty($pass1) or empty($pass2) or empty($login) or empty($phone) or empty($scode))
{
$status = "Все поля должны быть заполнены";
}
// check email address
else if(!CheckEmail($email))
{
$status = "Ошибка синтаксиса e-mail адреса";
}
// check passwords length
else if(strlen($pass1)<6 || strlen($pass1)>30)
{
$status = "Длина пароля не должна быть меньше 6 символов и не должна быть больше 30 символов";
}
// check password syntax
else if(!preg_match("/^[a-z_0-9\-\.]{6,30}$/i", $pass1))
{
$status = "Ошибка синтаксис пароля";
}
// confirm password
else if($pass1!=$pass2)
{
$status = "Пароли не совпадают";
}
// проверка поля номера телефона
else if(strlen($phone)<11 || strlen($phone)>11)
{
$status = "Введите номер телефона в формате: 79XXXXXXXXX (11 цифр без знака '+')";
}
// check phone syntax
else if(!preg_match("/^[0-9\-\.]{11,11}$/i", $phone))
{
$status = "Проверьте правильность ввода номера телефона";
}
// <-- номер
// check login length
else if(strlen($login)<3 or strlen($login)>30)
{
$status = "Длина имя пользователья не должно быть меньше 3 символов и не должно быть больше 30 символов";
}
// check login (nick)
else if(!preg_match("/^[a-z0-9]+$/i", $login))
{
$status = "Ошибка синтаксис логина";
}
// check security code
else if(!empty($_SESSION['security_code']) && $_SESSION['security_code']!=$scode)
{
$status = "Код безопасности введен не верно";
}
else{
// check login exists
if($sql->selectCell('SELECT login FROM ?_users WHERE login=?s', $login))
{
$status = "<b>$login</b> Данный логин используется другим участником";
}
// check email exists
else if($sql->selectCell('SELECT email FROM ?_users WHERE email=?s', $email))
{
$status = "Данный e-mail используется другим участником";
}
// check phone exists
else if($sql->selectCell('SELECT phone FROM ?_users WHERE phone=?s', $phone))
{
$status = "Данный телефон используется другим участником";
}
else{
// get all insert data
$row = array('email' => $email,
'pass' => md5($pass1),
'login' => $login,
'tzone' => $tzone,
'phone' => $phone,
'edate' => date('Y-m-d H:i:s'),
'mdate' => date('Y-m-d H:i:s'),
'cdate' => date('Y-m'));
if($sql->query('INSERT INTO ?_users (?#) VALUES(?a)',
array_keys($row), array_values($row)))
{
header("Location: ?q=preview");
exit();
}
}
}
}
else{
// user not agree our rules
$status = "Вы не согласны правилами участия в конкурсе и правилами пользования сайтом?";
}
}
?>
PHP:
CREATE TABLE IF NOT EXISTS `gs_users` (
`id` int(6) unsigned NOT NULL AUTO_INCREMENT,
`email` varchar(100) NOT NULL,
`pass` varchar(35) NOT NULL,
`fpass` varchar(30) DEFAULT NULL,
`login` varchar(30) NOT NULL,
`tzone` char(6) NOT NULL,
`edate` datetime NOT NULL,
`mdate` datetime NOT NULL,
`cdate` varchar(10) NOT NULL,
`logged` int(1) unsigned DEFAULT '0',
`firstname` varchar(60) NOT NULL,
`lastname` varchar(60) NOT NULL,
`bdate` date NOT NULL,
`slove` int(2) unsigned DEFAULT '0',
`hobbi` text,
`work` varchar(250) DEFAULT NULL,
`love_music` text,
`love_movie` text,
`love_books` text,
`love_color` text,
`i_am` text,
`deviz` text,
`my_dream` text,
`country` varchar(50) DEFAULT NULL,
`district` varchar(50) DEFAULT NULL,
`city` varchar(50) DEFAULT NULL,
`icq` varchar(20) DEFAULT NULL,
`views` int(6) unsigned DEFAULT '0',
`rating` int(6) DEFAULT '0',
`phone` text,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=cp1251 AUTO_INCREMENT=9 ;
Но проблема в том, что если у меня было зарегано 5 узеров с id 1, 2, 3, 4 и 5 соответственно. Я их всех удаляю, добавляю новых юзеров, но id новых узеров начинается не с нуля а с id 6
Как подправить базу чтоль, чтоб после удаления всех юзеров присвоение id начиналось с нуля... а если удален 1 или несколько юзеров, то при реге новых им присваиваются иды удаленных ?