Ir para conteúdo

POWERED BY:

Arquivado

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

Rafael Rocknroll

[RESOLVIDO] com array e post

Recommended Posts

E aeh pessoal! To tendo alguns problemas e dúvidas com arrays e post.

 

Primeiro uma visão da situação:

 

Tenho que implantar um script em PHP que faz uma pesquisa no Oracle me trazendo a descrição e o valor que a pessoa esta devendo. Depois preciso passar todas essas informações para outro script que vai gerar meu boleto eletrônico. O problema é que não estou conseguindo passar essas informações que vem de um array, gostaria de saber se alguém pode me ajudar nisso!

 

<?php
// Recebe as variaveis do formulario.
$crm = $_POST['textfield'];
$cpf = $_POST['textfield2'];

// Conecta com o banco de dados.
require '../conexao/conecta.inc';

// Declara a SQL de pesquisa.
$sql = "SELECT DISTINCT S.NM_SOLICITANTE, S.NU_CPF_CGC, M.NU_CRM
	FROM SOLICITANTE S, MEDICO M
	WHERE(M.ID_SOLICITANTE = S.ID_SOLICITANTE)
	AND (NU_CRM = $crm)
	";

// Declara a SQL de pesquisa.
$sql_1 = "SELECT DISTINCT DS_DEBITO, VR_DEBITO, JUROS, MULTA, TOTAL
	FROM V_PR_DEBPF
	WHERE (NU_CRM = $crm)
	ORDER BY DS_DEBITO DESC
	";

// Verifica a integridade da conexão com banco de dados e da estrutura sql.
$parse = OCIParse($conecta, $sql) or die ("Erro");

// Verifica a integridade da conexão com banco de dados e da estrutura sql.
$parse_1 = OCIParse($conecta, $sql_1) or die ("Erro");

// Executa a conexão e a SQl.
OCIExecute($parse) or die ("Erro");

// Executa a conexão e a SQl.
OCIExecute($parse_1) or die ("Erro");	

// Gera o loop e exibe na tela os resultados.
while (OCIFetchInto ($parse, &$arr, OCI_ASSOC+OCI_RETURN_NULLS)) 
	{
	} // Fim do WHILE.

if ($cpf == $arr['NU_CPF_CGC'] && $crm == $arr['NU_CRM']) // Verifica se o CRM e o CPF são iguais no Banco de dados.
	{	
		echo $arr['NM_SOLICITANTE'] . ' - ' . $arr['NU_CPF_CGC'] . ' - ' . $arr['NU_CRM']; // Imprime o nome, CPF e CRM
		echo '<br />';
		
		// Gera o loop e exibe na tela os resultados.
		$cb = 1; 
		while (OCIFetchInto ($parse_1, &$arr_1, OCI_ASSOC+OCI_RETURN_NULLS)) 
			{	// Exibe todos os serviços que podem ser pagos.
				echo "<input type=checkbox name=checkbox$cb value=" . $arr_1['TOTAL'] . " />" . $arr_1['DS_DEBITO'] . "";
				$cb ++;
				echo '<br />';
			} // Fim do WHILE.
	}
else
	{
		echo "CRM ou CPF invalido";
	}
?>

Meu problema esta em como passar as informações geradas pelo WHILE para o outro script. Já pensei em usar SESSIONS, mas só sei fazer do tipo "uma informação para uma variável" e não como "varias informações(array) para uma variável"

 

Agradeço desde de agora qualquer ajuda.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Como não conheço a estrutura da sua tabela, segue um exemplo para ser adaptado:

 

Logo no início do code, antes de tudo, inicie as sessões:

PHP

 

Antes de iniciar o while, defina a variável que será nosso array:

PHP
$myArray = array();

 

Dentro do while, atribua os valores pegos da tabela ao array:

PHP
$myArray['NU_CPF_CGC'] = $arr['NU_CPF_CGC'];

        $myArray['CPF'] = $arr['CPF'];

        $myArray['NOME'] = $arr['NOME'];

        $myArray['DIVIDA'] = $arr['DIVIDA'];

 

Assim que terminar o while, crie uma sessão e defina a variável $myArray como valor da mesma:

PHP
$_SESSION['DADOS'] = $myArray;

 

Agora que você já tem o array gravado na sessão, pode utilizar em qualquer parte do site (outras páginas) até o momento que a sessão expirar, seja qual for o motivo:

PHP
echo $_SESSION['DADOS']['NOME'];

 

Se colocar essa última linha em alguma outra página, irá exibir o nome do cliente.

 

Arrays em PHP

Mais sobre arrays

Sobre sessões em php

Compartilhar este post


Link para o post
Compartilhar em outros sites

Como não conheço a estrutura da sua tabela, segue um exemplo para ser adaptado:

 

Logo no início do code, antes de tudo, inicie as sessões:

PHP

 

Antes de iniciar o while, defina a variável que será nosso array:

PHP
$myArray = array();

 

Dentro do while, atribua os valores pegos da tabela ao array:

PHP
$myArray['NU_CPF_CGC'] = $arr['NU_CPF_CGC'];

        $myArray['CPF'] = $arr['CPF'];

        $myArray['NOME'] = $arr['NOME'];

        $myArray['DIVIDA'] = $arr['DIVIDA'];

 

Assim que terminar o while, crie uma sessão e defina a variável $myArray como valor da mesma:

PHP
$_SESSION['DADOS'] = $myArray;

 

Agora que você já tem o array gravado na sessão, pode utilizar em qualquer parte do site (outras páginas) até o momento que a sessão expirar, seja qual for o motivo:

PHP
echo $_SESSION['DADOS']['NOME'];

 

Se colocar essa última linha em alguma outra página, irá exibir o nome do cliente.

 

Arrays em PHP

Mais sobre arrays

Sobre sessões em php

Gutto valeu mesmo cara, aqui funcionou certinho! http://forum.imasters.com.br/public/style_emoticons/default/natal_w00t.gif

Abraços

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olhando o code com calma, ví que não precisa desse while, já que os dados sempre serão de apenas um cliente.

Desculpa Gutto não entendi o que você quis dizer. tenho dois Whiles um para buscar na tabela 1 o nome, cpf e o número de registro da pessoa. E outro para buscar na tabela 2 os valores que ele deve e a descrição do serviço. Coloquei os dois whiles para popular das variáveis diferentes. Sabe outro jeito para fazer isso?

Compartilhar este post


Link para o post
Compartilhar em outros sites

O primeiro while é desnecessário. Alí, já que você vai pegar os dados de apenas um cliente, não precisa de loop. Já o segundo pode permanecer.

 

O primeiro while é desnecessário. Alí, já que você vai pegar os dados de apenas um cliente, não precisa de loop. Já o segundo pode permanecer.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tente retirar o while e colocar:

PHP
$dados1 = ociresult($parse,'Coluna1Tabela');//Nome

$dados2 = ociresult($parse,'Coluna2Tabela');//CPF

$dados3 = ociresult($parse,'Coluna3Tabela');//Outro campo..

 

O ociresult retorna o valor de uma coluna numa consulta.

 

http://www.imasters.com.br/artigo/313/orac...cle_-_parte_01/

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olha naum sei se fiz certo mas não funcionou aqui.

 

<?php
session_start();
// Recebe as variaveis do formulario.
$crm = "910";

// Conecta com o banco de dados.
require '../conexao/conecta.inc';

// Declara a SQL de pesquisa.
$sql = "SELECT DISTINCT S.NM_SOLICITANTE, S.NU_CPF_CGC, M.NU_CRM
	FROM SOLICITANTE S, MEDICO M
	WHERE(M.ID_SOLICITANTE = S.ID_SOLICITANTE)
	AND (NU_CRM = $crm)
	";

// Declara a SQL de pesquisa.
$sql_1 = "SELECT DISTINCT DS_DEBITO, VR_DEBITO, JUROS, MULTA, TOTAL
	FROM V_PR_DEBPF
	WHERE (NU_CRM = $crm)
	ORDER BY DS_DEBITO DESC
	";

// Verifica a integridade da conexão com banco de dados e da estrutura sql.
$parse = OCIParse($conecta, $sql) or die ("Erro");

// Verifica a integridade da conexão com banco de dados e da estrutura sql.
$parse_1 = OCIParse($conecta, $sql_1) or die ("Erro");

// Executa a conexão e a SQl.
OCIExecute($parse) or die ("Erro");

// Executa a conexão e a SQl.
OCIExecute($parse_1) or die ("Erro");	

// Gera o loop e exibe na tela os resultados.
$dados1 = ociresult($parse,'NM_SOLICITANTE');//Nome
$dados2 = ociresult($parse,'NU_CPF_CGC');//CPF
$dados3 = ociresult($parse,'NU_CRM');//Outro campo..
 // Fim do WHILE.

// Gera o loop e exibe na tela os resultados.
while (OCIFetchInto ($parse_1, &$arr_1, OCI_ASSOC+OCI_RETURN_NULLS)) 
	{
	$myarray[0][total] = $arr_1['TOTAL'];
	$myarray[0][debito] = $arr_1['DS_DEBITO'];				
	} // Fim do WHILE.
$_SESSION["teste"] = $myarray;

echo $dados1;
echo '<br />';
echo $dados2;
echo '<br />';
echo $dados3;
?>

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.