Задавайте вопросы, мы ответим
Вы не зашли.
Страниц: 1
В интернете во многих местах можно найти запрос для упорядоченной нумерации таблицы по указанному полю:
update tablica set pole=(select @a:= @a + 1 from (select @a:= 0) s) order by pole;
Поле таблицы должно быть пронумеровано так:
pole
1
2
3
4
В тексте запроса ошибки нет. Запрос мной проверен. 3 года, как запущен из php на одном из сайтов. Там всё ОК.
Но на сей раз (на новом сайте) в аналогичной ситуации запрос нумерует по-другому:
pole
0
1
2
3
4
(хотя запрос типа UPDATE , однако отчего-то в таблице добавляется новая запись, в этой записи pole=0, и нумерация стартует с 0, а не с 1)
То есть, если запрос повторить, то таблица станет такой:
pole
0
1
2
3
4
5
??? Странно.
Этот же запрос, запускаемый на этом сайте из NAVICAT, ну или из phpmyadmin работает корректно.
Может, кто-нибудь знает в чём дело и как поправить?
Отредактированно igrok (28.01.2012 09:26:28)
Неактивен
Сделайте проверочный скрипт на тестовую таблицу, который включает в себя только один этот запрос.
Неактивен
Мне стыдно признаться, но я не знаю как сделать "проверочный скрипт на тестовую таблицу".
Я даже сделал поиск по форуму по ключевым словам "проверочный скрипт", но ничего не нашёл
Объясните, пожалуйста, чайнику куда зайти, на что нажать...
(в моих руках инструменты: Phpmyadmin (от хостера), Navicat for MySQL и доступ со стороны сайта на php)
Неактивен
Ваш php скрипт на новом сайте, который имеет проблему с вышеприведенным запросом, кроме этого запроса содержит ещё кучу других. И добавляет лишнюю запись с нулем какой-то другой запрос.
Чтобы вы могли наглядно убедиться, что дело не в php, я предложил вам сделать php скрипт, который бы включал в себя только одну команду (приведенный вами update). Тестовая таблица - это чтобы не нарушать согласованную работу базы, создать отдельную таблицу над которой и проводить опыты.
Неактивен
Спасибо, поискал собственные ошибки. Всё нашёл
Неактивен
Страниц: 1