Autor Tópico: Compara valor Do BD  (Lida 497 vezes)

Admin

  • Novato
  • *
  • Mensagens: 11
    • Email
Compara valor Do BD
« Online: Maio 21, 2015, 08:05:48 pm »
Galera tenho um problema sou meio leigo no assunto peço ajuda de vocês

eu quero comparar um campo do formulario com um registro do banco de dados se ja existe ou não caso exista ele não pode deixar armazenar e caso não exista ele armazene normalmente
por exemplo

meu codigo esta assim me ajuda a achar o erro

sc_lookup(ds,"SELECT data_inicio FROM agenda WHERE data_inicio = {data_inicio}");

if({data_inicio} == {ds} ){
sc_error_message("erro data ja usada");
}

Willian Fernando

  • Expert
  • *****
  • Mensagens: 1149
  • .....
    • Email
Re:Compara valor Do BD
« Responder #1 Online: Maio 21, 2015, 08:51:56 pm »
Galera tenho um problema sou meio leigo no assunto peço ajuda de vocês

eu quero comparar um campo do formulario com um registro do banco de dados se ja existe ou não caso exista ele não pode deixar armazenar e caso não exista ele armazene normalmente
por exemplo

meu codigo esta assim me ajuda a achar o erro

sc_lookup(ds,"SELECT data_inicio FROM agenda WHERE data_inicio = {data_inicio}");

if({data_inicio} == {ds} ){
sc_error_message("erro data ja usada");
}
a data deve ser unica nunca devera ter a mesma data nessa tabela??
si for assim vai no BD y marque como PK esa coluna y pronto o BD se encarrega de controlar isso

outra coisa antes de tentar algo, leia o manual do SC de ponta a ponta principalmente a parte das macros, veja todos os videos disponiveis, veja os exemplos de SAMPLES y veja os exemplos Online..
assim tu não perde tempo esperando respostas por algo que tu mesmo poderia ter investigado

Admin

  • Novato
  • *
  • Mensagens: 11
    • Email
Re:Compara valor Do BD
« Responder #2 Online: Maio 21, 2015, 09:08:30 pm »
Obrigado por responder
seria mais ou menos assim eu consegui desenvolver o que eu preciso porem esta faltando a logica
veja o seguinte codigo meu

$sql = "SELECT count(*)
      FROM agenda
      WHERE data_inicio =  '{data_inicio}',
      AND horario_inicio = '{horario_inicio}',
      AND horario_final    = '{horario_final}',
      AND sala = '{sala}'";

sc_lookup(ds,$sql);

$resultado = {ds[0][0]};

if(!empty($resultado))
   {
      sc_error_message("Erro");
      sc_set_focus("data_inicio");
   }

quando faço com um campo apenas o codigo funciona porem não consegui desenvolver a logica

por exemplo o usuario seleciona uma data e um data final depois selecionar um horario e um horario final  e depois seleciona a sala

agora vem a logica se outro usuario tentar escolher a mesma sala no mesmo dia no mesmo horario o formulario deve dar um erro e informa que ja esta escolhida

acredito que estou chegando perto mas esta dificil rs

Willian Fernando

  • Expert
  • *****
  • Mensagens: 1149
  • .....
    • Email
Re:Compara valor Do BD
« Responder #3 Online: Maio 22, 2015, 08:43:17 am »
Obrigado por responder
seria mais ou menos assim eu consegui desenvolver o que eu preciso porem esta faltando a logica
veja o seguinte codigo meu

$sql = "SELECT count(*)
      FROM agenda
      WHERE data_inicio =  '{data_inicio}',
      AND horario_inicio = '{horario_inicio}',
      AND horario_final    = '{horario_final}',
      AND sala = '{sala}'";

sc_lookup(ds,$sql);

$resultado = {ds[0][0]};

if(!empty($resultado))
   {
      sc_error_message("Erro");
      sc_set_focus("data_inicio");
   }

quando faço com um campo apenas o codigo funciona porem não consegui desenvolver a logica

por exemplo o usuario seleciona uma data e um data final depois selecionar um horario e um horario final  e depois seleciona a sala

agora vem a logica se outro usuario tentar escolher a mesma sala no mesmo dia no mesmo horario o formulario deve dar um erro e informa que ja esta escolhida

acredito que estou chegando perto mas esta dificil rs


Vejo que teu nivel e bem basico..
olhe so este select

Código: [Selecionar]
$sql = "SELECT count(*)
      FROM agenda
      WHERE data_inicio =  '{data_inicio}',
      AND horario_inicio = '{horario_inicio}',
      AND horario_final    = '{horario_final}',
      AND sala = '{sala}'";
Jamais vai recuperar vazio sempre vai ser ou 0 ou maior que 0, devido a que tu estas fazendo um COUNT(*)