Ir para conteúdo

Arquivado

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

Alaucho

[Resolvido] Passar vários cadastros para outra página

Recommended Posts

E ai pessoal, beleza?

 

Buenas, venho pedir um auxílio de vocês, para uma questão que talvez possa ser simples, mas que simplesmente me deu um branco e travei. Tenho uma página, onde eu busco 3 dados (Nome, usuário e e-mail) de todos os funcionários no banco de dados, e mostro na tela através do "form". Até ai, beleza, está funcionando.

 

A idéia agora é quando clicar no botão, ele pegue todos esses dados e passe para uma outra página, que irá salvá-los em outro banco. Eu pensei em session e array, mas travei em como vou fazer isso. O código da página está assim atualmente:

 

   echo "<body>";
   echo "<form action='session.php' method='post'>";
   while ($row = mysql_fetch_array($query)) 
   {

	if ($cont % 2 == 0)
	{
		$cor = "#f2f2f2";
	}
	else
	{
		$cor = "#ffffff";
	}

       $_SESSION['user_name'] = $row['user_name'];
       $_SESSION['user_login'] = $row['user_login'];
       $_SESSION['user_email'] = $row['user_email'];

       echo "<table align='center' width='700' height='50'>";
   	echo "<tr bgcolor='".$cor."'>";
   	echo "<td>".$row['user_name']."</td>";
   	echo "<td>".$row['user_login']."</td>";
       echo "<td>".$row['user_email']."</td>";
   	echo "</tr>";
       echo "</table>";
   	$cont = $cont + 1;
       $_SESSION['cont'] = $cont;

   }
   echo "<center>";
   echo "<input type='submit' value='Importar' />";
   echo "</center>";
   echo "</form>";
   echo "</body>";

 

Já tentei umas loucuras aqui, mas nada deu certo. Se tiverem uma idéia, agradeço.

 

Abs

Compartilhar este post


Link para o post
Compartilhar em outros sites

faz um formulario para cada registro.

e deixa esses dados em inputs type="hidden"

 

deixe apenas o botão submit de cada form a mostra.

 

pronto. O botão vai te fazer enviar o POST, e daí em diante você faz oq tem que fazer.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Mas nesse caso, pelo que entendi, teria que criar um form para cada resultado obtido, e neles deixar a vista apenas o botão?

Pq no meu caso, tenho 80 e poucos registros para fazer isso, então cada um teria de ter seu form?

 

Desculpa se não compreendi a idéia, mas se tiver um exemplo simples do que você quis dizer agradeço. Daí eu me baseio, e faço o resto. ;)

 

Abs

Compartilhar este post


Link para o post
Compartilhar em outros sites

Sim, exatamente oq você entendeu.

 

para isso, basta:

 

        echo "<table align='center' width='700' height='50'>";
       echo "<tr bgcolor='".$cor."'>";
       echo "<td>".$row['user_name']."</td>";
       echo "<td>".$row['user_login']."</td>";
       echo "<td>".$row['user_email'].'
              <form action="" method="post">
                             <input type="hidden" .. />
                             <input type="submit" name="ok" value="ok" />
              </form>
      </td>';
       echo "</tr>";
       echo "</table>";
       $cont = $cont + 1;

e pronto.

pelo que entendi, isso resolve o teu problema.

Compartilhar este post


Link para o post
Compartilhar em outros sites

De fato, acredito que resolva pelo que vi. Terei de testar depois, pois não estou aqui com os arquivos.

Mas tipo, haveria alguma outra forma menos "trabalhosa", mais prática digamos assim, ao invés de ter de criar 80 e poucos forms e confirmar em todos os buttons, para envio?

Eu pensei em algo como: armazenar os valores em 3 arrays, um para cada campo (nome, login e email), e passar esses valores através de session.

O problema é que não sei como poderia armazenar na sessão esse array, nem como eu imprimiria os dados na outra página. Na real, não sei se isto é possível, mas foi uma solução que me veio a cabeça, mas que não consegui implementar.

 

Se tiver uma idéia de como fazer isso...

 

Abs

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pelo que eu entendi você simplesmente quer adicionar outra funcionalidade a sua página.

Claro,isso poderia ser obtido através de 2 páginas distintas atuando sobre o mesmo cojunto de dados,mas isso normalmente se chama gambiarra.

O ideal no seu caso seria separar as funcionalidades em comum das duas páginas em módulos,funções e classes de forma a reduzir a retundancia entre páginas e adicionar as funcionalidades requeridas em ambas.

Pelo que eu entendi você tem básicamente o seguinte:

<form method="POST" action="...">
   Nome:<input type="text" name="nome" />
   <input type="submit" value="Enviar" />
</form>

pagina.php

<?php
/*funcionalidades da pagina.php baseadas no conjunto de dados {nome}*/
?>

pagina1.php

<?php
/*funcionalidades da pagina1.php baseadas no conjunto de dados {nome}*/
?>

E quer que quando a página "pagina.php" for requerida,as funcionalidades da página "pagina1.php" sejam também requeridas.

Você poderia é claro fazer:

<?php
require 'pagina1.php'; //o cojunto de dados se faz disponiveis aos includes tambem
/*funcionalidades da pagina.php baseadas no conjunto de dados {nome}*/
?>

Mas não é o ideal.

Se a página for externa,pode passar os dados a ela através do modo que eles recebem o input,seja esse cookies,a url ou uma requisição POST com os dados,mas tenho quase certeza que não é o caso.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bem, na real o que eu preciso é pegar todos os resultados que retornam do banco, no caso "nome", "login" e "email", e gravar em um outro banco. No caso, tem algo em torno de 85 cadastros, cada um com esses 3 dados. Eu precisaria pegar, gravar tudo num array ou numa sessão, e passar para a outra página, e nessa página, puxar esses dados e salvar no banco.

 

O problema é que não tô conseguindo gravar mais do que um dado por vez. Claro, tem a solução passada anteriormente, de criar um form para cada, mas dai teria que confirmar 1 por um pelo que entendi, que é o que eu já faço atualmente.

 

A dúvida maior do momento é: eu gravo os dados em um array na página que pega esses dados; depois eu teria que salvar em uma session, e dai imprimir os valores dessa session na próxima página. Mas como eu faria para salvar os dados de um array na session, e depois imprimir de volta?

Compartilhar este post


Link para o post
Compartilhar em outros sites

você pode criar direto com o retorno da consulta, um comando SQL para inserir os dados no outro banco.

<?php

$SQL = 'INSERT INTO tabela ( user_name , user_login , user_email ) VALUES ';

while($row = mysql_fetch_assoc($query))
{
$SQL .= "( {$row['user_name']} , {$row['user_login']} , {$row['user_email']} ), ";
}

$SQL = substr( $SQL , 0 , -1 );

mysql_query( $SQL , $conn );

?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Vlw pessoal pela dica de todos.

 

Consegui resolver aqui. Usei array mesmo, e a dicas do Kratos, fazendo tudo na mesma página.

 

Abraços

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.