Создание цикла с php и mySQL


мне Нужна помощь для создания функции PHP.

  • у Меня есть таблица в базе MySQL - , где в столбце, я хочу поменять нумерацию от 1 до 4 в записи.

  • Для этого у меня есть форма, где клиент заполняет и автоматически задает автоматическое приращение.

  • а именно:

Пользователь был автоматически задает идентификатор 001
Пользователь B зарегистрировал автоматически задает id 002
Пользователь C зарегистрировал автоматически задает идентификатор 003
Пользователь D зарегистрировал автоматически определяет id 004

Пользователь зарегистрировался, автоматически возвращается установить id 001

И так далее.

может Кто-нибудь помочь мне создать это?

Author: RXSD, 2019-02-12

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.

Я Надеюсь, что помог.

 1
Author: Hiago Souza, 2019-02-12 13:40:13