Carcleo 4 Denunciar post Postado Julho 4, 2011 Olá. Dominio www.gapde.com.br Na pagina principal index_conteudo.php Tem uma chamda á função substr() do php. minha chamada é assim: echo $foto2."". $nome_depoente."". substr($descricao_depoimento,0,50)."... Leia mais.. "; Toda a parte: <td valign="top"> <center> <a href="depoimentos.php?acao=listar"><font face="castellar" size="5"><b>Depoimentos</b></font></a><br /> de deficientes. </center><br /> <? $depoimentos=$MySQL->query(" select de.id_depoimento, en.nome_entrevistado, en.foto_entrevistado, de.descricao_depoimento from depoimentos de inner join entrevistado en on en.id_entrevistado=de.id_entrevistado order by de.id_depoimento desc limit 0,3 "); if(mysql_num_rows($depoimentos)==0) {echo "Ainda não há depoimento cadastrado!";} else { print " Depoimento de:<br>"; while(list($id_depoimento,$nome_depoente, $foto, $descricao_depoimento)=mysql_fetch_row($depoimentos)) { include("global/funcoes_php/foto_ver.php"); echo $foto2."<br> <a href=\"depoimentos.php?acao=exibir&id_depoimento=$id_depoimento\">".$nome_depoente."</a><br>". substr($descricao_depoimento,0,50)."... <a href=\"depoimentos.php?acao=exibir&id_depoimento=$id_depoimento\">Leia mais..</a><br> "; } } ?> </td> Viu o substr()? No Mysql, descricao_depoimento é longblob Pois é, ela não esta funcionando no servidor do UOLHOST. Na verdade, quando apena chamo o campo , ele é exibido normalmente. Porem, quando coloco ele na substr(). ai, não exibe nada e nem da erro. Tem como fazer uma função php, se não funcionar, exibir o erro? O que devo fazer? Compartilhar este post Link para o post Compartilhar em outros sites
Andrey Knupp Vital 136 Denunciar post Postado Julho 4, 2011 Olá, você pode fazer o 'substr' direto no SQL .. :P Compartilhar este post Link para o post Compartilhar em outros sites
Carcleo 4 Denunciar post Postado Julho 4, 2011 Cara fiz assim: SUBSTRING(de.descricao_depoimento, 1, 50) Voce acredita que esta acontecendo a mesma coisa? Não retorna valor. Nem no banco nem no php. Os caras do suporte te deixam 7 dias sem reposta. É dificil. Compartilhar este post Link para o post Compartilhar em outros sites
Andrey Knupp Vital 136 Denunciar post Postado Julho 4, 2011 C:\dev\mysql\bin>mysql -u root -p Enter password: ****** Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 1 Server version: 5.1.41 Source distribution Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. mysql> use exemplo Database changed mysql> select @var := 'andrey knupp', substring( @var, 1, 5 ) as substring; +------------------------+-----------+ | @var := 'andrey knupp' | substring | +------------------------+-----------+ | andrey knupp | andre | +------------------------+-----------+ 1 row in set (0.01 sec) mysql> só você usar a função 'substring' no seu campo, tipo: SELECT substring( texto, 1, 50 ) as texto FROM .. INNER JOIN .. WHERE .. Lembrando que se você colocar 'texto', 0, 50 .. vai dar errado, 0 é considerado como false, no PHP também, mais no MySQL vai ser retornado NULL, veja: mysql> select @var := 'andrey knupp', substring( @var, 0, 5 ) as substring; +------------------------+-----------+ | @var := 'andrey knupp' | substring | +------------------------+-----------+ | andrey knupp | | +------------------------+-----------+ 1 row in set (0.00 sec) se você quiser concatenar os 'três' pontinhos também pode .. mysql> select @var := 'andrey knupp', concat( substring( @var, 1, 6 ), ' ... leia mais ' ) as texto; +------------------------+-----------------------+ | @var := 'andrey knupp' | texto | +------------------------+-----------------------+ | andrey knupp | andrey ... leia mais | +------------------------+-----------------------+ 1 row in set (0.00 sec) Compartilhar este post Link para o post Compartilhar em outros sites
Carcleo 4 Denunciar post Postado Julho 4, 2011 Cara fiz assim: SUBSTRING(de.descricao_depoimento, 1, 50) Voce acredita que esta acontecendo a mesma coisa? Não retorna valor. Nem no banco nem no php. Os caras do suporte te deixam 7 dias sem reposta. É dificil. Compartilhar este post Link para o post Compartilhar em outros sites
Andrey Knupp Vital 136 Denunciar post Postado Julho 4, 2011 Cara, se não está retornando no banco, é possivelmente problema na sua tabela, da uma olhada aí. pois fazendo o substring diretamente da tabela, funcionou perfeitamente, veja: C:\dev\mysql\bin>mysql -u root -p Enter password: ****** Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 2 Server version: 5.1.41 Source distribution Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. mysql> use exemplo; Database changed mysql> create table teste( -> texto text not null -> )engine = myisam row_format = default; Query OK, 0 rows affected (0.07 sec) mysql> insert into teste values( 'Testando uma função nativa do mysql, fazendo um substr diretamente no sql' ); Query OK, 1 row affected (0.02 sec) mysql> select concat( substring( teste.texto, 1, 10 ), ' ... leia mais' ) as texto from teste; +--------------------------+ | texto | +--------------------------+ | Testando u ... leia mais | +--------------------------+ 1 row in set (0.00 sec) mysql> select concat( substring( teste.texto, 1, 50 ), ' ... leia mais' ) as texto from teste; +------------------------------------------------------------------+ | texto | +------------------------------------------------------------------+ | Testando uma função nativa do mysql, fazendo um su ... leia mais | +------------------------------------------------------------------+ 1 row in set (0.00 sec) mysql> Compartilhar este post Link para o post Compartilhar em outros sites
Carcleo 4 Denunciar post Postado Julho 4, 2011 Olha. Se eu coloco assim: substr($descricao_depoimento,1,50) No php. Olha em www.gapde.com.br o que que saiu na parte de depoimentos. Onde tem ma foto de uma moça. abaixo dela. Detalhe: localmente, funciona normal e em outro provedor tambem. Rapaz. Exportei a tabela e os dados olha só o que gravou no campo descricao_depoimentos no lugar do texto que eu coloquei: SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO"; /*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */; /*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */; /*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */; /*!40101 SET NAMES utf8 */; CREATE TABLE depoimentos ( id_depoimento int(5) unsigned NOT NULL AUTO_INCREMENT, id_def_tipo int(5) NOT NULL DEFAULT '0', id_entrevistado int(5) NOT NULL DEFAULT '0', descricao_depoimento longblob, PRIMARY KEY (id_depoimento) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; INSERT INTO depoimentos (id_depoimento, id_def_tipo, id_entrevistado, descricao_depoimento) VALUES (2, 2, 3, 0x3c50207374796c653d224d415247494e3a2030636d2030636d20313070742220636c6173733d4d736f4e6f726d616c3e3c464f4e542073697a653d333e3c464f4e5420666163653d43616c696272693e446573646520323030342070617274696369706f20646f2070726f6772616d612028696e636c7573c3a36f206e6f206d65726361646f2064652074726162616c686f20706172612050504453292c206d617320736f6d656e746520656e74c3a36f20c3a92071756520636f6e73656775692074657220756d20656d707265676f20646520636172746569726120617373696e6164612e3c3f786d6c3a6e616d65737061636520707265666978203d206f206e73203d202275726e3a736368656d61732d6d6963726f736f66742d636f6d3a6f66666963653a6f666669636522202f3e3c6f3a703e3c2f6f3a703e3c2f464f4e543e3c2f464f4e543e3c2f503e0d0a3c50207374796c653d224d415247494e3a2030636d2030636d20313070742220636c6173733d4d736f4e6f726d616c3e3c464f4e542073697a653d333e3c464f4e5420666163653d43616c696272693e466f6920756d61206772616e646520656d6fc3a7c3a36f2070617261206d696d2c20706f6973206572612061207072696d656972612076657a207175652076657374696120756d20756e69666f726d6520646520756d6120656d70726573612c2073656e646f20617373696d206520736162656e646f206461206772616e64652063617061636964616465207175652074696e686120617272656761636569206173206d616e67617320652066756920c3a1206c7574612e3c6f3a703e3c2f6f3a703e3c2f464f4e543e3c2f464f4e543e3c2f503e0d0a3c50207374796c653d224d415247494e3a2030636d2030636d20313070742220636c6173733d4d736f4e6f726d616c3e3c464f4e542073697a653d333e3c464f4e5420666163653d43616c696272693e436f6d206f2061706f696f2064612064697265c3a7c3a36f20646f2047415044452028677275706f2064652061706f696f206120706573736f6120636f6d20646566696369c3aa6e636961292065207365757320706172636569726f7320636f6e7365677569206d65207175616c696669636172206d656c686f722c2065206173206f706f7274756e69646164657320666f72616d20617061726563656e646f202c616761727265692d617320636f6d206166696e636f2c20706f697320657261207475646f207175652073656d70726520717569732e3c6f3a703e3c2f6f3a703e3c2f464f4e543e3c2f464f4e543e3c2f503e0d0a3c50207374796c653d224d415247494e3a2030636d2030636d20313070742220636c6173733d4d736f4e6f726d616c3e3c464f4e542073697a653d333e3c464f4e5420666163653d43616c696272693e486f6a652c2061706573617220646f20706f75636f2074656d706f2c206d652073696e746f206d7569746f207265616c697a6164612e20506f73736f2064697a65722061676f72612071756520736f7520756d61206369646164c3a32c20706f69732074656e686f20756d2074726162616c686f20717565206d65206461206469676e69646164652c206520756d61206d656c686f72207175616c696461646520646520766964612c20616772616465c3a76f207072696d6569726f206120446575732c206520746f64617320617320706573736f617320717565206d6520616a75646172616d3c5350414e207374796c653d226d736f2d737061636572756e3a20796573223e203c2f5350414e3e6520636f6e74696e75616d206d652064616e646f20666f72c3a761202c20706f727175652073656d20656c6173206575206ec3a36f207465726961206368656761646f206174652061717569202c7365692071756520652073c3b33c5350414e207374796c653d226d736f2d737061636572756e3a20796573223e203c2f5350414e3e636f6d65c3a76f2c20736f6e686f20656d2069722061696e6461206d616973206c6f6e67652c2065207175656d207361626520756d206469612066617a657220756d6120666163756c646164652c207365692071756520657374652065206f20736f6e686f206465206d7569746f7320505044533c5350414e207374796c653d226d736f2d737061636572756e3a20796573223e203c2f5350414e3e652065737065726f2071756520636f6d203c5350414e207374796c653d226d736f2d737061636572756e3a20796573223e3c2f5350414e3e6120616a7564613c5350414e207374796c653d226d736f2d737061636572756e3a20796573223e203c2f5350414e3e646f2047415044453c5350414e207374796c653d226d736f2d737061636572756e3a20796573223e203c2f5350414e3e65206f2061706f696f206465207365757320706172636569726f7320706f7373616d6f7320636865676172206cc3a12e3c6f3a703e3c2f6f3a703e3c2f464f4e543e3c2f464f4e543e3c2f503e0d0a3c50207374796c653d224d415247494e3a2030636d2030636d20313070742220636c6173733d4d736f4e6f726d616c3e3c464f4e542073697a653d333e3c464f4e5420666163653d43616c696272693e526f73656e693c5350414e207374796c653d226d736f2d737061636572756e3a20796573223e203c2f5350414e3e4d75726961c3a92c3c5350414e207374796c653d226d736f2d737061636572756e3a20796573223e203c2f5350414e3e3237206465206a756e686f20323031312e3c5350414e207374796c653d226d736f2d737061636572756e3a20796573223e203c2f5350414e3e3c5350414e207374796c653d226d736f2d737061636572756e3a20796573223e3c2f5350414e3e3c2f464f4e543e3c2f464f4e543e3c6f3a703e3c2f6f3a703e3c2f503e); Mas vai entender. Quando clicko no nome da moça. abre o depoimento dela. E lá, eu chamo a descriçao completa. E nela, vem o texto certinho, Compartilhar este post Link para o post Compartilhar em outros sites
Andrey Knupp Vital 136 Denunciar post Postado Julho 4, 2011 Não se usa campo blob pra guardar informações desse tipo, troque para text Compartilhar este post Link para o post Compartilhar em outros sites
Carcleo 4 Denunciar post Postado Julho 4, 2011 Acho que tem aspas no texto mesmo. Mas, como resolvo isso então? Compartilhar este post Link para o post Compartilhar em outros sites
Andrey Knupp Vital 136 Denunciar post Postado Julho 4, 2011 Se for aspas, acho que um addslashes resolve .. mais fique sabendo que é errado utilizar longblob pra esse tipo de coisa você vai gastar memoria no mysql atoa, blob é pesado .. troque para texto CREATE TABLE depoimentos ( id_depoimento int(5) unsigned NOT NULL AUTO_INCREMENT, id_def_tipo int(5) NOT NULL DEFAULT '0', id_entrevistado int(5) NOT NULL DEFAULT '0', descricao_depoimento text, PRIMARY KEY (id_depoimento) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; Compartilhar este post Link para o post Compartilhar em outros sites
Carcleo 4 Denunciar post Postado Julho 4, 2011 Não se usa campo blob pra guardar informações desse tipo, troque para text Estou usando blob por, na maioria dos casos, os textos serem extensos. Estou errado? Devo mesmo usar text? mesmo quando ao texto forem enviadas tags html? Compartilhar este post Link para o post Compartilhar em outros sites
Andrey Knupp Vital 136 Denunciar post Postado Julho 4, 2011 Blob não tem NADA HAVER com texto, mesmo ele sendo extenso .. :lol: Compartilhar este post Link para o post Compartilhar em outros sites
Carcleo 4 Denunciar post Postado Julho 4, 2011 qual usar então? Compartilhar este post Link para o post Compartilhar em outros sites
Kakashi_Hatake 267 Denunciar post Postado Julho 4, 2011 blob é pesado .. troque para texto CREATE TABLE depoimentos ( id_depoimento int(5) unsigned NOT NULL AUTO_INCREMENT, id_def_tipo int(5) NOT NULL DEFAULT '0', id_entrevistado int(5) NOT NULL DEFAULT '0', descricao_depoimento text, PRIMARY KEY (id_depoimento) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; Como o Andrey Knupp falou, troque para text Compartilhar este post Link para o post Compartilhar em outros sites