Jump to content
Fórum Script Brasil
  • 0

Criar Variavel Dinâmica


Khufu

Question

Oi pessoal !

Tenho que gerar um txt a partir de um script em PHP, sendo que eu carrego varias variaveis, porém essas variaveis tem o mesmo nome + um numero($item1,$item2,$item3,...) e é aqui que eu to me embananando. Se eu executo o script mas nem todas as variaveis estão preenchidas ela gera o TXT e deixa uma linha em branco na variavel que esta em branco. Como eu faço pra quando gerar o TXT disconsiderar as variaveis que estão em branco. O BIOC me falou para usar o "fwrite()", mas eu tentei usar e o TXT aparece em branco. Sou meio bizonho em PHP por isso peço ajuda a vocês.

Script :

<?

$fp = fopen("arquivo.txt", "a");

fputs ($fp, "$nome;$email;$fone.\r\n$item1\r\n$item2\r\n$item3\r\n");

fclose($fp);

?>

Supondo que apenas o cabeçalho e o item1 foi preenchido o TXT fica assim :

--------------------------------

Nome;Email;Fone

item1

Nome;Email;Fone

item1

---------------------------------

Quero que ele fique assim :

--------------------------------

Nome;Email;Fone

item1

Nome;Email;Fone

item1

---------------------------------

Agradeço desde já a atenção !

Link to comment
Share on other sites

9 answers to this question

Recommended Posts

  • 0

É isso mesmo !

O usuario tem um formulário onde preenche nome;email;fone e os itens que ele quer. Ele pode tanto preencher todos os itens(total de 20) como pode preencher apenas um. E é esse meu enrrosco o TXT não pode vir com as linhas em branco dos itens que ele NÃO escolheu. Tem que vir apenas as variaveis com conteudo, não pode ficar espaço entre os registros.

Ta gerando assim:

--------------------------------

Nome;Email;Fone

item1

Nome;Email;Fone

item1

---------------------------------

Preciso que ele gere assim :

--------------------------------

Nome;Email;Fone

item1

Nome;Email;Fone

item1

---------------------------------

Agradeço a atenção !

Link to comment
Share on other sites

  • 0

Oi 404 !

Eu tentei usar o "for " mas ta dando erro :

<?

$fp = fopen("arquivo.txt", "a");

for($i=1;$i<=20;$i++){

$item=item&$i;

}

fputs ($fp, "$nome;$email;$fone.\r\n$item\r\n");

fclose($fp);

?>

Não tá funcionado. Onde eu estou errando !

Grato pela atenção !

Link to comment
Share on other sites

  • 0

Oi M@luco !

Fiz com você falo. Mas não funcionou, no TXT ficou assim:

noem;email;fone.

&20

Ai eu tentei fazer assim :

for($i=1;$i<=20;$i++){

$item="$item&$i";

}

Ai o TXT ficou assim:

noem;email;fone.

&1&2&3...até 20

acho que o caminho é por aqui, como eu faço pra usar a condicional que o 404 falou "if(!empty($item#))" ?

grato pela atenção !

Link to comment
Share on other sites

  • 0

Esse & que você tá usando é uma tentativa de concatenar ou você quer que o "&" apareça mesmo???

Porque concatenação em php é com o "." [ponto]

E nesse pequeno pedaço do script que você postou não tem a parte que ele grava no banco de dados... seria nessa parte que você usaria a condicional... cool.gif

Link to comment
Share on other sites

  • 0

Oi 404 !

É eu tava tentando concatenar. Na verdade não é em um DB que estou tentando armazenar e sim em um TXT. Segue abaixo o script completo já com o "for" :

<?

$fp = fopen("pedido.txt", "a");

for($i=1;$i<=20;$i++){

$n="$item.$i";

}

fputs ($fp, " $nome;$email;$fone\r\n$n\r\n");

fclose($fp);

?>

Do jeito que está o TXT fica assim:

nome;email;fone

.20

Só ta retornando o valor maximo de "$i", onde eu coloco a condicional "if(!empty($item#))"

Grato pela atenção

Link to comment
Share on other sites

  • 0

Então... a concatenação ainda tá meio errada...hehehe... é que quando você coloca as coisas entre aspas duplas: "", não precisa usar a concatenação...o problema é que as vezes a gente não pode usar as aspas, principalmente quando quer uma função no meio de uma string...então a gente concatena...

O seu código deveria ficar:

$n = "$item$i"; ou $n = $item.$i;...

Antes de tratar a condicional, você tem que levar em conta da onde estão vindo essas variáveis $itemN... São checkboxes, texts, radios?

Isso é importante...

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



  • Forum Statistics

    • Total Topics
      152.2k
    • Total Posts
      651.8k
×
×
  • Create New...