Ir para conteúdo

POWERED BY:

Arquivado

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

Hanover

Erro bizarro envolvendo o comando "substr"

Recommended Posts

Olá.A minha aplicação é bem simples.Estou tentando usar a função substr pra criar uma sinopse de um sistema de noticias.Eu faço uma consulta no banco, extraio da base de dados o conteudo da noticia e a adiciono em uma variavel chamada $noticia.<? // Conectando com o banco de dados.include "conexao.php";$sql = "SELECT * FROM noticias ORDER BY id DESC LIMIT 5";$exe = mysql_query($sql, $conexao) or die(mysql_error());$num = mysql_num_rows($exe);if ($num > 0){ while ($reg = mysql_fetch_array($exe, MYSQL_ASSOC)) { $id = $reg["id"]; $titulo = $reg["titulo"]; $noticia = $reg["noticia"]; // cria a sinopse da noticia $sinopse = substr($noticia, 0, 20); echo "<p><a href='noticias.php?id=$id'>$titulo</a></p>"; echo "<p>$sinopse</p>"; }}?>Bem, a variavel $sinopse não é interpretada corretamente quando adiciono a ela o comando substr da forma como esta ai.O campo noticia no banco é do tipo TEXT.Não sei se isso esta influenciando no erro.A função esta habilitada no servidor! Tanto é que é no exemplo abaixo a variavel $sinopse é lida corretamente!if ($num > 0){ while ($reg = mysql_fetch_array($exe, MYSQL_ASSOC)) { $id = $reg["id"]; $titulo = $reg["titulo"]; $noticia = $reg["noticia"]; // cria a sinopse da noticia $exemplo = "bla bla bla bla bla bla bla"; $sinopse = substr($exemplo, 0, 20); echo "<p><a href='noticias.php?id=$id'>$titulo</a></p>"; echo "<p>$sinopse</p>"; }}?>Se alguem poder me dar um dica do que ta ocorrendo, fica aqui meu agradecimento!

Compartilhar este post


Link para o post
Compartilhar em outros sites

olha cara, estou aqui com um problema com o comando substr tb..$data = date("Y-m-d"); // capturo a data atual no formato 2006-11-03 $ano = substr("$data",0,4); // capturo o ano 2006 $mes = substr("$data",5,6); // mas aqui NÃO CONSIGO CAPUTAR O MES NEM A PURRETE.. aparece -11- ... 11-03 .. mas o mes 11 nao consigo capturar de jeito nenhum... $dia = substr($data,8,10); // capturo o dia 03 print "Ano: $ano<br>"; print "Mês: $mes<br>"; print "Dia: $dia<br>";BOM, MAS TENTANDO TE AJUDAR, JA QUE ESTÁ USANDO UM CAMPO TEXT, QUANDO FOR FAZER A BUSCAFAÇA ASSIM:$sql = "SELECT * FROM substr(noticias,0,lenght(noticias)) as noticias ORDER BY id DESC LIMIT 5";tenta ai..veja se da certo..enquanto isso, vou passar a duvida do substr pra galera no forum...

Olá.A minha aplicação é bem simples.Estou tentando usar a função substr pra criar uma sinopse de um sistema de noticias.Eu faço uma consulta no banco, extraio da base de dados o conteudo da noticia e a adiciono em uma variavel chamada $noticia.<? // Conectando com o banco de dados.include "conexao.php";$sql = "SELECT * FROM noticias ORDER BY id DESC LIMIT 5";$exe = mysql_query($sql, $conexao) or die(mysql_error());$num = mysql_num_rows($exe);if ($num > 0){ while ($reg = mysql_fetch_array($exe, MYSQL_ASSOC)) { $id = $reg["id"]; $titulo = $reg["titulo"]; $noticia = $reg["noticia"]; // cria a sinopse da noticia $sinopse = substr($noticia, 0, 20); echo "<p><a href='noticias.php?id=$id'>$titulo</a></p>"; echo "<p>$sinopse</p>"; }}?>Bem, a variavel $sinopse não é interpretada corretamente quando adiciono a ela o comando substr da forma como esta ai.O campo noticia no banco é do tipo TEXT.Não sei se isso esta influenciando no erro.A função esta habilitada no servidor! Tanto é que é no exemplo abaixo a variavel $sinopse é lida corretamente!if ($num > 0){ while ($reg = mysql_fetch_array($exe, MYSQL_ASSOC)) { $id = $reg["id"]; $titulo = $reg["titulo"]; $noticia = $reg["noticia"]; // cria a sinopse da noticia $exemplo = "bla bla bla bla bla bla bla"; $sinopse = substr($exemplo, 0, 20); echo "<p><a href='noticias.php?id=$id'>$titulo</a></p>"; echo "<p>$sinopse</p>"; }}?>Se alguem poder me dar um dica do que ta ocorrendo, fica aqui meu agradecimento!

Compartilhar este post


Link para o post
Compartilhar em outros sites

mas chega a dar algum erro !?ja tentou dar um print $noticia antes do substr !?vamu debuga o código galera!

Olá.A minha aplicação é bem simples.Estou tentando usar a função substr pra criar uma sinopse de um sistema de noticias.Eu faço uma consulta no banco, extraio da base de dados o conteudo da noticia e a adiciono em uma variavel chamada $noticia.<? // Conectando com o banco de dados.include "conexao.php";$sql = "SELECT * FROM noticias ORDER BY id DESC LIMIT 5";$exe = mysql_query($sql, $conexao) or die(mysql_error());$num = mysql_num_rows($exe);if ($num > 0){ while ($reg = mysql_fetch_array($exe, MYSQL_ASSOC)) { $id = $reg["id"]; $titulo = $reg["titulo"]; $noticia = $reg["noticia"]; // cria a sinopse da noticia $sinopse = substr($noticia, 0, 20); echo "<p><a href='noticias.php?id=$id'>$titulo</a></p>"; echo "<p>$sinopse</p>"; }}?>Bem, a variavel $sinopse não é interpretada corretamente quando adiciono a ela o comando substr da forma como esta ai.O campo noticia no banco é do tipo TEXT.Não sei se isso esta influenciando no erro.A função esta habilitada no servidor! Tanto é que é no exemplo abaixo a variavel $sinopse é lida corretamente!if ($num > 0){ while ($reg = mysql_fetch_array($exe, MYSQL_ASSOC)) { $id = $reg["id"]; $titulo = $reg["titulo"]; $noticia = $reg["noticia"]; // cria a sinopse da noticia $exemplo = "bla bla bla bla bla bla bla"; $sinopse = substr($exemplo, 0, 20); echo "<p><a href='noticias.php?id=$id'>$titulo</a></p>"; echo "<p>$sinopse</p>"; }}?>Se alguem poder me dar um dica do que ta ocorrendo, fica aqui meu agradecimento!

Compartilhar este post


Link para o post
Compartilhar em outros sites

olha cara, estou aqui com um problema com o comando substr tb..$data = date("Y-m-d"); // capturo a data atual no formato 2006-11-03 $ano = substr("$data",0,4); // capturo o ano 2006 $mes = substr("$data",5,6); // mas aqui NÃO CONSIGO CAPUTAR O MES NEM A PURRETE.. aparece -11- ... 11-03 .. mas o mes 11 nao consigo capturar de jeito nenhum... $dia = substr($data,8,10); // capturo o dia 03 print "Ano: $ano<br>"; print "Mês: $mes<br>"; print "Dia: $dia<br>";BOM, MAS TENTANDO TE AJUDAR, JA QUE ESTÁ USANDO UM CAMPO TEXT, QUANDO FOR FAZER A BUSCAFAÇA ASSIM:$sql = "SELECT * FROM substr(noticias,0,lenght(noticias)) as noticias ORDER BY id DESC LIMIT 5";tenta ai..veja se da certo..enquanto isso, vou passar a duvida do substr pra galera no forum...

Compartilhar este post


Link para o post
Compartilhar em outros sites

cara, eu consegui usando outro metodo sem ser substr..por exemplo:$data = 2006/12/02;print $data{3}; // assim tb captura caracteres de uma variavel..// o resultado sera 6 mas o substring continua dando pau no mes... muito estranho, pois no ano e no dia funciona normal..eu hein... vou me benzer...valeu!

@webrogertente

$mes = substr($data, 5, -3);

Compartilhar este post


Link para o post
Compartilhar em outros sites

descobri o erro.$sinopse = substr($exemplo, 0, 20);eu tava inciando do 0por isso não funcionava$sinopse = substr($exemplo, 1, 20);ai funcionou direitinho!vlw a força pessoal!

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.