Создание цикла с php и mySQL
мне Нужна помощь для создания функции PHP.
у Меня есть таблица в базе MySQL - , где в столбце, я хочу поменять нумерацию от 1 до 4 в записи.
Для этого у меня есть форма, где клиент заполняет и автоматически задает автоматическое приращение.
а именно:
Пользователь был автоматически задает идентификатор 001
Пользователь B зарегистрировал автоматически задает id 002
Пользователь C зарегистрировал автоматически задает идентификатор 003
Пользователь D зарегистрировал автоматически определяет id 004
Пользователь зарегистрировался, автоматически возвращается установить id 001
И так далее.
может Кто-нибудь помочь мне создать это?
1 answers
Вы можете работать с Functions MySQL, чтобы помочь тебе, в момент insert просто вы вызываете функцию, запланировано, что она уже будет вам сообщить, что следующий код, который вы можете использовать. Я помню, что если id является первичным ключом вашей целью не будет власть, будут обслуживаться.
ПРИМЕЧАНИЕ: Рекомендую вам создать функцию только в момент установки.
Оставляю ниже приведен пример таблицы, созданной для предоставления функциональность.
-- Entidade criada para testes
CREATE TABLE teste_incremento (
id int primary key auto_increment,
id_secundario int,
nome varchar(200)
);
-- Crio uma função para retornar o próximo id secundário
CREATE FUNCTION RecuperaProximoIdSecundario ()
RETURNS INT RETURN (
CASE
WHEN (SELECT COUNT(1) FROM teste_incremento) = 0 THEN 1
WHEN (SELECT id_secundario FROM teste_incremento ORDER BY id DESC LIMIT 1) = 4 THEN 1
ELSE (SELECT id_secundario FROM teste_incremento ORDER BY id DESC LIMIT 1) + 1
END
);
Ниже я оставляю сценарий для тестирования, определение функции должно быть сделано только при создании базы данных.
-- Testes para fazer a inserção
INSERT INTO teste_incremento (id_secundario, nome)
VALUES (RecuperaProximoIdSecundario(), "Hiago");
INSERT INTO teste_incremento (id_secundario, nome)
VALUES ( RecuperaProximoIdSecundario(), "Fernando");
INSERT INTO teste_incremento (id_secundario, nome)
VALUES ( RecuperaProximoIdSecundario(), "João");
INSERT INTO teste_incremento (id_secundario, nome)
VALUES ( RecuperaProximoIdSecundario(), "Maria");
INSERT INTO teste_incremento (id_secundario, nome)
VALUES ( RecuperaProximoIdSecundario(), "Reinaldo");
INSERT INTO teste_incremento (id_secundario, nome)
VALUES ( RecuperaProximoIdSecundario(), "Marcos");
INSERT INTO teste_incremento (id_secundario, nome)
VALUES ( RecuperaProximoIdSecundario(), "Joana");
-- Select para ver o resultado para fazer a inserção
SELECT * FROM teste_incremento;
Вы можете видеть, приведенный выше пример работает в DBFiddler, что я disponibilizei.
Я Надеюсь, что помог.