2 de nov. de 2009

Acentuação para PHP/Banco de Dados

Olá,bom dia a todos!

Bom, esse é um problema comum para quem está usando o método INSERT do mysql através de algum campo textarea no HTML; quando tentamos inserir algo com acentos no banco de dados tudo certo, porém quando vamos ler os acentos fica tudo errado!

Se esse for o seu caso, calma, a solução é fácil, vamos lá:

1º passo - O HTML
Deixe o "head" da sua página como abaixo:
<head>

<meta http-equiv="content-type" content="text/html; charset=ISO-8859-1">

</head>

2º passo - O SELECT
Quando for capturar os dados com ou sem acentos do banco de dados use o seguinte:
htmlspecialchars_decode(htmlentities($variavel_com_o_select));

Complicado não?
Bom, qualquer coisa é só gritar!!!

7 curiosos opinantes:

Anônimo disse...

Perdi muito tempo procurando. Finalmente achei!!

Extremamente Fácil.


Valeu, Fábio.

Jorge Araujo

Lixo Humano disse...

kd o feed do blog ?

Renato França disse...

Interessante Fábio, mas ao invés de usar o ISO-8859-1 é melhor usar o UTF-8 porque é universal e é o mais utilizado na web.

Quanto ao problema de acentuação no banco de dados, não vejo porque essa preocupação, o importante é como os dados são exibidos para o usuário e não diretamente no banco.

Fábio Fernandes de Lima disse...

Esse post foi para resolver um problema de uma lista que participo foi até o primeiro comentário o Jorge, realmente o modo de codificação melhor para se usar é o UTF-8

Anônimo disse...

Não costumo comentar em blogs, mas você foi de grande ajuda pra mim.

Explicação simples e fácil. Parabéns.

Unknown disse...

Nusss cara procurei isso um tempão, valeu mesmo

Anônimo disse...

Poderia me ajudar nesse caso:


--
-- Estrutura da tabela `formulario`
--

CREATE TABLE IF NOT EXISTS `formulario` (
`id` int(11) NOT NULL default '0',
`online` char(1) NOT NULL default '',
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;

--
-- Extraindo dados da tabela `formulario`
--

INSERT INTO `formulario` (`id`, `online`) VALUES
(1, '1');

-- --------------------------------------------------------

--
-- Estrutura da tabela `pedidos`
--

CREATE TABLE IF NOT EXISTS `pedidos` (
`id_pedido` int(5) NOT NULL auto_increment,
`nome` varchar(50) NOT NULL default '',
`cidade` varchar(50) NOT NULL default '',
`tipo` varchar(10) NOT NULL default '',
`pedido` longtext NOT NULL,
`data` varchar(10) NOT NULL default '',
`hora` varchar(10) NOT NULL default '',
PRIMARY KEY (`id_pedido`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=15 ;

--
-- Extraindo dados da tabela `pedidos`
--

INSERT INTO `pedidos` (`id_pedido`, `nome`, `cidade`, `tipo`, `pedido`, `data`, `hora`) VALUES
(12, 'Luri', 'Osasco/SP', 'Recado', 'meuu, beijooo. te amo amor! manda uma musica ai pra mim bonita em! ;)', '19/10/2010', '12:16'),
(13, 'Matheus', 'Cidade - UF', 'Música', '', '19/10/2010', '13:25');

-- --------------------------------------------------------

--
-- Estrutura da tabela `usuarios`
--

CREATE TABLE IF NOT EXISTS `usuarios` (
`id` int(11) NOT NULL auto_increment,
`nome` varchar(50) NOT NULL default '',
`nivel` varchar(50) NOT NULL default '',
`login` varchar(50) NOT NULL default '',
`senha` varchar(50) NOT NULL default '',
`email` varchar(50) NOT NULL default '',
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=3 ;

--
-- Extraindo dados da tabela `usuarios`
--

INSERT INTO `usuarios` (`id`, `nome`, `nivel`, `login`, `senha`, `email`) VALUES
(1, 'Administrador', '1', 'admin', 'admin', 'admin@admin.com'),
(2, 'Locutor', '2', 'locutor', 'locutor', 'locutor@locutor.com');

Postar um comentário

 
Design by Free WordPress Themes | Bloggerized by Lasantha - Premium Blogger Themes | JCPenney Coupons