Newsmade
PHP, no auge
Voltar

Usando array em tabelas mysql da forma correta

Quantas vezes você não se perguntou como gravar um array em uma tabela mysql, como por exemplo, em uma lista de pedidos como gravar os pedidos em apenas uma linha a se desse para gravar um array.
Espere um pouco eu posso transformar em uma string e gravar depois quando faço a leitura é só transformar em array novamente, o pensamento é esse mesmo porem muitos usam explode() e implode() para isso, como diriam você não está fazendo isso direito.
A forma errada seria:
$meuArray = array (‘limão’, ‘abacate’, ‘pera’) ;

$agoraString = implode(‘*’, $meuArray) // no caso estamos usando * para separar os valores
echo $agoraString; // retornaria “limão*abacate*pêra”

Na hora de usar ficaria:

$devoltaArray = explode(‘*’, $meuArray) // no caso estamos usando * para separar os valores

Onde:

$devoltaArray = array (‘limão’, ‘abacate’, ‘pera’) ;

Ok funcionou, mas e ai? Só que o php já está preparado para essa situação, pois digamos que nos valores um deles tenha ‘*’ já é o suficiente para estragar tudo, certo, mas posso utilizar uma sequência de caracteres que nunca vão aparecer juntos.
Como sempre digo para que simplificar se agente pode complicar rsrsrsrs

Nem queria imaginar como ficaria sua tabela naquela formar fora que hora você utiliza “*” outra usa “;” outra “:” até uns “£§” eu já vi, que tal organizar tudo isso e fazer corretamente!

É bem mais rápido que ler todo esse texto que escrevi, o php disponibiliza as funções serialize e unserialize exatamente para isso.

Como usar? Simples!
Quando for gravar um array use:
$gravandoArray = serialize($meuArray);

E para ler:
$meuArray = unserialize ($arrayEmMysql);


Simples não é, até aproxima.
Postado 08/09/2010 23:13 por Jeison Frasson

© 2002-2012 Newsmade - Quase todos os direitos reservados.