Ir para conteúdo
Fórum Script Brasil
  • 0

Como faço para incrementar uma variável?


AlexArt

Pergunta

Olá membro(os)!

Sou novo na programação php e por isso peço sua ajuda.

O objetivo desse código e retornar um número e incrementar a variável $i sempre com +1 a partir de um arquivo .txt.

Acontece que quando o número é = a 9 , o próximo número , que deveria ser 10, retorna para 1, iniciando a contagem a partir do 1.

Já tentei uma série de comando php, condicionais e loops, mas estressei. Admito que não consigo resolver.

A finalidade desses arrays é guardar as strings que vem de uma tabela do banco de dados.

Claro! Eu poderia usar uma tabela temporária. Mas também não me dei bem com ela.

Também é óbvio que pode-se usar while or for, mas preciso que seja passo a passo, ao clique no link ou no botão.

Sempre que quero inserir novos dados na tabela temporária, esta resseta, zerando tudo, até os dados já inclusos.

Acredito que se usar uma sequência de arrays em sessões terei um resultado satisfatório. Os dados Serão mostrados e disponibilizados para impressão.

Como vocês poderão notar, tanto o link quanto o botão submit reinicializa o código.

Agradeço antecipadamente pela atenção.

Código:

<?

// inicia a sessão

session_start();

// Definição de Arrays

$cod = new SplFixedArray(20);

$produto = new SplFixedArray(20);

$unid = new SplFixedArray(20);

$quant = new SplFixedArray(20);

$valor = new SplFixedArray(20);

$codvenda = new SplFixedArray(20);

$data = new SplFixedArray(20);

$lista= new SplFixedArray(20);

// Abrir arquivo ANSI

$char = fopen("i.txt", "r");

// pegar conteúdo do arquivo e converte-o em inteiro

$i = (int)fgetc($char);

// Preencher arrays com qualquer coisa, nesse caso o resultado de $i

$cod[$i]=$i; $produto[$i]=$i; $unid[$i]=$i; $quant[$i]=$i; $valor[$i]=$i; $codvenda[$i]=$i; $data[$i]=$i;

// preencher array de arrays

$lista{$i}=array($cod[$i], $produto[$i], $unid[$i], $quant[$i], $valor[$i], $codvenda[$i], $data[$i]);

// visualizando resultados

echo $i."<br/>";

echo $lista[$i][0]."<br/>";

echo $lista[$i+1][1]."<br/>";

echo $lista[$i+2][2]."<br/>";

print_r($lista{$i})."<br/>";

print_r($lista{$i+1})."<br/>";

print_r($lista{$i+2})."<br/>";

// coloca o array na sessão

$_SESSION["loop"] = $lista{$i};

// fecha o arquivo

fclose($char);

?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">

<head>

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

<title>Untitled Document</title>

</head>

<body>

<form id="form1" name="form1" method="post" action="">

<label>

<input type="submit" name="button" id="button" value="Submit" />

</label>

<label>

<input type="text" name="a" id="a" />

</label>

<p>&nbsp;</p>

</form>

<p><a href="temp.php<?

// abre o arquivo

$char2 = fopen("i.txt", "w");

// grava no arquivo : $i+1

fwrite($char2, $i+1);

// fecha o arquivo

fclose($char2);

?>">loop</a></p>

</body>

</html>

Editado por AlexArt
Link para o comentário
Compartilhar em outros sites

2 respostass a esta questão

Posts Recomendados

  • 0

Acho que você complicou demais, hein. =O

<?php
file_put_contents('i.txt', (int)file_get_contents('i.txt') + 1);
?>

Se o i.txt não existir, vai emitir um warning, mas o arquivo será criado normalmente com o valor 1:

PHP Warning: file_get_contents(i.txt): failed to open stream: No such file or directory in...

[]'s

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,2k
    • Posts
      652k
×
×
  • Criar Novo...