Ir para conteúdo

POWERED BY:

Arquivado

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

escabelo

alterando registro

Recommended Posts

Mole colega:

 

<?php$palavra_nova = str_replace('10','14','ST10LM1');echo $palavra_nova;?>
Abrs.
Colega,

 

Meu maior problema é que o valor é um código e varia de qde. de caracteres, ou seja, o código ST10LM1, mas pode ser em um novo cadastro um código assim SS2LM1 e eu preciso alterar apenas o que está em negrito, por isso estou quebrando a cabeça. Me desculpe por não ter sido claro em meu em minha explicação.

 

 

Abraços

Compartilhar este post


Link para o post
Compartilhar em outros sites

Me responda o seguinte então:-Você terá os dois primeiros caracteres sempre antes do tal número ? SS ou ST como no exemplo.-Após o número você terá sempre LM1 ou LM ? Bom quero saber se alguma coisa nesta string será fixa para retirar o que quero mudar e depois remontar a string com estes valores novamentes.Se for isso dá para fazer... responda e se ninguém ajudar amanhã pela manhã dou uma olhada.Boa noite.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Me responda o seguinte então:

-Você terá os dois primeiros caracteres sempre antes do tal número ? SS ou ST como no exemplo.

 

-Após o número você terá sempre LM1 ou LM ?

 

Bom quero saber se alguma coisa nesta string será fixa para retirar o que quero mudar e depois remontar a string com estes valores novamentes.

 

Se for isso dá para fazer... responda e se ninguém ajudar amanhã pela manhã dou uma olhada.

 

Boa noite.

Então,

 

Pode ser tb SST, mas depois desses valores sempre virá um valor númerico inteiro, para você entender melhor, irei colocar 4 códigos que irá entender melhor o padrão:

 

ST10LM1

STQ9LM1

STQQ1LM1

S2LM2

 

Os códigos são a junção de opções, cadastradas em bd, sendo que no caso do código ST10LM1:

ST = são os dias da semana ( S = seg e T= ter )

9 = Quantidade em estoque

LM = produto

1= modelo do produto

 

Então quando um usuário faz uma alteração na quantidade do produto em estoque, o código precisa ser alterado, no exemplo o 9 precisa ser mudado para por exemplo 15.

 

Espero ter sido mais claro.

 

 

Abraços e valeu a atenção.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá colega, creio que da pra fazer criando um array do tipo string, mas me diz: é um sistema de cadastro de produtos em Banco de Dados? você terá sempre que alterar os produtos cadastrados. de mais detalhes do seu real problema....

Compartilhar este post


Link para o post
Compartilhar em outros sites

Comunidade,Valeu pela ajuda, mas fiz uma função legal e que atente minhas necessidades em 100%, segue ela para todos verem.Abraços e valeu!<?$string_inicial = "s1i1f4";$busca = "1";$troca = "2";$posicao_primeira = strpos($string_inicial, $busca);$string_final = substr($string_inicial,0, $posicao_primeira) . $troca . substr($string_inicial,($posicao_primeira + strlen($busca)), strlen($string_inicial));echo $string_final;?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Fiz alguma coisa aqui, resolveu... espero que te ajude.

<?/*ST10LM1STQ9LM1STQQ1LM1S2LM2*/  $string = 'S2LM2'; //Valor que está em sua string  $tamanho= strlen($string); //tamanho da string    for($i=0;$i<$tamanho;$i++) //le cada caracter da string    {        if(substr($string,$i,2)=='LM') { //se é igual a LM cai fora do loop          break;        }        $sub = substr($string,$i,1);        if($sub<'10') //se a string é menor que 10, é numero        {          $numero.= $sub;        } else {          $str_inicio.=$sub; //senao faz parte da string inicial        }    }    $str_final=substr($string,$i,2); //string final começa a partir de LM    $i=$i+2;    $str_final.=substr($string,$i,1); //termina a string pegando o número após LM  echo "<br>Sua String Original: $string";  echo "<br>Inicio da String: $str_inicio";  echo "<br>Número ou Quantidade: $numero";  echo "<br>Final da String: $str_final";  $numero=$numero+10; //manipula a quantidade do estoque  $str_new = $str_inicio.$numero.$str_final; //monta novamente a string  echo "<br>Nova String: $str_new";?>

:)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Fiz alguma coisa aqui, resolveu... espero que te ajude.

<?/*ST10LM1STQ9LM1STQQ1LM1S2LM2*/  $string = 'S2LM2'; //Valor que está em sua string  $tamanho= strlen($string); //tamanho da string    for($i=0;$i<$tamanho;$i++) //le cada caracter da string    {        if(substr($string,$i,2)=='LM') { //se é igual a LM cai fora do loop          break;        }        $sub = substr($string,$i,1);        if($sub<'10') //se a string é menor que 10, é numero        {          $numero.= $sub;        } else {          $str_inicio.=$sub; //senao faz parte da string inicial        }    }    $str_final=substr($string,$i,2); //string final começa a partir de LM    $i=$i+2;    $str_final.=substr($string,$i,1); //termina a string pegando o número após LM  echo "<br>Sua String Original: $string";  echo "<br>Inicio da String: $str_inicio";  echo "<br>Número ou Quantidade: $numero";  echo "<br>Final da String: $str_final";  $numero=$numero+10; //manipula a quantidade do estoque  $str_new = $str_inicio.$numero.$str_final; //monta novamente a string  echo "<br>Nova String: $str_new";?>

;)
Muito boa sua função, Parabéns!!! Fiz alguns testes aqui e funcionou perfeitamente.Dê uma olhadinha na função que fiz tb, está em minha úçtima mensagem.Abraços.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pô eu não tinha visto que você já tinha resolvido...Se a sua funciona então está bem melhor que a minha, pois tem menos codigo.Mas valeu a tentativa. ;)

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.