Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

rodrigofariat

[Resolvido] Quebra de linha em tabelas no PHP

Recommended Posts

Pessoal,

 

Tenho um script em PHP que faz consulta no banco de dados e imprime todos os dados presentes na tela

em uma tabela.

 

Acontece que tem um campo chamado celular, na qual o conteúdo é : (31)3434-34-34 (31)2323-2323.

 

Preciso fazer quebra de linha nessa váriavel (tipo varchar)

 

Ja pesquisei um bocado na Internet mas sem sucesso:

 

Algumas tentativas:

 

#echo "<td> ", str_replace("\n", "<br/>", $celularpai), "</td>";

#echo "<td WRAP='soft'>  ", $celularpai, "</td>";

 

Att,

 

Faria

Compartilhar este post


Link para o post
Compartilhar em outros sites

Sim tentei colocar assim:

 

echo "<td>  ", str_replace(" ", "<br />", $celularpai), "</td>";

 

Mas ainda não resolveu estou postando meu script por completo:

 

while ($linha=mysql_fetch_array($resultado))

{

 

$nomep = $linha["nomep"];

$celularp = $linha["celularp"];

$telefonep = $linha["telefonep"];

$telresidencialpai = $linha["telresidencialpai"];

$telresidencialmae = $linha["telresidencialmae"];

$celularpai = $linha["celularpai"];

$celularmae = $linha["celularmae"];

$enderecop = $linha["enderecop"];

$nomepai = $linha["nomepai"];

$nomemae = $linha["nomemae"];

 

echo "<tr bgcolor='".$cor."'>";

echo "<td> ", str_replace("\n", "<br/>", $nomep), "</td>";

echo "<td> ", str_replace("\n", "<br/>", $celularp), "</td>";

echo "<td> ", str_replace("\n", "<br/>", $enderecop), "</td>";

echo "<td> ", str_replace("\n", "<br/>", $telefonep), "</td>";

echo "<td> ", str_replace("\n", "<br/>", $nomepai), "</td>";

echo "<td> ", str_replace("\n", "<br/>", $telresidencialpai), "</td>";

echo "<td>  ", str_replace(" ", "<br />", $celularpai), "</td>";

echo "<td> ", str_replace("\n", "<br/>", $nomemae), "</td>";

echo "<td> ", str_replace("\n", "<br/>", $telresidencialmae), "</td>";

echo "<td> ", str_replace("\n", "<br/>", $celularmae), "</td>";

echo "</tr>";

}

 

Att,

 

Faria

Compartilhar este post


Link para o post
Compartilhar em outros sites

Para trocar \n por <Br />, basta usar nl2br()

 

http://www.php.net/nl2br

 

Quanto a transformar espaço em <br />, esse str_Replace deveria estar dando certo.

 

Execute o script e veja o código-fonte HTML gerado. Veja como está ficando a parte do celular. Poste aqui.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Mesmo usando a linha abaixo:

 

echo "<td> ", nl12br($celularpai), "</td>";

 

Não resolveu logo abaixo esta meu código:

 

<html>

<head>

 

<title>Listagem de Alunos</title>

<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">

</head>

<body>

 

<style type="text/css">

td {

font-family:verdana,arial;

font-size:10pt;

}

.estilotabela{

background-color:ffffff;

border-style:solid;

border-color:666666;

border-width:1px;

}

.estilocelula{

background-color:ddeeff;

color:333333;

font-weight:bold;

font-size:10pt;

}

</style>

<center>

 

<table border='1'>

<tr>

 

<td><b>Nome </b></td>

<td><b>Celular </td>

<td><b>Endereço </td>

<td><b>Telefone </td>

 

<td><b>Nome do Pai</b></td>

<td><b>Telefone Pai</b></td>

<td><b>Celular Pai</b></td>

 

<td><b>Nome da Mãe</b></td>

<td><b>Telefone da Mãe</b></td>

<td><b>Celular Mae</b></td>

 

<tr>

 

<?php

 

$conexao = mysql_connect("localhost", "root", "") or die ("Erro na conexao ao banco de dados.");

$db = mysql_select_db("escolar") or die ("Erro ao selecionar a base de dados.");

$sql = "SELECT * FROM cadastro ORDER BY nomep;";

$resultado = mysql_query($sql);

 

$cont = 0;

 

echo "<br>";

echo "<b><font color='blue'>Lista todos os clientes existentes</b></font><br>";

 

while ($linha=mysql_fetch_array($resultado))

{

 

if ($cont % 2 == 0)

{

$cor = "#f2f2f2";

}

 

else

{

$cor = "#ffffff";

}

 

$nomep = $linha["nomep"];

$celularp = $linha["celularp"];

$telefonep = $linha["telefonep"];

$telresidencialpai = $linha["telresidencialpai"];

$telresidencialmae = $linha["telresidencialmae"];

$celularpai = $linha["celularpai"];

$celularmae = $linha["celularmae"];

$enderecop = $linha["enderecop"];

$nomepai = $linha["nomepai"];

$nomemae = $linha["nomemae"];

echo "<tr bgcolor='".$cor."'>";

echo "<td> ", str_replace("\n", "<br/>", $nomep), "</td>";

echo "<td> ", str_replace("\n", "<br/>", $celularp), "</td>";

echo "<td> ", str_replace("\n", "<br/>", $enderecop), "</td>";

echo "<td> ", str_replace("\n", "<br/>", $telefonep), "</td>";

echo "<td> ", str_replace("\n", "<br/>", $nomepai), "</td>";

echo "<td> ", str_replace("\n", "<br/>", $telresidencialpai), "</td>";

#echo "<td> ", str_replace(" ", "<br />", $celularpai), "</td>";

echo "<td> ", nl12br($celularpai), "</td>";

echo "<td> ", str_replace("\n", "<br/>", $nomemae), "</td>";

echo "<td> ", str_replace("\n", "<br/>", $telresidencialmae), "</td>";

echo "<td> ", str_replace("\n", "<br/>", $celularmae), "</td>";

echo "</tr>";

$cont = $cont + 1;

}

echo "<br>";

 

?>

</table>

</center><br>

<center><a href="consulta.php"><b>Volta</b></a></center><br>

</body>

</html>

Compartilhar este post


Link para o post
Compartilhar em outros sites

eu falei para você usar nl2br em vez disto:

 

str_replace("\n", "<br/>", $var)

 

Afinal, essa função serve para isso.

 

 

 

E, como eu disse, veja o código-fonte HTML gerado pela execução desse script. Veja como está aparecendo o celular

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tentei as duas formas:

 

echo "<td> ", nl2br($celularpai), "</td>";

echo "<td> ",str_replace("\n", "<br/>", $celularpai), "</td>";

 

No campo celular do pai aparece:

 

(31)9663-1111 (31)9619-1212

 

Creio que as duas linhas acima deveriam ter feito a quebra de linha.

 

Assim ficaria assim:

(31)9663-1111

(31)9619-1212

 

 

O que mais posso fazer ?

 

Att,

 

Rodrigo Faria

Compartilhar este post


Link para o post
Compartilhar em outros sites

echo "<td> " .  str_replace(" ", "<br />", $celularpai) . "</td>";

ou

 

echo "<td> " .  preg_replace("/(\s)+/", "<br />", $celularpai) . "</td>";

 

Poste aqui o código HTML puro que foi gerado. ou seja, execute o script e visualize o código-fonte, em Visualizar->Código-fonte. É essa parte que quero que você poste aqui. http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

Conforme o aviso existente no fórum de origem deste post, não é permitida a postagem de dúvidas nesta área, motivo pelo qual este tópico será movido para o fórum principal deste assunto.

 

Tópico Movido

 

Origem: Artigos, Tutoriais e Matérias (PHP) http://forum.imasters.com.br/public/style_emoticons/default/seta.gif Destino: PHP

Compartilhar este post


Link para o post
Compartilhar em outros sites

Sim tentei colocar assim:

 

echo "<td>  ", str_replace(" ", "<br />", $celularpai), "</td>";

 

Mas ainda não resolveu estou postando meu script por completo:

 

while ($linha=mysql_fetch_array($resultado))

{

 

$nomep = $linha["nomep"];

$celularp = $linha["celularp"];

$telefonep = $linha["telefonep"];

$telresidencialpai = $linha["telresidencialpai"];

$telresidencialmae = $linha["telresidencialmae"];

$celularpai = $linha["celularpai"];

$celularmae = $linha["celularmae"];

$enderecop = $linha["enderecop"];

$nomepai = $linha["nomepai"];

$nomemae = $linha["nomemae"];

 

echo "<tr bgcolor='".$cor."'>";

echo "<td> ", str_replace("\n", "<br/>", $nomep), "</td>";

echo "<td> ", str_replace("\n", "<br/>", $celularp), "</td>";

echo "<td> ", str_replace("\n", "<br/>", $enderecop), "</td>";

echo "<td> ", str_replace("\n", "<br/>", $telefonep), "</td>";

echo "<td> ", str_replace("\n", "<br/>", $nomepai), "</td>";

echo "<td> ", str_replace("\n", "<br/>", $telresidencialpai), "</td>";

echo "<td>  ", str_replace(" ", "<br />", $celularpai), "</td>";

echo "<td> ", str_replace("\n", "<br/>", $nomemae), "</td>";

echo "<td> ", str_replace("\n", "<br/>", $telresidencialmae), "</td>";

echo "<td> ", str_replace("\n", "<br/>", $celularmae), "</td>";

echo "</tr>";

}

 

Att,

 

Faria

Se seu banco de dados estiver retornando somente um espaço entre os dois números, tente colocar assim:

echo "<td> " . str_replace(" ", "<br />", $celularpai) . " </td>";

 

Se estiver retornando a quebra de linha '\n', tente assim :

echo "<td> " . str_replace("\n", "<br />", $celularpai) . " </td>";

Compartilhar este post


Link para o post
Compartilhar em outros sites

Usei a primeira opção

 

1) echo "<td> " . str_replace(" ", "<br />", $celularpai) . " </td>";

 

2)Se estiver retornando a quebra de linha '\n', tente assim :

echo "<td> " . str_replace("\n", "<br />", $celularpai) . " </td>";

 

Agora sim esta resolvido.

 

Obrigado !

Compartilhar este post


Link para o post
Compartilhar em outros sites

Estou desde o início do tópico tentando lhe explicar que isto:

 

str_replace("\n", "<br />", $celularpai)

é a mesma coisa que isto:

nl2br($celularpai);

http://www.php.net/nl2br

 

 

 

Você disse que entre os dois números havia uma espaço, não uma quebra de linha. Por isso insisti tanto para você postar o HTML final, mas você não postou...

Compartilhar este post


Link para o post
Compartilhar em outros sites

<html>

<head>

 

<title>Listagem de Clientes</title>

<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">

</head>

<body>

 

<style type="text/css">

td {

font-family:verdana,arial;

font-size:10pt;

}

.estilotabela{

background-color:ffffff;

border-style:solid;

border-color:666666;

border-width:1px;

}

.estilocelula{

background-color:ddeeff;

color:333333;

font-weight:bold;

font-size:10pt;

}

</style>

<center>

 

<table border='1'>

<tr>

 

<td><b>Nome </td>

 

<td><b>Endereço </td>

<td><b>Celular </td>

<tr>

 

<br><b><font color='blue'>Lista todos os clientes existentes</b></font><br><tr bgcolor='#f2f2f2'><td> Aécio Neves</td><td> Palacio da Liberdade</td><td> (32)9898-2323<br />(21)4566-9090 </td></tr><tr bgcolor='#ffffff'><td> Fernando Pimentel</td><td> Prefeitura de Belo Horizonte</td><td> (32)9798-2325<br />(21)2266-9090 </td></tr><tr bgcolor='#f2f2f2'><td> Lula</td><td> Planalto Central </td><td> (31)9900-2323<br />(31)9898-777 </td></tr><br>

</table>

 

</center><br>

<center><a href="consulta.php"><b>Volta</b></a></center><br>

</body>

</html>

Compartilhar este post


Link para o post
Compartilhar em outros sites

No meu caso o texto inserido esta quebrando a linha no hifen e preciso que o texto fique em uma única linha. Caso saiba como manter tudo em uma única linha por gentileza me avise

 

Obrigado

 

 

 

Pessoal,

 

Tenho um script em PHP que faz consulta no banco de dados e imprime todos os dados presentes na tela

em uma tabela.

 

Acontece que tem um campo chamado celular, na qual o conteúdo é : (31)3434-34-34 (31)2323-2323.

 

Preciso fazer quebra de linha nessa váriavel (tipo varchar)

 

Ja pesquisei um bocado na Internet mas sem sucesso:

 

Algumas tentativas:

 

#echo "<td> ", str_replace("\n", "<br/>", $celularpai), "</td>";

#echo "<td WRAP='soft'>  ", $celularpai, "</td>";

 

Att,

 

Faria

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.