Jump to content


Photo

Enviar Array Para Outra Página


  • Faça o login para participar
14 replies to this topic

#1 anave

anave

    Normal

  • Usuários
  • 107 posts
  • Sexo:Masculino
  • Localidade:Salvador

Posted 27/01/2010, 11:52

Pessoal, tenho 2 arquivo em php, um chamado cad_resultado1.php onde eu uso uma array para guardar resultados de exames, EXEMPLO:

CODIGO EXAME RESULTADO
001 ACIUDO xxxxxx
010 COLESTEROL HDL xxxx


Esses resultados são cadastrados em uma base de dados e uso a seguine rotina para captura-los

include("conexao.php");

$codigo_cat = $_GET['codigo'];
$sql="select * from categoria where codigo_cat='$codigo_cat'";
$rs=mysql_query($sql) or die ("Erro na consulta de CATEGORIA ".mysql_error());
$linha=mysql_fetch_array($rs);

$descriscao_cat=$linha['descriscao_cat'];

echo $descriscao_cat;

$procura="select * from exames where codigo_cat_exa='$codigo_cat' order by descriscao_exa";
$executa=mysql_query($procura) or die ("Erro ao acessar tabela de EXAMES. ".mysql_error());
$contador = 0;


while ($linha=mysql_fetch_array($executa)){


$codigo_exa=$linha['codigo_exa'];
$descriscao_exa=$linha['descriscao_exa'];
$vetor=array("codigo_exa"=>$codigo_exa,"descriscao_exa"=>$descriscao_exa);
$contador ++;

echo "<tr>
<td>$vetor[codigo_exa]</td>
<td>$vetor[descriscao_exa]<input type='text' name='$descriscao_exa' id='resultado'></td>
</tr>
";

}

?>
<tr>


<td colspan="2"><center>


<input type="hidden" name="codigo_cat" value="<?php echo $codigo_cat ?>">
<input type="submit" name="enviar" value="enviar">
<input type="button" value="cancelar" onclick="java script _linenums:0'><form name="cad_resultado1" method="post" action="inserir_resultado.php"><?php

include("conexao.php"); $codigo_cat = $_GET['codigo']; $sql="select * from categoria where codigo_cat='$codigo_cat'"; $rs=mysql_query($sql) or die ("Erro na consulta de CATEGORIA ".mysql_error()); $linha=mysql_fetch_array($rs); $descriscao_cat=$linha['descriscao_cat']; echo $descriscao_cat; $procura="select * from exames where codigo_cat_exa='$codigo_cat' order by descriscao_exa"; $executa=mysql_query($procura) or die ("Erro ao acessar tabela de EXAMES. ".mysql_error()); $contador = 0; while ($linha=mysql_fetch_array($executa)){

$codigo_exa=$linha['codigo_exa']; $descriscao_exa=$linha['descriscao_exa']; $vetor=array("codigo_exa"=>$codigo_exa,"descriscao_exa"=>$descriscao_exa); $contador ++; echo "<tr> <td>$vetor[codigo_exa]</td> <td>$vetor[descriscao_exa]<input type='text' name='$descriscao_exa' id='resultado'></td> </tr> ";

}

?><tr>[indent=1] <td colspan="2"><center> [indent=1] <input type="hidden" name="codigo_cat" value="<?php echo $codigo_cat ?>"> <input type="submit" name="enviar" value="enviar"> <input type="button" value="cancelar" onclick="java script: window.close();">

</td></center>

</tr></form>

Como observarão tenho um array $vetor[] eu preciso salva-lo quando o usuário clicar no botão enviar, meu problema é como receber o valor do array $vetor[codigo_exa] no arquivo inserir_rsultado.php(arquivo onde faço as inserções) e como faço para gravar os valores ?

Edição feita por: Dudu, 28/01/2010, 00:24.


#2 Snippet

Snippet

    Novato no fórum

  • Usuários
  • 5 posts
  • Sexo:Não informado

Posted 27/01/2010, 12:30

Nãi li o post, mas deixo a dica para você fazer uma busca sobre serialize
<!-- Deus não escolhe os capacitados mas capacita os escolhidos. -->

#3 Dudu

Dudu

    Viva la vida

  • Usuários
  • 1437 posts
  • Sexo:Masculino
  • Localidade:Uberlândia - MG
  • Interesses:PHP

Posted 28/01/2010, 00:23

Pode salvar o array em uma session.

Até mais.

Fórum WMO - Equipe de Desenvolvimento / Banco de Dados - Moderador


Twitter: HostCheap


#4 Maykel Esser

Maykel Esser

    Super Veterano

  • Usuários
  • 1536 posts
  • Sexo:Masculino
  • Localidade:Curitiba - PR

Posted 29/01/2010, 08:28

vc serializa o array (é como transformar em uma string)... passa por session, e quando resgatar, usa o unserialize()...

batata (y)

Se este post lhe ajudou, ajude o fórum também. Use a reputação de mensagens! add.png


#5 anave

anave

    Normal

  • Usuários
  • 107 posts
  • Sexo:Masculino
  • Localidade:Salvador

Posted 29/01/2010, 12:34

Pessoal, fiz dessa forma:
no 1º arquivo:

$_SESSION['codigo']=array('codigo_exa'=>$codigo_exa, 'descriscao_exa'=>$descriscao_exa);

no arquivo que recebe os valores fiz :
foreach ($_SESSION['codigo']['codigo_exa'] as $p => $c)
{
echo "<li>$p - $c</li>";
}

Mas está dando o seguinte erro:
Warning: Invalid argument supplied for foreach() in C:\wamp\www\exames\inserir_resultado.php on line 15

#6 Willian Gustavo Veiga

Willian Gustavo Veiga

    12 Horas

  • Usuários
  • 175 posts
  • Sexo:Masculino

Posted 29/01/2010, 12:44

Boa tarde, tudo bem?

Você está tentando percorrer o array que está em $_SESSION['codigo']['codigo_exa']. Este array não existe. Dentro de $_SESSION['codigo'] existe um array.

Faça da seguinte maneira:

foreach ($_SESSION['codigo'] as $p => $c)
{
echo "<li>$p - $c</li>";
}
Qualquer dúvida, poste novamente.
Um abraço.
Posted Image

#7 anave

anave

    Normal

  • Usuários
  • 107 posts
  • Sexo:Masculino
  • Localidade:Salvador

Posted 29/01/2010, 13:41

Willian, dessa forma ele só está pegando o ultimo registro do vetor, exemplo:
código descricao
001 aaaa
002 bbb
003 ccc
Aqui ele só está pegando o ultimo (003 - ccc)
Minha intensão é gravar todos os valores do vetor num banco de dados.

#8 Paulo Freitas

Paulo Freitas

    ××××××× LRU #456504 ××××××× ××××××× LRM #364686 ×××××××

  • Ex-Admins
  • 5612 posts
  • Sexo:Masculino
  • Localidade:Campinas - SP

Posted 29/01/2010, 16:38

Não entendi ainda onde $_SESSION e serialize() entram na dúvida... :huh:

Como observarão tenho um array $vetor[] eu preciso salva-lo quando o usuário clicar no botão enviar, meu problema é como receber o valor do array $vetor[codigo_exa] no arquivo inserir_rsultado.php(arquivo onde faço as inserções) e como faço para gravar os valores ?

Seu código está muito confuso. Tem muita duplicidade e complexidade e pouca objetividade. :ponder:

Esta parte está incompreensível:

echo "<tr> 
 <td>$vetor[codigo_exa]</td>
 <td>$vetor[descriscao_exa]<input type='text' name='$descriscao_exa' id='resultado'></td>
 </tr> 
 ";
Qual a intenção real de todo o formulário, objetivamente? Primeiro é preciso traçar os objetivos, o código vem por último.

[]’sAté mais

#9 anave

anave

    Normal

  • Usuários
  • 107 posts
  • Sexo:Masculino
  • Localidade:Salvador

Posted 01/02/2010, 09:02

Paulo Freitas.
Estou fazendo um sistema para cadastrar o resultado de exames e ele funciona assim:
1º Tenho uma tabela para cadastro de categorias de exames, que podem ser: COPROSCOPIA, URUANALISE, HEMATOLOGIA entre outros.
2º Tenho uma tabela para cadastro de tipos de exames, que podem ser: MEMATOLOGIA, LEUCOCITOS, SUMARIO DE URINA entre outros.
OBS: Os exames estão amarrados à categoria de exames.

3º Tenho uma tabela para cadastro de resultado de exames, que funciona assim: O usuário escolhe a CATEGORIA DE EXAMES e listo para ele todos os exames relacionados a categoria escolhida, quando ele terminar a digitação clica no botão INSERIR para fazer a inserção dos dados:
- O arquivo onde ele faz a digitação chama-se: RESULTADO.PHP
- Ao clicar no botão de INSERIR é direcionado para o arquivo INSERIR_RESULTADO.PHP q é onde eu faço a rotina de inserção.

A rotina que vc postou que ñ está compreendendo é para colocar na tela o código do exame, descrição e um input para digitar o resultado do exames, exemplo:
CÓDIGO DESCRISCAO RESULTADO
0001 XXXXXXXXXXX RRRRRRRRRRRRR
0003 AAAAAAAAAAA EEEEEEEEEEEEE.

Só que a maneira que encontrei para o usuario gravar todos os resultado em um só click foi armazenar todos os resultados em um vetor.

Deu para entender agora ? Se tiver uma idéia melhor agradeço será bem vinda.

#10 Paulo Freitas

Paulo Freitas

    ××××××× LRU #456504 ××××××× ××××××× LRM #364686 ×××××××

  • Ex-Admins
  • 5612 posts
  • Sexo:Masculino
  • Localidade:Campinas - SP

Posted 01/02/2010, 10:15

Hmm, seria algo mais ou menos assim:

resultado.php
...

print '<tr>';
printf(' <td>%s</td>', $vetor['codigo_exa']);
printf(' <td>%s <input type="text" name="exames[%s]" /></td>', $vetor['descricao_exa'], $vetor['codigo_exa']);
print '</tr>';

...
inserir_resultado.php
...

if (isset($_POST['exames'])) {
    foreach ($_POST['exames'] as $codigo => $resultado) {
        mysql_query(sprintf("UPDATE exames SET resultado_exa = '%s' WHERE codigo_exa = %s", $resultado, $codigo));
    }
}

...
[]’sAté mais

#11 anave

anave

    Normal

  • Usuários
  • 107 posts
  • Sexo:Masculino
  • Localidade:Salvador

Posted 01/02/2010, 12:03

Seria sim, vou tentar mudar a função para usar o INSERT.....

Agora, seria possível vc explicar a forma que vc usou nas duas rotinas ?

Mudando de UPDATE para INSERT ficaria assim ?
Testei mas ñ gravou nada.


if (isset($_POST['exames'])) {
foreach ($_POST['exames'] as $codigo => $resultado) {
mysql_query(sprintf("INSERT INTO resultado1 (tipo_exame, resultado_exame) values ( $codigo, $resultado)"));

}
}

Nessa rotina:
if (isset($_POST['exames'])) {
NÃO ESTÁ ENTRANDO AKI.

foreach ($_POST['exames'] as $codigo => $resultado) {
mysql_query(sprintf("UPDATE exames SET resultado_exa = '%s' WHERE codigo_exa = %s", $resultado, $codigo));
}
VEM DIRETO P AKI.
}

Paulo Freitas, já estou quase conseguindo.

#12 Paulo Freitas

Paulo Freitas

    ××××××× LRU #456504 ××××××× ××××××× LRM #364686 ×××××××

  • Ex-Admins
  • 5612 posts
  • Sexo:Masculino
  • Localidade:Campinas - SP

Posted 01/02/2010, 12:15

Seria sim, vou tentar mudar a função para usar o INSERT.....

Putz, de onde eu tirei o UPDATE? :blink:

Agora, seria possível vc explicar a forma que vc usou nas duas rotinas ?

...

mysql_query(sprintf("INSERT INTO resultado1 (tipo_exame, resultado_exame) values ( $codigo, $resultado)"));

Quase. Algo assim - depende do tipo de campo que você está usando:

mysql_query(sprintf("INSERT INTO resultado1 (tipo_exame, resultado_exame) values ('%s', '%s')",
    mysql_real_escape_string($codigo), mysql_real_escape_string($resultado)));

Nessa rotina:
if (isset($_POST['exames'])) {
NÃO ESTÁ ENTRANDO AKI.

Você precisa o nome dos inputs do arquivo resultado.php para o modelo que eu citei: exames[$codigo_exa]

Ele cria o array $_POST['exames'] na página inserir_resultado.php, onde cada índice representa o código do exame e o valores os respectivos resultados dos mesmos.

[]’sAté mais

#13 anave

anave

    Normal

  • Usuários
  • 107 posts
  • Sexo:Masculino
  • Localidade:Salvador

Posted 01/02/2010, 12:51

Paulo Freitas, funcionou assim:
mysql_query(sprintf("INSERT INTO resultado1 (tipo_exame, resultado_exame) values ('%s', '%s')",
mysql_real_escape_string($codigo), mysql_real_escape_string($resultado)));

Agradeço muito a sua ajuda, lhe confesso que pesquisei bastante na NET, em outros foruns no orkut e ñ tinha conseguido.
O mais perto que cheguei foi usando vetor e session_start.

Agradeço mesmo sua ajuda...

Cara, sempre q deixo alguma dúvida nos foruns pergunto se alguém indica um livro, apostilas ou até mesmo um curso on-line, as pessoas respondem sempre minhas dúvidas mas ñ indicam nada...
Sempre pergunto pq sou novo programando e vejo q ainda tenho muito a conhecer e sei q só com trinanamento e leitura conseguirei aprender.

Mais uma vez agradeço a sua ajuda.

#14 Paulo Freitas

Paulo Freitas

    ××××××× LRU #456504 ××××××× ××××××× LRM #364686 ×××××××

  • Ex-Admins
  • 5612 posts
  • Sexo:Masculino
  • Localidade:Campinas - SP

Posted 01/02/2010, 13:21

Cara, sempre q deixo alguma dúvida nos foruns pergunto se alguém indica um livro, apostilas ou até mesmo um curso on-line, as pessoas respondem sempre minhas dúvidas mas ñ indicam nada...
Sempre pergunto pq sou novo programando e vejo q ainda tenho muito a conhecer e sei q só com trinanamento e leitura conseguirei aprender.

Eu recomendo o manual. Mas não uma leitura aleatória, e sim uma leitura ordenada, capítulo a capítulo. Te garanto que traz resultados muito bons. Mas é como tu disse: todo aprendizado precisa de prática. É ler/praticar, ler/praticar, ler/praticar... O manual pode ser explorado por aqui: http://docs.php.net/manual/pt_BR/

Dias atrás li no Twitter um artigo muito interessante sobre aprendizado em programação. Se tu souber inglês, a leitura é recomendada: http://writing.bryanwoods4e.com/

[]’sAté mais

#15 anave

anave

    Normal

  • Usuários
  • 107 posts
  • Sexo:Masculino
  • Localidade:Salvador

Posted 01/02/2010, 15:14

vlw mesmo pela dica.

Quanto ao inglês, realmente ñ sou bom, mas vou traduzi-la.




1 user(s) are reading this topic

0 membro(s), 1 visitante(s) e 0 membros anônimo(s)

IPB Skin By Virteq