Ir para conteúdo

POWERED BY:

Arquivado

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

MinDigo

[Resolvido] Formulario não grava texto completo

Recommended Posts

Olá galera,

eu sou estagiario em uma empresa e eu peguei um site pra terminar

 

PROBLEMA:

no sql server 2000 um texto grande é gravado

mas na hora de fazer o select nesse texto ele nao é exibido por completo

 

RESOLVIDO

era limitação de caracteres pelo php.ini

basta colocar essa função no topo do codigo antes da conexao com o banco

(eu coloquei 40000 porque meu texto era realmente grande, pode alterar esse valor)

 

ini_set('mssql.textlimit','40000');

ini_set('mssql.textsize','40000');

Compartilhar este post


Link para o post
Compartilhar em outros sites

o size 16 que você diz, é do html do input ? tem algum maxlength nesse input ?

Não seria melhor trabalhar com um textarea ??

 

Verifique o tipo de dado dessa coluna no banco... se tiver como VARCHAR (xx), troque para TEXT (e não especifique tamanho)

Compartilhar este post


Link para o post
Compartilhar em outros sites

o size 16 que você diz, é do html do input ? tem algum maxlength nesse input ?

Não seria melhor trabalhar com um textarea ??

 

Verifique o tipo de dado dessa coluna no banco... se tiver como VARCHAR (xx), troque para TEXT (e não especifique tamanho)

Ops desculpa eu devo ter explicado errado

no HTML esta assim:

 

<textarea name="texto" rows="3" class="campoform" id="texto"></textarea>

 

e no banco esta como TEXT

Compartilhar este post


Link para o post
Compartilhar em outros sites

só acrescentando algumas informações

na pagina administrativa usada para alterar/cadastrar os textos

é usado um plugin chamado tiny_mce

para editar os textos

 

 

alguem sabe se ele tem alguma limitação de caracteres?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não, eu uso ele tb, esse editor não limita.

Poste a estrutura dessa tabela. Tire o size dela. Deixe o campo como text sem tamanho.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ta passando os dados do form para o PHP por GET ou POST?

Passando via POST

 

Não, eu uso ele tb, esse editor não limita.

Poste a estrutura dessa tabela. Tire o size dela. Deixe o campo como text sem tamanho.

Pelo Enterprise Manager na hora que eu defino o campo como "TEXT" o 16 aparece no campo size, e não da pra modificar ou apagar ele.

 

Voce quer a estrutura do formulario ou a tabela no BD?

vou colocar o codigo aqui do formulario

<table width="100%" border="0" cellspacing="0" cellpadding="0"  align="center" bgcolor="#FFFFFF">
<tr>
<td height="262" valign="top">

<form method="post"  id="form" name="form" action="altera_bd_pagina.php?id_pagina=<?=$id_pagina ?>">
<input type="hidden" name="id_pagina" id="id_pagina" value="<?=$id_pagina ?>" />
<table width="100%" border="0" cellspacing="10" cellpadding="0">
<tr>
<td colspan="3" class="tituloform">Alterar  Pagina</td>
</tr>
<tr>
  <td> </td>
  <td colspan="2"> </td>
</tr>

<tr>
  <td> </td>
  <td colspan="2"> </td>
</tr>
<tr>
  <td> </td>
  <td colspan="2"><span style="font-weight: bold">Descrição</span></td>
</tr>
<tr>
  <td valign="top" class="textoform"> </td>
  <td colspan="2">
  <textarea name="texto" rows="3" class="campoform" id="texto" value=""/>
	<?=$descricao ?></textarea>	</td>
</tr><tr>
  <td> </td>
  <td colspan="2"> </td>
</tr>


<tr>
  <td class="textoform"> </td>
  <td colspan="2"> </td>
</tr>
<tr>
  <td class="textoform"> </td>
  <td colspan="2">
 <input type="submit" value="Alterar Pagina"  class="botaoform"/></td>
  </tr>
<tr>
<td class="textoform"> </td>
<td colspan="2"></td>
</tr>
</table>
</form>
</td>
</tr>
</table>

 

o campo onde ta escrito Descrição

 

é o campo que eu quero colocar o texto longo

 

aqui a pagina que ERA pra ir esse texto

 

http://www.saude.mt.gov.br/suvsa_novo/pagina.php?id=33

 

se voces olharem a ultima linha era pra ter continuação mais ela é cortada ali.

Compartilhar este post


Link para o post
Compartilhar em outros sites

ai galera

pra ajudar a voces me ajudarem :P

vou colocando aqui o meu progresso

 

eu dei um "echo" na hora de tentar passar o texto inteiro

ai mostrou pra mim que TODOS os dados foram passados

agora que vem o problema

se todos os dados foram passados

 

porque minha pagina nao exibe eles?

problema com sql?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Como está no banco ?

Truncou lá ? ou está completo ??

Compartilhar este post


Link para o post
Compartilhar em outros sites

Como está no banco ?

Truncou lá ? ou está completo ??

hmmmm

depois que voce falou eu fui olhar

olhando pelo query analyzer só mostra um pequeno pedacinho 4 palavras (na pagina mostra uns 3 mil caracteres, o texto que eu quero inserir tem 14mil caracteres.)

olhando pelo enterprise manager aparece <long text>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não conheço esse query analyzer..

poste a estrutura da tabela do banco, se tiver tudo Okay, faça a consulta diretamente no banco, e veja se retorna completo.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não conheço esse query analyzer..

poste a estrutura da tabela do banco, se tiver tudo Okay, faça a consulta diretamente no banco, e veja se retorna completo.

o query analyzer é uma ferramenta que faz consultas/operações usando as linhas de comando

 

ta ai a estrutura da tabela

 

Column Name-----------Data Type---------------Length

pk_pagina------------------int--------------------- 4

titulo----------------------varchar----------------- 255

descricao---------------text-------------------- 16

img_menor---------------varchar----------------- 255

img_maior----------------varchar----------------- 255

img_descricao------------varchar---------------- 255

fk_usuario_criacao----------int------------------- 4

fk_usuario_alteracao--------int------------------- 4

data_criacao--------------datetime--------------- 8

data_alteracao------------datetime--------------- 8

publicado--------------------char------------------ 1

ativo--------------------------char---------------- 1

n_acesso----------------------int----------------- 4

fk_pagina_unidade-----------int----------------- 4

fk_pagina_sessao------------int----------------- 4

Compartilhar este post


Link para o post
Compartilhar em outros sites

Coloca long text o tipo do campo, e deixa em branco o valor Length para que não tenha limites.

nao da

na hora que eu digito long text

aparece essa mensagem de erro:

 

"Entry must match an item in the list"

 

unicos text que tem na lista

é o proprio text e ntext

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olha, dá uma olhada aqui neste link.

Pelo que percebi, seu banco é MSSQL e não MYSQL como alguns podem estar pensando. Olhando na internet rapidamente, estes campos serão descontinuados pela Microsoft. Tente trocar para ntext o campo. Não entendo muito de SQL Server, talvez seria interessante mover o tópico para o fórum de Sql Server.

 

Carlos Eduardo

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olha, dá uma olhada aqui neste link.

Pelo que percebi, seu banco é MSSQL e não MYSQL como alguns podem estar pensando. Olhando na internet rapidamente, estes campos serão descontinuados pela Microsoft. Tente trocar para ntext o campo. Não entendo muito de SQL Server, talvez seria interessante mover o tópico para o fórum de Sql Server.

 

Carlos Eduardo

é eu acho melhor mover esse topico pra seção sql

eu postei aqui porque eu pensei ser limitação de codigo dentro do php

Compartilhar este post


Link para o post
Compartilhar em outros sites

Resolvido

 

era limitação dentro do php.ini

basta colocar a seguinte funcao no topo do codigo antes da conexao com o banco

(eu defini 40000 porque meu texto era realmente grande podendo ser alterado esse valor)

 

ini_set('mssql.textlimit','40000');

ini_set('mssql.textsize','40000');

 

:D

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.