Sign in to follow this  
caiognr

Problema Com Texto Inserido Em Banco De Dados Mysql

Recommended Posts

Boa noite a todos.

Estou programando um site e empaquei em algo aparentemente muito simples, nunca tive tal problema, vamos a ele. Eu fiz um script que insere dados de um form em 1 tabela no banco de dados, dentre os campos há um que o usuário do site escreverá o texto de uma matéria, sendo assim eu coloquei um text área com quebra de linha:

duvida_figura.jpg

porém quando eu vou exibir os dados, esse texto é exibido em uma única linha.

Creio que o problema esteja na inserção dos dados mas me parece estar correto o código:

$titulo_col_1 = $_POST['titulo_col_1'];
        $col_1 = $_POST['col_1'];
        $cod_colunista = $_POST['cod_colunista'];
        $data = date("y.m.d");
            
            $insere = "INSERT INTO colunas ( cod_colunista , titulo , coluna , data ) VALUES ( '$cod_colunista' , '$titulo_col_1', '$col_1' , '$data' )";
            mysql_select_db($database_conexao, $conexao);
  $resultado = mysql_query($insere, $conexao) or die(mysql_error());
            if($resultado = TRUE){
                header("Location: sucesso.html");
            
        }

Preciso muito da ajuda de vocês e agradeço desde já!

Share this post


Link to post
Share on other sites

Na hora de exibir os dados do campo TEXT, utilize a função nl2br().

* Se cod_colunista for um campo numérico, não coloque a variável $cod_colunista entre aspas.

[]'s

Share this post


Link to post
Share on other sites

Obrigado pela força Beraldo...vou testar!

--

Beraldo...estava analisando algum material a respeito dessa função...mas eu já programei um sitema parecido, o qual tinha um campo de inserção de textoe na hora de exibir eu não usava nenhuma função....para mim não faz sentido...

Desde já gradeço muito sua ajuda!

Share this post


Link to post
Share on other sites

Você fez o teste utilizando espaços e quebras de linha, como eu disse?

Na figura que você postou, não há espaços nem quebras de linha, por isso a função nl2br() não interpreta as linhas.

Tente gravar um texto assim:

Aqui a primeira linha. Veja que há espaços.

Há quebras de linha.

Muitas quebras de linha.

Coitadinhas das linhas; estão todas quebradas.

Tente apresentar esse texto na tela usando nl2br(). Você verá que as quebras de linhas serão interpretadas.

[]'s

Share this post


Link to post
Share on other sites

na hora de inserir no banco de dados, você tem que substituir os "enters" do teclado por <br> que será reconhecido pelo navegador como uma quebra

$campo = $_POST['campo'];
$campo = str_replace(chr(13), "<br>", "$campo");

falei besteira?

se falei, me desculpem, hehe!

Share this post


Link to post
Share on other sites

na hora de inserir no banco de dados, você tem que substituir os "enters" do teclado por <br> que será reconhecido pelo navegador como uma quebra

$campo = $_POST['campo'];
$campo = str_replace(chr(13), "<br>", "$campo");

falei besteira?

se falei, me desculpem, hehe!

Não falou besteira, mas há uma forma mais fácil de se fazer isso: usando a função nl2br().

Eu prefiro salvar no banco os textos com as quebras de linha (enteres) e usar a função nl2br() na hora de exibi-los na tela, juntamente com a função htmlentities(), para transformar os caracteres especiais em HTML.

Mas você pode fazer isso tanto na hora de inserir, quanto na hora de exibir. É questão de preferência. :)

[]'s

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this