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

Форум PHP

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

 

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

вид форума:
Линейный форум (новые сообщения вниз) Структурный форум

тема: Присвоение id пользователю

Сообщения:  [1-10] 

 
 автор: Trianon   (16.11.2006 в 20:38)   письмо автору
 
   для: NERUM   (16.11.2006 в 20:30)
 

1075 - Incorrect table definition; there can be only one auto column and it must be defined as a key
А прочесть?
Некорректное определение таблицы.
Разрешается делать лишь один автонаращиваемый столбец, и он должен быть определен, как [первичный] ключ.

   
 
 автор: NERUM   (16.11.2006 в 20:36)   письмо автору
 
   для: indexer   (16.11.2006 в 20:30)
 

Спасибо большое получилось :)

   
 
 автор: indexer   (16.11.2006 в 20:30)   письмо автору
 
   для: NERUM   (16.11.2006 в 20:23)
 


CREATE TABLE `news` (
  `id` int(50)  NOT NULL auto_increment,
  PRIMARY KEY  (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=cp1251 AUTO_INCREMENT=1 ;


остальные поля сами

   
 
 автор: NERUM   (16.11.2006 в 20:30)   письмо автору
 
   для: Trianon   (16.11.2006 в 20:26)
 

Теперь другую вывело.
ALTER TABLE `news` CHANGE `id` `id` INT( 50 ) NOT NULL AUTO_INCREMENT
#1075 - Incorrect table definition; there can be only one auto column and it must be defined as a key

   
 
 автор: Trianon   (16.11.2006 в 20:26)   письмо автору
 
   для: NERUM   (16.11.2006 в 20:23)
 

надо убрать значение по-умолчанию.
Потому что по умолчанию поле должно наращиваться, а не заполняться фиксированным значением.

   
 
 автор: NERUM   (16.11.2006 в 20:23)   письмо автору
 
   для: NIK   (16.11.2006 в 20:17)
 

Да я об этом знал, но не cмог настроить, вот ошибка которую выводит, mysql
в чем она заключается?

ALTER TABLE `news` CHANGE `id` `id` INT( 50 ) DEFAULT '0' NOT NULL AUTO_INCREMENT 
#1067 - Invalid default value for 'id' 

   
 
 автор: indexer   (16.11.2006 в 20:23)   письмо автору
 
   для: NIK   (16.11.2006 в 20:17)
 

NIK - ответили почти одновременно с разницей в минуту но одно и тоже.
:-)

   
 
 автор: indexer   (16.11.2006 в 20:18)   письмо автору
 
   для: NERUM   (16.11.2006 в 19:59)
 

добавляя пользователя - берите возвращенное значение автоинкрименентного поля это и будет его id.

Задумайтесь что произойдет если одновременно попытаются зарегистрироватся 2 пользователя? они получат один и тот же ID? :-)

   
 
 автор: NIK   (16.11.2006 в 20:17)   письмо автору
 
   для: NERUM   (16.11.2006 в 19:59)
 

всё на много проще. Лучше добавлять ID пользователю автоматически средствами БД (кстати БД MySQL?). Для этого столбцу с ID пользователя добавь функцию auto_increment. И тогда когда ты будешь заносить в БД нового юзера, в ID ничего не пиши, БД сама добавит ID

   
 
 автор: NERUM   (16.11.2006 в 19:59)   письмо автору
 
 

Дело в том, что при регистрации пользователя ему нужно присвоить id, но у мня проблема в том,
что скрипт выставляет id как попало:


<?
           $sqlid
=mysql_query("SELECT*FROM user");
           
$numid=mysql_num_rows($sqlid);
           for(
$i=0$i<$numid$i++)
            {
           
$rowid=mysql_fetch_array($sqlid);
           
$fd=array($rowid[0]);
           
$id=max($fd);
           
$id++;
?>

Может кто знает оптимальный вариант?

   

Сообщения:  [1-10] 

Форум разработан IT-студией SoftTime
Rambler's Top100
вверх

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