[Resolvido] Verificação de codigos selecionados

Olá amigos, tenho uma questão: como faço pra fazer uma verificação se um produto tem numa tabela, trabalhando com mais de um resultado? Tenho um checkbox e ele retorna os codigos dos itens selecionados, quero verificar se esses itens selecionados já estão inseridos na tabela estoque, caso estejam vou so fazer o update, caso não estejam preciso incluir eles na tabela estoque. Estou perdida para fazer essa verificação. criei um select pra trazer os codigos que estiverem na tabela estoque baseado no checkbox, porém não sei como faço para ele percorrer esses resultados. fiquei na duvida se uso o sc_select ou o lookup. Sou novata então essa questão de trabalhar com mais de um retorno é meio complexa pra mim.
Aqui foi até onde consegui chegar
$sql="select id_produto from estoque where id_produto in ($prods) ";
sc_lookup(ds,$sql);
$codproduto = $ds[0][0];

Coloque esse código no Evento OnValidate do seu Formulário e adapte o nome da tabela e
seus campos nele, o campo {Itens} é seu campo itens do checkbox, estoque = tabela e outros campos referentes ao estoque.

$_Selecionados = explode(';', {Itens}); // o Scriptcase usa o ; para separa as seleções.

// Produtos Selecionados:
for ($_x = 0; $_x < count($_Selecionados); $_x++) {

	/* Macro sc_lookup */

	$sql ="
	SELECT
		Descricao,
		Qtde,
		Preco
	FROM
		estoque
	WHERE
		ProdutoID = $_Selecionados[$_x]
	";

	sc_lookup(chk_est, $sql);

	/* Erro no lookup */
	if (FALSE === {chk_est}) {
		sc_error_message("Ocorreu um erro no acesso ao<BR>banco de dados: $sql.<BR>");
	}
	elseif (empty({chk_est})) { /* EOF */		

		// Não Encontrou vamos Inserir
		
		$_insert_table  = 'estoque';  // Nome da Tabela
		$_insert_fields = array(
			'Descricao'        => "'{Descricao}'",
			'Qtde'             => "{Qtde}",
			'Preco'            => "{Preco}"
		);

		// Inserir registro
		$_insert_sql = 'INSERT INTO ' . $_insert_table
			. ' (' . implode(', ', array_keys($_insert_fields)) . ')'
			. ' VALUES (' . implode(', ', array_values($_insert_fields)) . ')';

		sc_exec_sql($_insert_sql);
		sc_commit_trans();		
		
	}
	else {

		/* Inclua aqui sua rotina de processamento */
		
		// UPDATE
		
		$_Descricao = {chk_est[0][0]};
		$_Qtde = {chk_est[0][1]};
		$_Preco = {chk_est[0][2]};
		
		
		$sql ="
		UPDATE
			estoque
		SET
			Total = {Qtde}*$_Preco
		";

		sc_exec_sql($sql);
		sc_commit_trans();	

	}
	
} // for ($_x = 0; $_x

@Jailton é uma consulta criei o checkbox com o botão run a partir de um tutorial da netmake, ele ja me tras o valor separadinho por virgula, quando eu aplico ao codigo diz que count(): Parameter must be an array or an object that implements Countable e ai so inclui 1, e se eu aplico essa parte $_Selecionados = explode(’;’, {Itens});, ele não aparece o erro, mas nao inclui eu substituindo o {itens} pela variavel
Evento onrecord
[iw]->ids.={codigo_produto}.’,’;
evento onfinish
$prods = trim([iw]->ids,’,’);
[iw]->ids=’’;

Eu tinha passado para Formulários normais ou Controles.

Como é uma Grid consulta, deve-se fazer assim:
Primeiro na Consulta em Eventos (OnScriptInit) colocar:

// BOTÃO RUN
[x] = 0;
[registro_selecionados] = array();

** Marcar em Aplicações > Variáveis Globais que [registro_selecionados] = Tipo Saída

Dentro do BOTÃO no EVENTO (OnRecord) Colocar:

$arr=[x];
[registro_selecionados][$arr]={EstoqueID};  // Campo da Grid
[x]++;

Dentro do BOTÃO no EVENTO (OnFinish) Colocar:

$qtde_registros=count([registro_selecionados]);

for ($_x=0; $_x<$qtde_registros; $_x++) {

	$_EstoqueID = [registro_selecionados][$_x];

	/* Macro sc_lookup */

	$sql ="
	SELECT
		Descricao,
		Qtde,
		Preco
	FROM
		estoque
	WHERE
		ProdutoID = $_EstoqueID
	";

	sc_lookup(chk_est, $sql);

	/* Erro no lookup */
	if (FALSE === {chk_est}) {
		sc_error_message("Ocorreu um erro no acesso ao<BR>banco de dados: $sql.<BR>");
	}
	elseif (empty({chk_est})) { /* EOF */		

		// Não Encontrou vamos Inserir
		
		$_insert_table  = 'estoque';  // Nome da Tabela
		$_insert_fields = array(
			'Descricao'        => "'{Descricao}'",
			'Qtde'             => "{Qtde}",
			'Preco'            => "{Preco}"
		);

		// Inserir registro
		$_insert_sql = 'INSERT INTO ' . $_insert_table
			. ' (' . implode(', ', array_keys($_insert_fields)) . ')'
			. ' VALUES (' . implode(', ', array_values($_insert_fields)) . ')';

		sc_exec_sql($_insert_sql);
		sc_commit_trans();		
		
	}
	else {

		/* Inclua aqui sua rotina de processamento */
		
		// UPDATE
		
		$_Descricao = {chk_est[0][0]};
		$_Qtde = {chk_est[0][1]};
		$_Preco = {chk_est[0][2]};
		
		
		$sql ="
		UPDATE
			estoque
		SET
			Total = {Qtde}*$_Preco
		";

		sc_exec_sql($sql);
		sc_commit_trans();	

	}
	
} // for ($_x=0

sc_commit_trans();

Se precisar colocar uma mensagem no Final que os Registros foram Marcados,
na própria Configuração do Botão existe o campo: Mensagem de Confirmação,
ai só colocar a mensagem desejada exemplo: Todos os Registros Selecionados foram Baixados!!

sc_lookup(ds, ‘select count(*) from estoque where id_produto in ($prods)’);
if ($ds[0][0]) echo ‘tem o produto’;

Resolvi de outra forma, fui orientada que a verificação de update não irá ser necessária então fiz um simples insert com select e já resolveu meu problema.

obrigada a todos