Divindo a linha em vários campos através de um delimitador. (SPLIT)

(cleydson) #1

Em minha aplicação utilizo uma triger para gerar uma registros em uma tabela de auditoria do sistema. Por exemplo, se alguém grava um registro, a triger gera uma linha na minha tabela de auditoria com os dados deste registro. Porém é gravada da seguinte forma.

ID=1;Nome=Fulano de tal;Rua=2 de julho;Numero=235;Bairro=Centro

Utilizo o " ; " como delimitador. Agora não sei como separar as informações para exibir em minha consulta cada informação em um campo.

(Rodrigo Lins) #2

Boa Tarde,

Nesta situação, você terá que utilizar funções do PHP para “reverter” o tratamento feito por você. A função explode é uma das quais pode lhe ajudar bastante.
Ex:

$cliente = “ID=1;Nome=Fulano de tal;Rua=2 de julho;Numero=235;Bairro=Centro”;

$valor_separado = explode(";", $cliente);

echo $valor_separado[0]; // ID=1
echo $valor_separado[1]; // Nome=Fulano

Depois de pegar estas informações separadas, será necessário atribuir a campos para serem visualizados.

Espero ter ajudado.

Rodrigo Lins.

(cleydson) #3

Ah, legal! Só mais um dúvida, e tem como eu gerar os campos dinamicamentes? Pq senão eu teria que criar uma consulta de auditoria para cada aplicação existente no meu projeto, já que cada aplicação possui número de campos diferentes. A minha ideia é ter uma única consulta exibindo essas informações, não importanto o número de campos. Não precisaria nem ser criação de campos dinâmicos, poderia ser apenas um campo multi-linha que suportasse esses dados dividos desta forma. Eu já tentei usar um campo multi-linha na consulta, jogando as informações por um WHILE mas só aparece o último item.