Просмотр полной версии : пополнение бд
Whatsername
02.08.2005, 17:00
я делаю каталог изданий. в числе прочих данных, необходимо хранить картинку обложки. я решил просто аплодить картинку на сервер и переименовывать файл согласно Id записи.
трабла в том, что Id не известен в момент добавления записи в таблицу. можно либо предположить его значение, либо добавлять записи в базу за две ходки. посоветуйте как лучше поступить.
либо добавлять записи в базу за две ходки.
Сдается мне, ты не понимаешь, что делаешь. Внимание, вопрос: ЧТО ты собираешься делать с базой в ДВА запроса?
http://php.net/mysql_insert_id + автоинкремент поле
Whatsername
03.08.2005, 11:46
ЧТО ты собираешься делать с базой в ДВА запроса?
Устанавливать ID - первый шаг
На основе значения ID добавлять иные данные в эту строку - второй шаг
Спасибо, nagash, до этого места в мануле я еще не дочитал =))
сказали же, используй auto_increment.
id будет назначаться автоматически, можно отправлять даже пустые значения
Whatsername
04.08.2005, 20:10
спасиб, канеш, а на какой пост ты отвечаешь? =)
на оба )
всё делается в один шаг)
Whatsername
05.08.2005, 12:19
mysql_insert_id - это оч клева, несомненно, но одним шагом не обойдешься.
Вот таблица:
ID | name | pic
ID - autoincrement
name - произвольная строка
pic - путь к аплойдиной картинке, вроде /pic/12.gif. Видишь название файла? 12. А все потому, что я именую аплойденные файлы в соответствии с их ID в БД.
Так вот и получается, (шаг первый) вставляешь пустые строки в name и pic ради того, чтобы узнать последний ID, (шаг второй) реплейсишь эту строку с нужными данными (и именем файла соответственно).
=)
нет... не правильно мыслишь...
ты первым шагом ВСЁ вставляешь...
и потом узнаёшь mysql_insert_id()
всё...
забираешь себе ИДшник для твоих дальнейших нужд...
а зачем тебе в поле "пик" хранить путь до картинки?
ты же знаешь принцип по которому он образовывается "/pic/{id}.gif"
всё... ИД у тебя есть... значит ты в любой момент можешь собрать этот путь... зачем его в базе хранить-то?
Whatsername
05.08.2005, 12:42
забираешь себе ИДшник для твоих дальнейших нужд...
Оппа-на, у меня чакры открываются =))
Сперва толкаем все в базу, а потом, на основе ID, переименовываем файл и аплодим его сервер. От столбца pic можно вообще избавиться! Я правильно мыслю?
UPD: написал, не увидев твоего последнего поста =)) Спасибо большущее!
Sloth.RU
05.08.2005, 13:02
$q="select max(`имя переменной`) from `название таблицы` where `bla-bla`";//запрос с БД
...//выполнение запроса и присваивание переменной $q вывода от запроса
$q++;
==
я так понимаю трабла была в запросе теущего максимального значения в бд
Sloth.RU
пожалуйста не пиши бред...
вопрос уже решён по самому правильному пути, то, что предлагаешь ты, это бред...
представь себе ситуацию, когда одновременно два человека зашли на сайт и одновременно для обоих достался ИД твоим способом...
что в итоге получится?
при случае с mysql_insert_id автоинкремент поле уникально для сессии... и такого никогда не случиться.
на будущее, прежде чем что-то постить, прочитай целиком тред, может быть уже всё удачно разрешилось и ненадо будет пытаться показать свои "знания"
Whatsername
05.08.2005, 13:11
это тоже может быть решением, спасиб. но неприятность в том, что определение Id основывается на предположении, а не на фактах.
пуристически подход нагаша более надежен: поменять местами занесение данных в бд и прочие операции на основе последнего Id.
Sloth.RU
05.08.2005, 14:44
Sloth.RU
пожалуйста не пиши бред...
вопрос уже решён по самому правильному пути, то, что предлагаешь ты, это бред...
представь себе ситуацию, когда одновременно два человека зашли на сайт и одновременно для обоих достался ИД твоим способом...
что в итоге получится?
при случае с mysql_insert_id автоинкремент поле уникально для сессии... и такого никогда не случиться.
на будущее, прежде чем что-то постить, прочитай целиком тред, может быть уже всё удачно разрешилось и ненадо будет пытаться показать свои "знания"
рдновременно сточностью до милисекунды??? скока же у тебя человек заходит тада, если вероятность того, что несколько с точностью до милисекунды воспользуются этим скприптом...??
=)
что за бред?
не поверишь! два человека!!!
но они вот решили в один и тот же момент им воспользоваться...
такая возможность имееется... значит такой способ неприемлем...
рдновременно сточностью до милисекунды??? скока же у тебя человек заходит тада, если вероятность того, что несколько с точностью до милисекунды воспользуются этим скприптом...??
Не нужно демагогии, please. Если есть нормальное, ВСЕГДА корректно работающее решение, то незачем изобретать другое, работающее криво.
Sloth.RU
05.08.2005, 15:11
Не нужно демагогии, please. Если есть нормальное, ВСЕГДА корректно работающее решение, то незачем изобретать другое, работающее криво.
а я и не спорю что то лучше... потому что короче... я ПРОСТО предложил свое...
==
а вот насчет "а если сразу два человека..." - вот это демагогия... вероятность того, что что-то выполнится не так рана практически нулю... потому что выполнение части скрипта с выборко и помещением занимает сотые доли секунды...
человеку помогли успешно... ушли в пустой и непонятный флейм...
Работает на vBulletin ® версия 3.7.3. Copyright ©2000-2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Copyright © 1999-2008 Flasher.ru. All rights reserved.