Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум MySQL

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Как задать PRIMARY KEY?
 
 автор: Freddie_X   (06.03.2006 в 18:48)   письмо автору
 
 

Я хочу сделать к примеру, регистрацию. В скрипте страницы я даю команду MySQL:

$a = mysql_query("insert into users VALUES('$b','$c','$d');");

где $b - это графа id_user в моей базе данных(у этой графы свойство PRIMARY KEY и auto_increment). Так как значение графы id_user должно быть уникально, мне надо прописать код в скрипте станицы, чтобы у каждого нового пользователя был свой id. Как мне это сделать?

   
 
 автор: Artemy   (06.03.2006 в 19:02)   письмо автору
 
   для: Freddie_X   (06.03.2006 в 18:48)
 

Просто оставьте это поле пустым, БД сама присвоит ему ид. У Вас же стоит auto_increment у этого поля.

   
 
 автор: Trianon   (06.03.2006 в 19:13)   письмо автору
 
   для: Freddie_X   (06.03.2006 в 18:48)
 

А значение id_user подберите после этого с помощью mysql_insert_id():

 $id_user = mysql_insert_id(); 

   
 
 автор: cheops   (06.03.2006 в 19:37)   письмо автору
 
   для: Freddie_X   (06.03.2006 в 18:48)
 

Используйте следующий код
<?php
  $a 
mysql_query("insert into users VALUES(NULL,'$c','$d');");
?>

СУБД MySQL самостоятельно назначит уникальный номер для поля снабжённого атрибутом AUTO_INCREMENT.

   
 
 автор: Freddie_X   (06.03.2006 в 19:58)   письмо автору
 
   для: cheops   (06.03.2006 в 19:37)
 

Спасибо, попробую!

   
 
 автор: Freddie_X   (07.03.2006 в 19:56)   письмо автору
 
   для: Freddie_X   (06.03.2006 в 19:58)
 

Получилось, вроде... Вот я пробовал регистрировать под разными логинами, и затем полностью очищал все строки из таблицы, т.к. я только тестировал, но когда я снова заполняю регистрационную форму, в таблице в графе id_user появляется значение 6, при следующей регистрации - 7 и т.д. Т.е. счёт значения id_user продолжается с прошлого раза, когда у меня одновременно в таблице присутствовали 5 записей, и последнее значение id_user было 5.
Как мне начинать счёт этих значений заново, если в таблице нет записей, либо продолжать счёт, если были удалены какие-либо из записей?

   
 
 автор: Trianon   (07.03.2006 в 20:24)   письмо автору
 
   для: Freddie_X   (07.03.2006 в 19:56)
 

А с какой целью необходимо такое поведение?

   
 
 автор: Freddie_X   (07.03.2006 в 20:54)   письмо автору
 
   для: Trianon   (07.03.2006 в 20:24)
 

Ну так чтобы как бы начать таблицу заново, я же просто тестировал скрипт. Ну мне так, чтобы знать, возможно ли это.

   
 
 автор: Trianon   (07.03.2006 в 21:25)   письмо автору
 
   для: Freddie_X   (07.03.2006 в 20:54)
 

alter table TAB auto_increment=1000
и отсчет пойдет с 1000.

   
 
 автор: cheops   (08.03.2006 в 12:51)   письмо автору
 
   для: Freddie_X   (07.03.2006 в 19:56)
 

Полностью обнулить таблицу можно при помощи оператора
TRUNCATE TABLE tbl

который удаляет записи и сбрасывает значение AUTO_INCREMENT или, как правильно подсказывает Trianon изменить значение счётчика при помощи оператора
ALTER TABLE tbl AUTO_INCREMENT=0

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования