Доброго дня. Вопрос наверно глупый. Пользуюсь PHP MyAdmin ver. 4.1.8. в нём имеется таблица "Test" с полями "test_id" и "name". Поле "test_id" создано как tinyint(6), UNSIGNED с автоинкрементом. То есть сейчас автоматом проставляются значения 1,2,3,4... и т.д. Мне же надо привести его к значению 000001, 000002, 000003, 000004... и т.д., и уметь задавать начальное значение (чтобы первая запись создавалась не 1 а скажем 000978). 1) Возможно ли провести такую операцию настройкой поля "test_id" средствами PHP MyAdmin? 2) Если 1) не возможен: Возможно ли автоматическая генерация значения в поле "name" по схеме ("test_id=1""name=000978", "test_id=2""name=000979", "test_id=3""name=000979") опять же средствами PHP MyAdmin?
1) phpMyAdmin - не БД. Это просто пхпшный клиент. 2) Не трогайте ключи. Пусть они генерятся как есть. 3) Заведите отдельную колонку под значения, которые вам нужны, либо, что лучше, приводите к желаемому виду руками в пыхе айдишники. 4) Нахрена, нахрена, нахрена оно надо? Чтобы выглядело солиднее?
Ну в первую очередь для удобства, и понимания как всё работает, ведь там есть поля "Преобразование" и "Параметры преобразований". Я лично не понимаю зачем писать функцию если можно настроить PHP MyAdmin ...... если конечно можно.
Код (Text): CREATE TABLE `pun142_categories` ( `id` int(10) unsigned NOT NULL AUTO_INCREMENT, ... PRIMARY KEY (`id`) ) AUTO_INCREMENT=23456; а превращать 929 в "000929" лучше в Представлении (т.е. в PHP). так проще: завтра тебе приспичит "-=#$(929)$#=-' и ты с легкостью решишь это.
Я правильно понимаю что это SQL запрос? Если так то у меня что то не работает. Ругается: #1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '.. PRIMARY KEY (`id`) ) AUTO_INCREMENT=23456' at line 3 я правильно понял? Код (Text): CREATE TABLE `название таблицы` ( `название поля таблицы` int(10) unsigned NOT NULL AUTO_INCREMENT, ...что сюда подставить? PRIMARY KEY (`название поля таблицы`) ) AUTO_INCREMENT=число с которого должен начинатся отсчёт;
Понял правильно. Многоточие - это другие поля таблицы, какие тебе хочется. У artoodetoo с телепатией туго, вот он и не написал там те строки, которые ты хотел бы там видеть. Бывает такое со всеми порой.
Не нужно ничего заменять. Тебе же сказали - храни правильно. А заменяй уже при выводе на страницу. Заменяй то, что видит пользователь, а не то, что хранится на самом деле.
Это Вам спецам ни хрена не нужно )) А мне ой как нужно. Постараюсь объяснить у меня есть БД с номерами (id) 637, 638, ........ 978 А автоинкримент в ней начинался с 1. То есть есть более 300 записей со значениями 637-978 а новые пошли с 1. Конечно у вас таких косяков наверно не бывает. Но вот мне чтобы всё заработало надо только заменить текущий автоинкримент на 979. Эти цифры выводят номера накладных в виде 000979 и уж хрен с ними с нулями я их как то присобачу на выходе. Но вот цифры должны идти по порядку. Конечно я могу присобачить что то типа IF "test_id"< 637 echo ("test_id"+978) тогда 1 будет равно 979 но эта конструкция не будет работать как только новых записей наберётся более 636.
Пользователь видит не число из БД, а строку, сформированную твоим скриптом. Формируй ее как твоей душе угодно. В пхп, благо, тонна строковых функций. Вплоть до того, что конверти число в строку, считай его длину, если она меньше нужного количества, нарасти слева нужное количество нулей. Простой конкатенацией, через точку. Чтобы циклы ради приращивания ноликов не плодить, можешь поставить 5-вариантный свитч. В нем проверяй, сколько не хватает нулей и наращивай, согласно требуемому количеству. У тебя же все равно только 6-значные числа. Один знак всегда занят как минимум. Значит 5 знаков вариативны. 6 вариант в свитче - дефолтный, если не нужно ничего наращивать. Вуаля. Не смешивай в своем понимании воедино внешнее представление данных и внутреннее.
Ну не дебил я, понимаю что Вы советуете и что советы ваши правильные. Но меня интерисовала работа PHP MyAdmin. В частности На этот вопрос мне ответил artoodetoo, он объяснил как задать автоинкримент при создании новой таблицы и порекомендовал не заморачиватся с нулями. Потом я задал вопрос как поменять текущее значение автоинкримента в готовой таблице. КОРОЧЕ РЕШЕНИЕ НАЙДЕННО! для этого не надо даже SQL запросов, достаточно зайти в PHP MyAdmin в вкладку "вставить" и задать в поле "test_id" нужное значение (в моём случае 978) после этого нажать "ок" . Важно именно "вставить" а не "изменить". Изначально я именно менял.