Ir para conteúdo
Fórum Script Brasil
  • 0

Limite De Exibição


hsimberg

Pergunta

Gente, alguém sabe como deixar un limite de caracteres na exibição de uma busca no banco de dados..? é assim, na index mostra os ultimos tres registros do Guest, mas eu queria deixar um limite na mensagem na index e fosse assim:

Oi, lembrei de você e que...

sabe, algo assim? se quizerem que eu poste o codigo dá um toque, valeussssssssssssss

Link para o comentário
Compartilhar em outros sites

17 respostass a esta questão

Posts Recomendados

  • 0

Entendi o que você quer!

você vai precisar uma função que trata as strings... existe uma que quebra a variável a partir de um caractere que você define. Por exemplo, escrever a variável até o trigésimo caractere, apenas.

Mas, acho que tem outra solução, pois essa pode cortar a palavra no meio. Imagine que a variável $mensagem contém o texto que você deseja quebrar. Faça o seguinte:

<?php

$nova_msg = explode(" ", $mensagem);

echo "$nova_msg[0] $nova_msg[1] $nova_msg[2] $nova_msg[3] (...)";

?>

E pronto! Ele vai escrever todas as mensagens até a quarta palavra neste exemplo e vai adicionar um (...) no final. Ah, mas tem a possibilidade do cra ter escrito apenas "Olá!" na mensagem... aí ele daria erro quando você chamasse as outras variáveis além da $nova_msg[0]... então coloca uma "@" pra ocultar os possíveis erros:

echo "$nova_msg[0] @$nova_msg[1] @$nova_msg[2] @$nova_msg[3] (...)";

É isso... você poderia escrever esse "echo" dentro de um laço "for", ou "while", pra não ter que ficar repetindo uma variável atrás da outra... mas assim tb é funcional.

Até mais! Boa sorte.

Link para o comentário
Compartilhar em outros sites

  • 0

<?

$host = 'localhost';

$usuario = 'mairipa';

$senha = 'senha';

$banco = 'mairipa_';

$con = mysql_connect($host,$usuario,$senha) or die ("erro de conexão");

$db = mysql_select_db($banco,$con) or die ("base de dados não existe");

$sql = mysql_query("Select * from mural order by nome ASC limit 3") or die("erro de sql: ".mysql_error());

if(mysql_num_rows($sql) == 0) {

echo "nenhum registro encontrado";

} else {

echo "";

while($i = mysql_fetch_array($sql)) {

echo "<strong>De:</strong> ";

echo $i['nome'];

echo "<br>";

echo "<strong>Para:</strong> ";

echo $i['para'];

echo "<br>";

echo "<strong>Mensagem:</strong> ";

echo $i['mensagem'];

echo "<br><br>";

}

}

?>

Tá ai o codigo, onde eu ponho essa linha que tu me disse, muito obrigado!

valeu

Link para o comentário
Compartilhar em outros sites

  • 0

Vou pegar os 3 últimos comandos "echo" do seu código:

echo "<strong>Mensagem:</strong> ";
[COLOR=red]echo $i['mensagem'];[/COLOR]
echo "<br><br>";
você vai deixar assim:
echo "<strong>Mensagem:</strong> ";

[COLOR=red]$mensagem = explode(" ", $i['mensagem']);
for ($x = 0; $x <= 7; $x++) {
    echo "@$mensagem[$x] ";
    if ($x == "7") {
        echo "(...)";
    }
}[/COLOR]

echo "<br><br>";

É só você substituir o que eu coloquei em vermelho do seu código pelo o que eu coloquei em vermelho do meu. Isso deve ser o suficiente... mas volta aí pra falar se deu certo, beleza?

Falou! Até mais!

Link para o comentário
Compartilhar em outros sites

  • 0

Cara, essa dica do 404error é muito boa, mas ela pode cortar uma palavra pela metade. você vai selecionar um número "x" de caracteres.

Coloca essa linha no seu código:

$mensagem = explode(" ", $i['mensagem']);

for ($x = 0; $x <= 7; $x++) {

echo "@$mensagem[$x] ";

if ($x == "7") {

echo "(...)";

}

}

Assim ele vai imprimir as 8 primeiras palavras e escrever um (...)

beleza? Coloca isso em:

echo "<strong>Mensagem:</strong> ";

echo $i['mensagem];

echo "<br><br>";

(como eu tinha dito anteriormente)

Falou!

Link para o comentário
Compartilhar em outros sites

  • 0

echo "<strong>Mensagem:</strong> ";

$mensagem = explode(" ", $i['mensagem']);

for ($x = 0; $x <= 7; $x++) {

echo "@$mensagem[$x] ";

if ($x == "7") {

echo "(...)";

}

}

echo "<br><br>";

}

}

?>

É isso? Não ta funcionando, dá uma olhada você mesmo como tá: www.mairipa.com.br vai lá embaixo em ultimas do mural....valeu!

Link para o comentário
Compartilhar em outros sites

  • 0

Tá quase lá! você viu que ele tá exibindo as 8 primeiras palavras e cortando o resto?

Vamos mudar só uma coisa:

Onde está:

echo "@$mensagem[$x] ";

Troque por:

echo @$mensagem[$x] . " ";

Esse código que eu te passei faz o seguinte: pega a variável $i['mensagem] e quebra todos os seus elementos em um array. Ele vai se basear pelo "espaço" entre uma palavra e outra, mas poderia ser por qualquer outro caractere.

Aí ele vai pegar as 8 primeiras quebras (8 primeiras palavras) e juntá-las, novamente. Mas agora elas estarão sem o espaço! Então você coloca no código, enquanto está chamando cada um das quebras, um espaço novo.

É isso que eu fiz... tenta esse código que eu te passei! E seria mais legal se você usasse de exemplo alguma mensagem, mesmo. Parece que tá tudo:

"fffffffffffffffffff f" ou "abcde_abcde_abcde_abcde_abcde_abcde"

Copia e cola este texto mesmo! Só pra você testar... Como eu lhe disse, ele vai quebrar a MENSAGEM pelos espaços... se não tiver espaço, não tem quebra.

beleza, cara? Falou então!

Link para o comentário
Compartilhar em outros sites

  • 0

Ficou melhor, mesmo... se você quiser mudar o número de palavras em exibição, mexa no laço for... onde etá

x <= 7

coloque outro número. O total de palavras exibidas será esse número mais 1, beleza?

Falou cara! Parabéns pelo site! Foi um prazer ajudar...

Link para o comentário
Compartilhar em outros sites

  • 0

Cara, se a mensagem for curta, ele vai imrpimir os "..." tb!!! Vamos resolver isso!

echo "<strong>Mensagem:</strong> ";

$mensagem = explode(" ", $i['mensagem']);

for ($x = 0; $x <= 7; $x++) {

    echo @$mensagem[$x] . " ";

    if (!$mensagem[$x]) {

        break;

    }

    if ($x == "7" && $mensagem[$x+1]) {

        echo "...";

    }

}

echo "<br><br>";

Se eu fosse vc, faria desse novo jeito... tem tb a possibilidade do cara ter escrito exatamente 8 palavras. Aí ele vai imprimir a mensagem inteira e acrescentar "...", que não teria lógica, né?

Eu acho que consegui corrigir isso com este novo código.

Falou!

Link para o comentário
Compartilhar em outros sites

  • 0

Que bom que funcionou...

Tá bem legal, mesmo! O design e o conteúdo estão bacanas... acho que a coisa mais trabalhosa é o design, mas é o que eu mais gosto de fazer. Odeio ficar criando conteúdo! hehehe!

Falou, então! Boa sorte na sua criação!

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,9k
×
×
  • Criar Novo...