Ir para conteúdo

POWERED BY:

Arquivado

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

MrEd

Gravar as info do select numa variável

Recommended Posts

Eu fiz o seguinte código :

?

include "../inc/conecta.inc";

?>

<html>

<head>

<title>Untitled Document</title>

<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">

</head>

 

<body>

<h3 align="center"><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Sortear

  por:</font></h3>

  <?

  $sql="Select promocao from promocao";

  $resultado=mysql_query($sql,$conexao);

  ?>

<form method="post" action="<?$PHP_SELF;?>">

<table width="84%" border="0" align="center">

  <tr>

    <td width="20%">Promoção:.</td>

    <td><select name="promocao" value="">

    <option>Escolha uma opção</option>

  <?

  while ($linhas=mysql_fetch_array($resultado)) {

       ?>

    <option>

    <?=$linhas["promocao"];?>

    </option><? } ?>

    </select></td>

    <td width="18%">Quantidade:.</td>

    <td width="11%"><select name="qtd" value="">

          <option>1</option>

        <option>2</option>

        <option>3</option>

        <option>4</option>

        <option>5</option>

      </select></td>

    <td width="17%"><input type="submit" name="Submit" value="Sortear"></td>

  </tr>

  <input type="hidden" name="OK" value="1">

</table></form>

<h3 align="center"><font size="2" face="Verdana, Arial, Helvetica, sans-serif">

  <br>

  <br>

  <br>

  <br>

  Os Sorteados são:</font></h3>

  <?

  if($_POST["OK"]) { //abre if

 

  $promocao=$HTTP_POST_VARS["promocao"];

  $qtd=$HTTP_POST_VARS["qtd"];

 

  $sql="Select * from participantes where promocao='$promocao' order by rand() limit ".$qtd." ";

  $resultado=mysql_query($sql,$conexao);

  ?>

<table width="75%" border="0" align="center">

  <tr>

    <td><div align="center"><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Nome</font></div></td>

    <td><div align="center"><font size="2" face="Verdana, Arial, Helvetica, sans-serif">E-Mail</font></div></td>

    <td><div align="center"><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Promoção</font></div></td>

    <td><div align="center"><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Prêmio</font></div></td>

  </tr>

  <?

  while ($linhas=mysql_fetch_array($resultado)) { //abre while

  ?>

  <tr>

    <td><?=$linhas["nome"];?></td>

    <td><?=$linhas["email"];?></td>

    <td><?=$linhas["promocao"];?></td>

    <td><?=$linhas["premio"];?></td>

  </tr>

  <?

  } //fecha while

  } //fecha if do post

$dia=date(d);

$mes=date(m);

$ano=date(Y);

$data=$ano."-".$mes."-".$dia;

?>

</table>

<p align="center"><font size="2" face="Verdana, Arial, Helvetica, sans-serif"></font></p>

</body>

</html>

O que eu quero fazer é o seguinte: Eu quero pegar o valor dos campos que vem do select (em vermelho) e gravar eles nas variáveis $nome, $email, $promocao e $premio para poder usar esses valores e inserir em outra tabela q é sorteados. Alguém poderia me ensinar como eu gravo as info q veio do select nessas variáveis?

 

Grato desde de já

Eduardo

Compartilhar este post


Link para o post
Compartilhar em outros sites

tá e esta parte de seu codigo:

while ($linhas=mysql_fetch_array($resultado)) { //abre while  ?>  <tr>     <td><?=$linhas["nome"];?></td>    <td><?=$linhas["email"];?></td>    <td><?=$linhas["promocao"];?></td>    <td><?=$linhas["premio"];?></td>  </tr>

está mostrando os registros ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Está. Se você ler o codigo vai ver q a pessoa pode escolher a quantidade de pessoas q ela quer q o sistema sorteia, a partir dai, o while vai mostar as pessoas sorteado de acordo com a quantidade. Independente da quantidade q ela escolher, esses dados tem q ser gravados em outra tabela. O problema esta sendo pra mim armazenar estes dados q estao vindo do select. Se eu conseguir fazer isso, colocar eles em outra tabela, é moeleza.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Hum.. eu demorei um pouco pra entender o problema, mas acho que percebi o que você qr fazer.

 

O script dando uma verificada aparenta estar correto, acontece que se você usar: $nome = $linhas["nome"] , fora do while, ele vai utilizar o ultimo valor gravado na variavel (se isso acontecer). Um jeito de resolver, mantendo assim todos os valores, é você gravar num array isso. Desse modo:

 

while($linhas = mysql_fetch_array($resultado))

{

$nome[] = $linhas["nome"]; // aqui ele gera uma array $nome e amarmazenas sequencialmente

$email[] = $linhas["email"]; // todos os valore recebidos podendo ser resgatados por $nome[0] , ...

... (qntas linhas forem)

}

 

Para poder exibir todos você pode fazer:

 

for ($i=0;$i<count($nome);$i++)

{

echo $nome[$i].$email[$i]; // você formata como quiser

...

}

 

Desse modo você pode usar do jeito que quiser no arquivo inteiro.. basta chamar pela array. N sei se era esse o problema. Mas se for tah ai um solucao..

 

ps. n sei se funciona.. n testei.. fiz na hora

Compartilhar este post


Link para o post
Compartilhar em outros sites

Keitaro, valeu pela ajuda é disso mesmo que eu preciso. So q tem um pequeno probleminha, ele nao esta gravando os dados de todos as info do db e so esta gravando a ultima info q vem do db. Mais estamos no caminho certo :D

Compartilhar este post


Link para o post
Compartilhar em outros sites

Hum.. devia ter funcionado...Porque você esta criando uma array, e dessde modo você pode registrar varios valores nele...você fez como eu descrevi? Tipo você tem que resgatar os valore de forma ARRAY.. ou seja.. o primeiro valor é $arr[0]; $arr[1] e assim por diante...Pq se esta apenas exibindo o ultimo valor esta estranho..

Compartilhar este post


Link para o post
Compartilhar em outros sites

Sim, eu tentei, mais da um exemplo aqui pra ver se eu to fazendo certo. E tbm o q esta acontecendo é que no campo email e promoção ele so esta armazenando a primeira letra desses 2 campos...

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.