Ajuda com Input e Retorno de Consulta Mysql
22/07/2024
0
O formulário, input no banco, pesquisa tudo certo, só empaquei numa coisa
A notícia tem parágrafos, quebra de linha entre parágrafos etc. No banco está gravando direitinho com as quebra na consulta volta certo, só que quando monto a pagina de retorno vem como se fosse só uma linha.
Como fazer ele respeitar como foi cadastrado no banco, com parágrafos, quebra de linhas etc?
Formulário de Imput:
<label class="col-sm-12 control-label"><h4>Conteúdo da Notícia</h4></label>
<div class="col-sm-8">
<textarea class="form-control" rows="5" cols="4" id="conteudo" name="conteudo" placeholder="Digite o conteúdo da nova enquete"></textarea>
</div>
Consulta:
?php
$id=$_GET['id_noticia'];
require ("conexao.php");
$bd = mysql_select_db("db_postagens");
$sql = "SELECT * FROM tb_noticia where cd_noticia = '$id'";
$resultado = mysql_query($sql);
while($linha = mysql_fetch_array($resultado))
{
?>
Pegando o Resultado:
<section id="news" style="background-color: white; padding: 20px;">
<div class="row featurette">
<div class="col-md-7" id='<?php echo $linha['nm_noticia']?>'>
<h1 class="featurette-heading"> <?php echo $linha['nm_noticia']?></h1>
<hr>
<p class="lead"><p Align="justify"><?php echo $linha['ds_noticia'];?></p>
</div>
<div class="col-md-5 col-sm-12">
<?php echo "<img class='featurette-image img-fluid mx-auto' style='max-height:300px; min-width: 90%;' src='admNoticias/uploads/".$linha['nm_imagem_noticia']."'>";?>
</div>
</div>
Montando o retorno:
<section id="news" style="background-color: white; padding: 20px;">
<div class="row featurette">
<div class="col-md-7" id='<?php echo $linha['nm_noticia']?>'>
<h1 class="featurette-heading"> <?php echo $linha['nm_noticia']?></h1>
<hr>
<p class="lead"><p Align="justify"><?php echo $linha['ds_noticia'];?></p>
</div>
<div class="col-md-5 col-sm-12">
<?php echo "<img class='featurette-image img-fluid mx-auto' style='max-height:300px; min-width: 90%;' src='admNoticias/uploads/".$linha['nm_imagem_noticia']."'>";?>
</div>
</div>
</section>
Roberto
Posts
22/07/2024
Arthur Heinrich
O texto:
"Linha 1
Linha2"
Aparece como "Linha 1 Linha 2"
Para corrigir, utilize "Linha 1<br>Linha 2".
Uma forma de fazer isso é pegando o texto na sua query:
SELECT * FROM tb_noticia where cd_noticia = '$id'
E fazer a substituição:
SELECT replace(mensagem, chr(10), '<br>') mensagem FROM tb_noticia where cd_noticia = '$id'
Dependendo de como a quebra foi introduzida, é possível que utilize a combinação #13+#10 (padrão Windows) ou apenas #10 (padrão Linux).
Você pode utilizar dois comandos replace. Um para substituir o padrão Windows para Linux e o final para introduzir a query:
SELECT replace(replace(mensagem,chr(13)+chr(10),chr(10)), chr(10), '<br>') mensagem FROM tb_noticia where cd_noticia = '$id'
23/07/2024
Roberto
O texto:
"Linha 1
Linha2"
Aparece como "Linha 1 Linha 2"
Para corrigir, utilize "Linha 1<br>Linha 2".
Uma forma de fazer isso é pegando o texto na sua query:
SELECT * FROM tb_noticia where cd_noticia = '$id'
E fazer a substituição:
SELECT replace(mensagem, chr(10), '<br>') mensagem FROM tb_noticia where cd_noticia = '$id'
Dependendo de como a quebra foi introduzida, é possível que utilize a combinação #13+#10 (padrão Windows) ou apenas #10 (padrão Linux).
Você pode utilizar dois comandos replace. Um para substituir o padrão Windows para Linux e o final para introduzir a query:
SELECT replace(replace(mensagem,chr(13)+chr(10),chr(10)), chr(10), '<br>') mensagem FROM tb_noticia where cd_noticia = '$id'
Obrigado pela ajuda, mas não funcionou, ela retorna com erro
SELECT REPLACE( ds_noticia, chr( 13 ) + chr( 10 ) , '<br>' ) mensagem FROM tb_noticia WHERE cd_noticia = '10' LIMIT 0 , 30 Mensagens do MySQL : Documentação #1305 - FUNCTION db_postagens.chr does not exist
23/07/2024
Roberto
O texto:
"Linha 1
Linha2"
Aparece como "Linha 1 Linha 2"
Para corrigir, utilize "Linha 1<br>Linha 2".
Uma forma de fazer isso é pegando o texto na sua query:
SELECT * FROM tb_noticia where cd_noticia = '$id'
E fazer a substituição:
SELECT replace(mensagem, chr(10), '<br>') mensagem FROM tb_noticia where cd_noticia = '$id'
Dependendo de como a quebra foi introduzida, é possível que utilize a combinação #13+#10 (padrão Windows) ou apenas #10 (padrão Linux).
Você pode utilizar dois comandos replace. Um para substituir o padrão Windows para Linux e o final para introduzir a query:
SELECT replace(replace(mensagem,chr(13)+chr(10),chr(10)), chr(10), '<br>') mensagem FROM tb_noticia where cd_noticia = '$id'
Obrigado pela ajuda, mas não funcionou, ela retorna com erro
SELECT REPLACE( ds_noticia, chr( 13 ) + chr( 10 ) , '<br>' ) mensagem FROM tb_noticia WHERE cd_noticia = '10' LIMIT 0 , 30 Mensagens do MySQL : Documentação #1305 - FUNCTION db_postagens.chr does not exist
Consegui resolver usando nl2br na montagem da tela
<?php echo nl2br($linha['ds_noticia']); ?>
Obrigado
Clique aqui para fazer login e interagir na Comunidade :)