Ir para conteúdo

POWERED BY:

Arquivado

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

Roberto Ody

[Resolvido] Corte da string no 1º espaço e branco

Recommended Posts

Bom oq está ocorrendo é que ao consultar um registro no DB-mysql e imprimir estes resultados em campos de um formulário para fazer uma alteração, exemplo que o dado seja: "Roberto Ody". quando este dado é recuperado no formulário só aparece: "Roberto". Tudo que vem depois do 1º espaço não é reconhecido.

 

O que posso fazer para corrigir isso.

 

Grato, Roberto Ody.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Poste o código pra gente dar uma olhada ;)

 

Página: http://www.lri.com.br/sis/setup_teste.php

 

Observe: Local: LR-teste locaweb (espaço em branco entre teste locaweb)

 

$queryProduto = " select *  from lista_estoque where codigo='lr-0000'  order by codigo";
$result_verif = @mysql_query($queryProduto);
$linhas_verif = @mysql_num_rows($result_verif);
for ($i=0;$i<=$linhas_verif-1;$i++)

{

$codigo = @mysql_result($result_verif,$i,"codigo");
$estoque = @mysql_result($result_verif,$i,"estoque");
$local = @mysql_result($result_verif,$i,"local");


if($estoque > 0){

			echo "<table width=480px border=0><tr>
   <td width=200px ><font face=\"verdana\" size=\"1\"> <B>Código: </B> ".$codigo."</font></td>

   <td width=120px align=right><font face=\"verdana\" size=\"1\"><b>Quant: </b>".$estoque."   </font></td>
<td width=160px ><font face=\"verdana\" size=\"1\"><b>Local: </b>".$local."</font></td>

 </tr>
</table><hr height=1>";

}}

 

 

página form: http://www.lri.com.br/sis/pop_form_atualiza_estoque_poa.php?id=1523&acao=estoque_atualizar_poa

 

switch($acao){

case("estoque_atualizar_poa"):


$sql="select * from lista_estoque where id_lista=$id";
$acao=mysql_query($sql);
$numreg=mysql_num_rows($acao);

while($linha=mysql_fetch_array($acao)){

$rec_id_lista=$linha["id_lista"];
$rec_data=$linha["data"];
$rec_codigo=$linha["codigo"];
$rec_estoque=$linha["estoque"];
$rec_local=$linha["local"];
$rec_fabricante=$linha["fabricante"];
$rec_update=$linha["update"];
}

echo"
<form action=\"pop_form_atualiza_estoque_poa.php\" method=\"post\" enctype=\"multipart/form-data\" name=\"form1\" id=\"form1\">
		  <input type=\"hidden\" name=\"id\" value=".$rec_id_lista."/>
		  <table width=\"350px\" border=\"0\" align=\"left\" cellpadding=\"2\" cellspacing=\"1\">
               <tr>
                 <td colspan=\"2\"  align=\"center\"><?
			  ".$confirm;
			  echo "</td>
                 </tr>
               <tr>
                 <td>Data da Última Atualização: </td>
                 <td >". $rec_data."</td>
               </tr>
               <tr>
                 <td ><div align=\"right\">Código:</div></td>
                 <td ><input name=\"up_codigo\" type=\"text\" id=\"up_codigo\" value=".$rec_codigo."></td>
               </tr>
               <tr>
                 <td width=\"47%\" ><div align=\"right\">Quantidade em Estoque : </div></td>
                 <td width=\"53%\" ><input name=\"up_estoque\" type=\"text\" id=\"up_estoque\" value=".$rec_estoque."></td>
               </tr>
               <tr>
                 <td ><div align=\"right\">Local:</div></td>
                 <td ><input name=\"up_local\" type=\"text\" id=\"up_local\" value=".$rec_local."></td>
               </tr>
               <tr>
                 <td ><div align=\"right\">Fabricante: </div></td>
                 <td ><input name=\"up_fabricante\" type=\"text\" id=\"up_fabricante\" value=".$rec_fabricante."></td>
               </tr>


               <tr>
                 <td><input name=\"acao\" type=\"hidden\" value=\"alterar_estoque_poa\"></td>
                 <td><input type=\"hidden\" name=\"up_update\" value=".$rec_update."></td>
               </tr>
               <tr>
                 <td> </td>
                 <td><input name=\"Submit_alterar_est_poa\" type=\"submit\"  value=\"Enviar/POA\">.</td>
               </tr>
             </table>
           </form>";
break;
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

Por acaso está gravado corretamente no BD? Será que não tem limite no campo e por isto só grava a metade da string?

 

Tenta consultar direto no Phpmyadmin pra ver se aparece completo ou faltando. Outra opção seria que o campo type="text" tenha um maxlength.

 

Carlos Eduardo

Compartilhar este post


Link para o post
Compartilhar em outros sites

Sim a aperação de gravar está correta e gravando todos os dados, na consulta feita direto no mysql para uma alteração retorna a string total. Coloquei o maxlength no type=text e verifiquei o DB está setado para 150 caracteres.

 

OLha é a primeira vez em 7 anos de programação que vejo algo assim,...

 

Por acaso está gravado corretamente no BD? Será que não tem limite no campo e por isto só grava a metade da string?

 

Tenta consultar direto no Phpmyadmin pra ver se aparece completo ou faltando. Outra opção seria que o campo type="text" tenha um maxlength.

 

Carlos Eduardo

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom acabei de ver que só ocorre este erro , quando o campo é um <type=text> pois em um campo <textarea> está lendo normal. segue link com alteração: http://www.lri.com.b...e_atualizar_poa

 

Bom, você verificou se o PHP está recebendo os dados corretamente ?

 

$str = $_REQUEST[ "o_campo_que_voce_precisa" ];

var_dump( $str );
for ( $i = 0 , $t = strlen( $str ) ; $i < $t ; $i++ ){
    $chr = $str{ $i };
    $ord = ord( $chr );
    printf( "%03d -> |%c|:|%s|\n"  , $ord , $ord , $chr );
}
die;

Compartilhar este post


Link para o post
Compartilhar em outros sites

string(16) "LR-teste locaweb" 076 -> |L|:|L| 082 -> |R|:|R| 045 -> |-|:|-| 116 -> |t|:|t| 101 -> |e|:|e| 115 -> |s|:|s| 116 -> |t|:|t| 101 -> |e|:|e| 032 -> | |:| | 108 -> |l|:|l| 111 -> |o|:|o| 099 -> |c|:|c| 097 -> |a|:|a| 119 -> |w|:|w| 101 -> |e|:|e| 098 -> |b|:|b|

 

Este foi o resposta.....!!?!! bom retornou o campo como deve ser "LR-teste locaweb", porém o restante não sei oq é. Poderia explicar.

 

Agredeço a ajuda ,..vlw.

 

 

 

Bom acabei de ver que só ocorre este erro , quando o campo é um <type=text> pois em um campo <textarea> está lendo normal. segue link com alteração: http://www.lri.com.b...e_atualizar_poa

 

Bom, você verificou se o PHP está recebendo os dados corretamente ?

 

$str = $_REQUEST[ "o_campo_que_voce_precisa" ];

var_dump( $str );
for ( $i = 0 , $t = strlen( $str ) ; $i < $t ; $i++ ){
    $chr = $str{ $i };
    $ord = ord( $chr );
    printf( "%03d -> |%c|:|%s|\n"  , $ord , $ord , $chr );
}
die;

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom depois de alguns testes achei uma saída, porém gostaria de entender o pq desse erro.

 

link final: http://www.lri.com.br/sis/pop_form_atualiza_estoque_poa.php?id=1523&acao=estoque_atualizar_poa

 

...<tr><td ></td>

<td >

///// --- type/text no echo:

<input type=\"text\" name=\"up_local\" value=";?><? echo $rec_local;?><? echo"maxlength=\"255\"><br>";

?>

//// ---- type/text no html:

<input type="text" name="up_local" value="<? echo $rec_local; ?>"><br>

#echo da string no value

<?

echo"<textarea name=\"endereco\" cols=\"25\" rows=\"2\">".$rec_local."</textarea>

</td></tr>...

 

Muito obrigado pelas respostas e fica a dúvida oq tem de errado com o campo type=text dentro de um echo, não retornar toda a string e sim só até o 1º espaço.

 

Nos testes executados o retorno positivo foi, colocar dentro do type=text que está no html, um echo da variavel em seu valor. RETORNANDO TODA A STRING.

 

Att, Roberto Ody.

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.