Verificar valor do campo no bd

Oi pessoal,

Estou com uma duvida.
Falando mais ou menos sobre a lógica:
É um form de cadastramento de cadernos e suplementos de um jornal.
Sendo que, para eu incluir um suplemento, eu preciso ter previamente a edição de um caderno cadastrada. (Cadernos e suplementos estão ligados pelo nº da edição).

No cod. abaixo, ao tentar incluir um item tipo suplemento, eu verifico se o valor do campo edição já é uma edição cadastrada no banco.
Até aí, td certo. Se eu tentar cadastrar um suplemento com o nº de uma edição ainda não cadastrado, ele acusa o erro :+1:.
Porem, quando eu tento cadastrar um suplemento com uma edição que já existe, ele continua informando q a edição ainda não foi cadastrada.

if ({tipo} == 2)
{		
	$sql = "SELECT dcm_edicao
			FROM tbl_dcm
			WHERE dcm_edicao = '{dcm_edicao}';";
	sc_lookup(ds, $sql);
	
	if ({dcm_edicao} != {ds}) {
		
		sc_error_message("Edição ainda não cadastrada.");		
	}	
}

Desde já, agradeço a ajuda.

Você não pode.comparar com {ds} pois é numa array.

Compare com o valor da coluna: $ds[0][0]

Olá Haroldo,

Fiz a alteração, mas quando o vou incluir um suplemento com uma edição que já existe, ele continua informando que a edição não foi cadastrada.

Exponha o código. Coloque em modo debug.

Ideal é usar o count.

Debug:

O código ficou assim:

if ({tipo} == 2)
{		
	$sql = "SELECT dcm_edicao
			FROM tbl_dcm
			WHERE dcm_edicao = '{dcm_edicao}';";
	
	sc_lookup(ds, $sql);
	$edicao = {ds[0][0]};
	
	if ({dcm_edicao} != $edicao) {
		sc_error_message("Edição ainda não cadastrada.");
	}		
   }
if ({tipo} == 2) { 
      $sql = "SELECT count(*) FROM tbl_dcm WHERE dcm_edicao = '{{dcm_edicao}}'";
       sc_lookup(ds, $sql);
      if ($ds[0][0] == 0 ) { sc_error_message("Edição ainda não cadastrada."); } 
}
2 Curtidas