[****RESOLVIDO****] - Dúvida de como utilizar isset({rs[0][0]})

Bom dia pessoal.
Tenho o seguinte código abaixo:

$check_sql = 	("
			    SELECT
				espe.nome_especialidade,
			    COUNT(*)
			    FROM
			        especialidade espe INNER JOIN agenda_medica agen ON espe.idEspecialidade = agen.ID_ESPECIALIDADE
			    WHERE 
			        (agen.COMPARECEU = '1')
			    AND
			       YEAR(DATA_CONSULTA) = YEAR(CURDATE())
			    GROUP BY
			        espe.nome_especialidade
			");

sc_lookup(rs, $check_sql);

if (isset({rs[0][0]}))   
{
	$nome_especialidade1 = {rs[0][1]};
	$nome_especialidade2 = {rs[1][1]};
        sc_set_global($nome_especialidade1);
	sc_set_global($nome_especialidade2);
 

}else...
.
.
.
.
.
sc_redir('../lib_gra/pia_consulta.php?nome_especialidade1=$nome_especialidade1&nome_especialidade2=$nome_especialidade2',"", "_parent");

Acontece que preciso enviar os dados da variável $nome_especialidade1 e $nome_especialidade2 para uma aplicação externa até ai tudo bem.
Só que preciso transformar isso em uma forma dinâmica já que atualmente tenho no banco de dados MYSQL apenas 2 Especialidades cadastradas hoje mas amanhã pode ser 10 ou 20 como fazer de uma forma dinâmica. Já que preciso enviar isso para outra aplicação externa.
E na aplicação destino tenho que pegar vai GET que por sua vez tem que ser dinâmico também já pode ser “n” variáveis que precisam ser capturadas.
Não sei se tem jeito de fazer isso.

Att…

Acredito que você terá que criar um laço (For) dentro dessa conição (If), onde o contador vai ser de acordo com o numero de Especialidades.

Celso,
Passe via post os dados separados por vírgula em um campo tipo hidden.
Na sua aplicação externa vc lê esses dados e separa novamente.
[]s

Allan bom dia.

No SC estou utilizando uma aplicação Tipo Blank.

sc_redir(’…/lib_grafico/pia_especialidade.php?nome_especialidade1=$nome_especialidade1&nome_especialidade2=$nome_especialidade2&…

E na aplicação que recebe os dados:
.
.
.
$nome_especialidade1 = $_GET[“nome_especialidade1”];
$nome_especialidade2 = $_GET[“nome_especialidade2”];
.
.
.

Ai é que está os dados estão sendo transferidos normalmente do SC para app “aplicação” destino.
Acontece que como fazer isso de forma dinâmica.
No SC tenho que verificar quais especialidades estão no banco e depois passar via post para app destino.
Tudo começa no SC como checar no banco quais especialidades estão cadastradas criar variável para cada uma delas de acordo com seu nome transformar elas em variável global para depois enviar elas para app destino.
Com certeza terei que usar (For, If…).
Tenho os ingredientes mas não sei como fazer o prato do dia, acho que terei que estudar mais com a vovó Palmeirinha…

Celso,
Tenho uma aplicação que faz algo Semelhante.
Hoje A tarde quando chegar ao trabalho eu te envio.
[]s

Valeu Allan muito obrigado.

Att…

Celso,
Desculpe a demora, mas meu tempo foi curto hoje a tarde.
Fiz algumas adaptações na aplicação que uso para atender a tua necessidade. Vamos lá:
Na aplicação do SC vc coloca o seguinte código (ajuste de acordo com teu caso)

[code]$check_sql = ("
SELECT
espe.nome_especialidade
FROM
especialidade espe INNER JOIN agenda_medica agen ON espe.idEspecialidade = agen.ID_ESPECIALIDADE
WHERE
(agen.COMPARECEU = ‘1’)
AND
YEAR(DATA_CONSULTA) = YEAR(CURDATE())
GROUP BY
espe.nome_especialidade
");

sc_lookup(rs, $check_sql);

if (isset({rs[0][0]})) {
// Aqui vc cria um string com as especialiades separadas por “;”
$nomeEspecialidade = “”;
foreach ({rs} as $especialidade){
$nomeEspecialidade .= $especialidade[0].";";
}
// remove o último “;”
$nomeEspecialidade = substr($nomeEspecialidade,0,-1);
echo $nomeEspecialidade;
// Cria um form com um campo hidden para armazenar essa string
echo “<form name=“Form1” action=“http://ulr_da_sua_aplicacao” method=“POST”>”;
echo “<input type=“hidden” name=“especialidade” value=”$nomeEspecialidade">";
echo “”;
// E submete o form
echo “”;
}else{
// Aqui o código caso de erro
}[/code]

Na aplicação de destino a linha abaixo vai criar um array com os valores enviados:

$nomeEspecialidade = explode(";",$_GET["especialidade"]);

É meio gambiarra (ou artifício de programação), mas foi o que consegui para passar parâmetros entre SC e outras aplicações.

[]s

Allan muito obrigado vou dar uma olhada e te falo.

att…

Ok, estou a disposição
[]s

Allan ficou muito bom o código.

Fiz os ajustes que você explicou.

$check_sql = ("
			    SELECT
				espe.nome_especialidade
			    FROM
			        especialidade espe INNER JOIN agenda_medica agen ON espe.idEspecialidade = agen.ID_ESPECIALIDADE
			    WHERE 
			        (agen.COMPARECEU = 'SIM')
			    AND
			       YEAR(DATA_CONSULTA) = YEAR(CURDATE())
			    GROUP BY
			        espe.nome_especialidade
			");

sc_lookup(rs, $check_sql);

if (isset({rs[0][0]})) {
	// Aqui vc cria um string com as especialiades separadas por ";"
	$nomeEspecialidade = "";
	foreach ({rs} as $especialidade){ 
		$nomeEspecialidade .= $especialidade[0].";";
	}
	// remove o último ";"
	$nomeEspecialidade = substr($nomeEspecialidade,0,-1);
	echo $nomeEspecialidade;
	// Cria um form com um campo hidden para armazenar essa string
	echo "<form name=\"Form1\" action=\"../diretorio/nome_app_destino.php\" method=\"POST\">";
	echo "<input type=\"hidden\" name=\"especialidade\" value=\"$nomeEspecialidade\">";
	echo "</form>";
	// E submete o form
	echo "<script language=javascript>";
	echo "document.forms.Form1.submit();";
	echo "</script>";
}else{
	// Aqui o código caso de erro
}

Na aplicação destino dá o seguinte erro:

Notice: Undefined index: especialidade in …

Eu deixei em comentário a parte do formulário.

Quando chega na parte do echo $nomeEspecialidade; aparece certinho as especialidades.

Na aplicação destino deixei o seguinte código:

<?php
$nomeEspecialidade = explode(";",$_GET["especialidade"]);
 foreach ($nomeEspecialidade as $especialidade):
	echo $especialidade."<br />";
 endforeach;
?>

Porque ele não encontra a variável $especialidade

Att.

Agora vai… rsrs
Estava errado a captura na aplicação destino que estavamos utilizando o $_GET o correto é $_POST já que na app origem foi utilizado o método $_POST.

Fiz um pequeno Upgrade já que precisa também capturar o valor de cada Especialidade.

$check_sql = ("
			    SELECT
				espe.nome_especialidade, COUNT(*) AS total
			    FROM
			        especialidade espe INNER JOIN agenda_medica agen ON espe.idEspecialidade = agen.ID_ESPECIALIDADE
			    WHERE 
			        (agen.COMPARECEU = 'SIM')
			    AND
			       YEAR(DATA_CONSULTA) = YEAR(CURDATE())
			    GROUP BY
			        espe.nome_especialidade
			");

sc_lookup(rs, $check_sql);

if (isset({rs[0][0]})) {
	// Aqui vc cria um string com as especialiades separadas por ";"
	$nomeEspecialidade  = "";
	$totalEspecialidade = "";
	foreach ({rs} as $especialidade){ 
		$nomeEspecialidade .= $especialidade[0].";";
	}
	foreach ({rs} as $total){ 
		$totalEspecialidade .= $total[1].";";
	}
	// remove o último ";"
	$nomeEspecialidade  = substr($nomeEspecialidade,0,-1);
	$totalEspecialidade   = substr($totalEspecialidade,0,-1);
	echo $nomeEspecialidade;

	// Cria um form com um campo hidden para armazenar essa string
	echo "<form name=\"Form1\" action=\"../diretorio/nome_app_destino.php\" method=\"POST\">";
	echo "<input type=\"hidden\" name=\"especialidade\" value=\"$nomeEspecialidade\">";
	echo "<input type=\"hidden\" name=\"total\" value=\"$totalEspecialidade\">";
	echo "</form>";
	// E submete o form
	echo "<script language=javascript>";
	echo "document.forms.Form1.submit();";
	echo "</script>";
}else{
	// Aqui o código caso de erro
}

E na app destino:

$nomeEspecialidade = explode(";",$_POST["especialidade"]);
$totalEspecialidade  = explode(";",$_POST["total"]);

foreach ($nomeEspecialidade as $especialidade):
	echo "<br />".$especialidade."<br />";
 endforeach;
 
foreach ($totalEspecialidade as $total):
	echo $total."<br />";
 endforeach;

Allan

MUITO OBRIGADO PELA SUA GRANDE AJUDA.

Att…

Eita Celso,
Deve ter sido a pressa.
kkkk

Grande abraço, precisando…

[]s