Não repetir valor no form

Olá pessoal! estou com o seguinte problema pra resolver em um sistema de bilhete de passagem de ônibus: já tenho ele rodando é fiz essa função… é não fiz backup do sistema resultado o cliente quer mudar e comecei do “0”.
tenho um form chamado:
bilhete:
id_bilhete int (auto)
id_viagem int (select)
id_poltrona int (select)

poltrona:
id_poltrona int (auto)
numero_poltrona (varchar)

viagem
id_viagem int(auto)
origem_destino (varchar)

queria que no form bilhete não repetisse a poltrona já vendida nesse form, tendo como parametro o “id_viagem” se naquela viagem ao inserir a mesma poltrona 2x vez aparecer a mensagem “poltrona ocupada”. e não passar.
tentei esse exemplo no evento onafterinsert:
mas não estou acertando!

$sql = ‘SELECT poltrona
FROM bilhete
WHERE id_viagem =’.{id_viagem};

sc_lookup(ds, $sql);

{poltrona} = {ds[0][0]};

$error_test = {poltrona} == {poltrona}; //

$error_message = ‘POLTRONA OCUPADA!’; //

// Redirection
if ($error_test)
{
sc_error_message($error_message);
sc_error_exit();
}

Boa tarde Lourival. No evento onValidate, faça o seguinte:

$sql = ‘SELECT count(*)
FROM bilhete
WHERE id_poltrona =’.{id_poltrona};

sc_lookup(ds, $sql);

if ({ds[0][0]} > 0){
    sc_error_message("Poltrona Ocupada");
}
1 Curtida

Manda ai como vc fez. Manda um print do teu código

deu certinho! muito obrigado!

Legal, coloque seu tópico como resolvido

MAS TEM UM PRO! essa poltrona pode ser adicionada em outra viagem, ai onde ta o pro?

vc coloca na clausula where o id_viagem

é no count deixo ’ * ’ mesmo?

Sim. Só mexe na clausula where:

where id_poltrona = '.{id_poltrona}.' and id_viagem = '.{id_viagem};

como são 2 valores na clausula were o ‘sc_lookup’ muda algo?

$sql ='SELECT count(*)
FROM bilhete
WHERE id_poltrona = '.{id_poltrona}.'and id_viagem = '.{id_viagem};

sc_lookup(ds, $sql);

if ({ds[0][0]} > 0){
sc_error_message(“Poltrona Ocupada”);
}

não deu certo

WHERE id_poltrona = '.{id_poltrona}.' and id_viagem = '.{id_viagem};

1 Curtida

AGORA SIM DEU CERTO ficou assim no evendo OnValidate
$sql ='SELECT count(*)
FROM viagem_detalhe
WHERE poltrona = ‘.{poltrona}.’ and id_viagem2 = '.{id_viagem2};
sc_lookup(ds, $sql);

if ({ds[0][0]} > 0){
sc_error_message(‘Poltrona Ocupada’);
}

mudei umas variaveis do banco no corre corre

Obrigado ao Thyagohenrrique85 pela atenção

1 Curtida

Coloque seu tópico como resolvido