[mysql] как автоматом менять записи на основе других записей?
Хммм. Ботай триггера и хранимые процедуры. Вроде в последних версиях была поддержка.
переставлять пока лень, попробую чего-нибудь еще придумать. пасибо
Опиши задачу. Странная постановка, если честно.
![](/images/graemlins/smile.gif)
например, майский номер журнала — 116-117. в базе майский хранится под номером 117.
надо чтоб если пользователь захочет увидеть номер 116, ему показали номер 117.
способов то много, мне просто показалось, что проще всего устроить такую "подмену" прямо в базе.
опять же, мне-то проще и логичней сделать обработчик ошибки, тем более, что номера 116 как бы не существует.
но начальство настаивает на том, что 116 номер все-таки есть в природе и его как бы тоже можно посмотреть.
такие дела
![](/images/graemlins/smile.gif)
опять же, мне-то проще и логичней сделать обработчик ошибки, тем более, что номера 116 как бы не существует.Тот способ, который ты хочешь реализовать, откровенно крив. Сделай иначе, через ссылки, когда есть внутренние идентификаторы у журналов, есть таблица обычных номеров, в которой и прописано соответствие между номером журнала и ссылкой на данные номера журнала. Это типовое решение, и imho, единственно верное в данной ситуации.
но начальство настаивает на том, что 116 номер все-таки есть в природе и его как бы тоже можно посмотреть.
116 | 117
110 | 111
109 | 111
...
и буду проверять номер из GET сначала на наличие в ней, а уж потом переходить от нее к главной.
ну я написал ниже. так?)
да. Странно, что ты не написал это раньше...
![](/images/graemlins/smile.gif)
вот узнал про хранимые процедуры. такие дела.
SELECT MIN (столбец_номер_журнала) FROM таблица_журналов WHERE столбец_номер_журнала >= значение_запрашиваемое_пользователем
![](/images/graemlins/smile.gif)
надо будет наверное так и сделать. спасибо.
а в предыдущем способе — один раз маленькую и один раз большую.
впрочем, база не такая уж и большая, зато идея забавная и сразу в голову не пришла.
![](/images/graemlins/smile.gif)
![](/images/graemlins/smile.gif)
Почему это два? Ну сохрани это значение куда нибудь и из него дергай.
если его "куда-то сохранить", то вся гениальность твоего способа пропадает.
![](/images/graemlins/smile.gif)
к тому же если добавить новый журнал с пропуском номера, то придется добавлять правило.
а это имхо не очень удобно.
![](/images/graemlins/smile.gif)
Во-вторых, если ты считаешь, что постоянный лишний перезапрос базы (при каждом реквесте! ктока бишь у тебя там посетителей-то в день?) - это лучше, чем раз в полгода дописать одно правило в htaccess - то... думаю, ты ошибаешься
![](/images/graemlins/smile.gif)
В конце концов - сделай веб-админку htaccess
![](/images/graemlins/smile.gif)
![](/images/graemlins/smile.gif)
к тому же тебе когда-то придется это сделать в угоду продвижениюкстати, есть ли какой-нибудь качественный пример, чтобы я сразу понял, что мне здесь и сейчас нужен mod_rewrite?
![](/images/graemlins/smile.gif)
ну почитай правила индексации на рамблере, к примеру. У них в свое время был дивный отрывок на тему индексации динамических урлов.
![](/images/graemlins/smile.gif)
Оставить комментарий
slonishka
можно ли как-то для строки: "1 | blabla | blabla" сделать строку "2 | blabla | blabla" в той же таблице такую, что при любом изменении первой строки (кроме изменения записи в первом столбце вторая строка изменялась бы аналогичным образом?