![]() |
пополнение бд
я делаю каталог изданий. в числе прочих данных, необходимо хранить картинку обложки. я решил просто аплодить картинку на сервер и переименовывать файл согласно Id записи.
трабла в том, что Id не известен в момент добавления записи в таблицу. можно либо предположить его значение, либо добавлять записи в базу за две ходки. посоветуйте как лучше поступить. |
Цитата:
|
http://php.net/mysql_insert_id + автоинкремент поле
|
Цитата:
На основе значения ID добавлять иные данные в эту строку - второй шаг Спасибо, nagash, до этого места в мануле я еще не дочитал =)) |
сказали же, используй auto_increment.
id будет назначаться автоматически, можно отправлять даже пустые значения |
спасиб, канеш, а на какой пост ты отвечаешь? =)
|
на оба )
всё делается в один шаг) |
mysql_insert_id - это оч клева, несомненно, но одним шагом не обойдешься.
Вот таблица: ID | name | pic ID - autoincrement name - произвольная строка pic - путь к аплойдиной картинке, вроде /pic/12.gif. Видишь название файла? 12. А все потому, что я именую аплойденные файлы в соответствии с их ID в БД. Так вот и получается, (шаг первый) вставляешь пустые строки в name и pic ради того, чтобы узнать последний ID, (шаг второй) реплейсишь эту строку с нужными данными (и именем файла соответственно). |
=)
нет... не правильно мыслишь... ты первым шагом ВСЁ вставляешь... и потом узнаёшь mysql_insert_id() всё... забираешь себе ИДшник для твоих дальнейших нужд... |
а зачем тебе в поле "пик" хранить путь до картинки?
ты же знаешь принцип по которому он образовывается "/pic/{id}.gif" всё... ИД у тебя есть... значит ты в любой момент можешь собрать этот путь... зачем его в базе хранить-то? |
Цитата:
Сперва толкаем все в базу, а потом, на основе ID, переименовываем файл и аплодим его сервер. От столбца pic можно вообще избавиться! Я правильно мыслю? UPD: написал, не увидев твоего последнего поста =)) Спасибо большущее! |
$q="select max(`имя переменной`) from `название таблицы` where `bla-bla`";//запрос с БД
...//выполнение запроса и присваивание переменной $q вывода от запроса $q++; == я так понимаю трабла была в запросе теущего максимального значения в бд |
Sloth.RU
пожалуйста не пиши бред... вопрос уже решён по самому правильному пути, то, что предлагаешь ты, это бред... представь себе ситуацию, когда одновременно два человека зашли на сайт и одновременно для обоих достался ИД твоим способом... что в итоге получится? при случае с mysql_insert_id автоинкремент поле уникально для сессии... и такого никогда не случиться. на будущее, прежде чем что-то постить, прочитай целиком тред, может быть уже всё удачно разрешилось и ненадо будет пытаться показать свои "знания" |
это тоже может быть решением, спасиб. но неприятность в том, что определение Id основывается на предположении, а не на фактах.
пуристически подход нагаша более надежен: поменять местами занесение данных в бд и прочие операции на основе последнего Id. |
Цитата:
|
=)
что за бред? не поверишь! два человека!!! но они вот решили в один и тот же момент им воспользоваться... такая возможность имееется... значит такой способ неприемлем... |
Цитата:
|
Цитата:
== а вот насчет "а если сразу два человека..." - вот это демагогия... вероятность того, что что-то выполнится не так рана практически нулю... потому что выполнение части скрипта с выборко и помещением занимает сотые доли секунды... |
человеку помогли успешно... ушли в пустой и непонятный флейм...
|
| Часовой пояс GMT +4, время: 16:57. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.