[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: как получить id объекта
blase
$this->db_action="INSERT INTO `table`(`column1`, `column2`, `columnID`) VALUES('value1', 'value2', 'valueID')";


как видите происходит запрос в бд на запись.
вместо valueID должно находится id объекта который щас записывается

как это сделать? если еще учесть, что до этого insert запросов не было - то есть использовать mysql_insert_id() для этого не получится.

или единственный выход - это записать в массив все значения columnID и потом написать:
$newID=max($arr)+1;




Спустя 37 минут, 38 секунд (9.02.2011 - 18:34) Snus написал(а):
blase
Какую либу юзаешь?

Спустя 51 минута, 29 секунд (9.02.2011 - 19:26) blase написал(а):
если ты про это "$this->db_action". то собственную

немного поправлю:
$n="hello-";
$this->db_action="INSERT INTO `table`(`id`, `column2`, `columnID`) VALUES('', 'value2', ' ".$n."valueID')";

то есть id уже присутствует, и мне нужно этот же id прикрутить еще к одной колонке - columnID, чтобы получилось примерно: hello-37

Спустя 46 минут, 45 секунд (9.02.2011 - 20:12) sergeiss написал(а):
То есть, ты хочешь взять автоматически созданное значение айди и использовать его в другой колонке? Если да, то ты не правильно подошел.
Сделай триггер "после вставки". В нем уже будет известен этот айди. И тут же используй его для обновления другого поля.

Спустя 17 минут, 52 секунды (9.02.2011 - 20:30) blase написал(а):
Цитата (sergeiss @ 9.02.2011 - 17:12)
То есть, ты хочешь взять автоматически созданное значение айди и использовать его в другой колонке?

именно,
мне посоветовали просто написать:
$this->db_action="INSERT INTO `table`(`id`, `column2`, `columnID`) VALUES('', 'value2', '')";
$newID=mysql_insert_id();
$this->db_action="update table set columnID='hello-".$newID."'";

но я ожидал что это всё можно сделать только одним запросом, оказалось только так.

я не знаю что такое триггер)), определение в интернете почитал, но в общем плане всё равно незнание осталось)



....

как я понял это что-то вроде функции? function triggerGETid(){....}

Спустя 1 час, 48 минут, 56 секунд (9.02.2011 - 22:19) sergeiss написал(а):
Цитата (blase @ 9.02.2011 - 21:30)
я не знаю что такое триггер)), определение в интернете почитал, но в общем плане всё равно незнание осталось)

Вот тут поищи: много про триггеры в MySQL. Один раз разберешься, потом будешь пользоваться smile.gif

Спустя 4 минуты, 42 секунды (9.02.2011 - 22:24) Snus написал(а):
blase
$this->db_action="INSERT INTO `table`(`id`, `column2`, `columnID`) VALUES('', 'value2', '')";
$newID=mysql_insert_id();
$this->db_action="update table set columnID='hello-".$newID."'";


Не понял... а зачем тебе один и тот же ID в одну таблицу писать?!?! у тебя в колонке id уже есть он. Объясни мне :)

Спустя 11 часов, 8 минут, 32 секунды (10.02.2011 - 09:32) linker написал(а):
Зачем триггеры, сделай данное поле автоинкрементным и все... триггеры млин.

Спустя 1 час, 27 минут, 50 секунд (10.02.2011 - 11:00) sergeiss написал(а):
linker - как я понял, речь как раз и идет об автоинкрементном поле smile.gif Человек хочет использовать его сразу же, как только значение было назначено. Поэтому я и говорю про триггеры. Потому что триггер вставки - это самое первое место, где новый айдишник доступен для обработки.

Зачем? Да хрен его знает. Его проблемы smile.gif Тут может быть много разных вариантов, начиная от бесполезных до очень нужных. Но это уж пусть ТС думает сам.

Спустя 1 час, 14 минут, 18 секунд (10.02.2011 - 12:15) blase написал(а):
вот зачем:
1) колонка: id (автоинкремент)
2) колонка: columnID
||
1) с этим всё понятно, допустим туда автоинкримилось число 54
2) тогда columnID должен иметь вид примерно такой: ?page=54

Спустя 5 минут, 42 секунды (10.02.2011 - 12:20) Snus написал(а):
blase
А во время выборки этого делать нельзя?

$columnID = '?page='.$row['id'];

Спустя 6 часов, 1 минута, 33 секунды (10.02.2011 - 18:22) alex12060 написал(а):
Странный ты человек)
У тебя есть автоинкрементное поле, зачем в другое поле добавлять то-же самое? оО
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.