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

Форум MySQL

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

 

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

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

тема: значение поля из автоинкренемента
 
 автор: admiral   (15.01.2010 в 13:43)   письмо автору
 
 

При добавлении записи в поле, нужно получить в столбец записать значение автоинкренемента из первичного ключа.
Я это вижу запросом на добавление, а потом запросом на изменение. Одним запросом никак?

  Ответить  
 
 автор: GeorgeIV   (15.01.2010 в 13:44)   письмо автору
 
   для: admiral   (15.01.2010 в 13:43)
 

а для чего дублировать значение одного поля в другом?

  Ответить  
 
 автор: admiral   (15.01.2010 в 13:48)   письмо автору
 
   для: GeorgeIV   (15.01.2010 в 13:44)
 

Вообщем во второе поле вводится значение (номер) , но заказчик хочет предусмоттреть возможность того чтобы была галочка - Автоматически создать номер. Можно, конечно, самому генерировать номер, а потом сверять нет ли такого номера еще в БД. Поэтому номер думаю самое правильно это брать из первичного ключа.

  Ответить  
 
 автор: Trianon   (15.01.2010 в 13:57)   письмо автору
 
   для: admiral   (15.01.2010 в 13:48)
 

Если этот вводимый руками номер - действительный первичный ключ, то зачем Вам второе поле?
Помещайте его сразу прямиком в id

  Ответить  
 
 автор: admiral   (15.01.2010 в 14:05)   письмо автору
 
   для: Trianon   (15.01.2010 в 13:57)
 

Вы правы. Я не учел что в поле PRIMARY_KEY (auto_increnement) можно вводить значение, отличное от нуля))))

  Ответить  
 
 автор: admiral   (15.01.2010 в 14:08)   письмо автору
 
   для: Trianon   (15.01.2010 в 13:57)
 

Так, а если вдруг пользователь ввел номер по ошибке уже существующие. В этом случае сервер вернет номер ошибки 1062? Следовательно по ней можно и говорить что данный номер уже есть в БД?

  Ответить  
 
 автор: Trianon   (15.01.2010 в 14:10)   письмо автору
 
   для: admiral   (15.01.2010 в 14:08)
 

Если Вы полагаете, что я наизусть помню все номера ошибок - Вы мне льстите. Грубо.

upd. ошибка 1062 - дублирование значения уникального ключа.
Если у Вас в таблице несколько уникальных ключей - потребуется более точно проверить, какой стал причиной.
Выяснить можно по тексту диагностики, не по номеру.

  Ответить  
 
 автор: admiral   (15.01.2010 в 14:20)   письмо автору
 
   для: Trianon   (15.01.2010 в 14:10)
 

Да ниче не льстю. Сами знаете что они здесь.
Просто я у Вас спрашиваю как лучit проверять - по соответсвующему номеру, или запросом - Если записей больше 0,значит есть уже запись.

  Ответить  
 
 автор: admiral   (15.01.2010 в 14:21)   письмо автору
 
   для: admiral   (15.01.2010 в 14:20)
 

ой не ту ссылку дал

  Ответить  
 
 автор: Trianon   (15.01.2010 в 14:59)   письмо автору
 
   для: admiral   (15.01.2010 в 14:21)
 

Это ошибка, которую возвращает сервер, а не клиент.

  Ответить  
 
 автор: admiral   (15.01.2010 в 14:23)   письмо автору
 
   для: Trianon   (15.01.2010 в 14:10)
 

Error: 1062 SQLSTATE: 23000 (ER_DUP_ENTRY) 

Message: Duplicate entry '%s' for key %d


И как же?

  Ответить  
 
 автор: Trianon   (15.01.2010 в 14:55)   письмо автору
 
   для: admiral   (15.01.2010 в 14:23)
 

<?php

  
include 'dbconfig.php';
  
$pk 3;
  
$v mysql_query("INSERT INTO goods (id, title) VALUES ($pk, 'lemon')");
  if(!
$v)
  {
    
$en mysql_errno();
    
$em mysql_error();
    
$key_no 1;
    
$ER_DUP_ENTRY 1062;
    
$dup_PK $en == $ER_DUP_ENTRY &&
        
sprintf("Duplicate entry '%s' for key %d"intval($pk), $key_no)
         == 
$em;
    echo 
$dup_PK "Primary key $pk already exists" "$en $em";
  }
?>


Primary key 6 already exists

1062 Duplicate entry 'sitro' for key 2

  Ответить  
Rambler's Top100
вверх

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