Boa noite.
Gostaria da ajuda novamente dos colegas.
É seguinte:
Tenho uma consulta formato livre baseada na tabela (tbIP) e criei 3 campos nomeados como: v_pessoa1, v_pessoa2, vpessoa3.
No evento OnRecord, criei um select para verificar se na tabela (tbIPPessoa) existe alguma pessoa cadastrada neste IP e se houver, colocar o conteúdo do campo pessoa (da tabela tbIPPessoa) nos campos criados acima.
As duas tabelas estão relacionadas pelo campo idIP.
Como estou tentando.
/*
**Rotina criada para pesquisar se existe pessoas envolvidas no IP. Caso existam
**devemos povoar os dados nos campos.
*/
//variável que guarda o id do IP
$var1 = {idIP};
//criar um select para encontrar, se houver, as pessoas cadastradas neste IP
$sql = “SELECT
tbIP_idIP,
tbPessoa_idPessoa,
tbSituacao_IdSituacao,
IpPessoaMandado
FROM
tbIpPessoa
WHERE
tbIP_idIP = '”.$var1."’";
sc_select(rs, $sql);
if (false == {rs})
{
// Erro de acesso ao Banco de Dados
}
elseif ({rs}->EOF)
{
// Não encontrou pessoas cadastradas no IP
}
else
{
$campo0 = $rs->fields[0]; //id do IP
//fazer enquanto não for fim de arquivo
1 while (!$rs->EOF)
2 {
3 if($campo0 == $var1) //se o campo da tabela for igual ao idIP
4 {
5 if($rs->fields[2] == 1) // se idSituacao for igual a 1
6 {
7 {v_pessoa1} = $rs->fields[1]; //atribui ao campo o id da pessoa
8 }
9
10 }
11 $rs->MoveNext();
12 }
13 $rs->Close();
14}
O problema está quando é encontrado mais de um registro (só podem ser até no máximo três). Não consegui fazer com que os campos v_pessoa2, vpessoa3 recebam os valores.
Minha lógica para a solução.
-
Tentei concatenar o nome do campo da consulta na hora de atribuir a ele (campo) o valor retornado no select, mas não consegui. Seria mais ou menos assim: {v_pessoa."$i"} = $rs->fields[1]. Onde o $i seria um contador que seria incrementado e concatenado no campo, e na primeira vez que entrasse no if (linha 5) ele seria {v_pessoa1), na segunda {v_pessoa2}, etc. Só que esta maneira que estou usando para concatenar não está funcionando (v_pessoa."$i"}.
-
A segunda ideia seria usar array, porém não conheço bem a sua manipulação.
Alguma sugestão?
Obrigado.