Ir para conteúdo
Fórum Script Brasil
  • 0

Pegar valor da variável


Fábio Esteves

Pergunta

Fala pessoal, beleza?

estou eu aqui de novo, com outra dificuldade em relação a um sistema. Seguinte, criei um formulário simples onde carrega o nome dos alunos cadastrados no banco em Select, e após selecionar o aluno, carrega automaticamente os outros dados dele (utilizei JQuery).

O problema que estou tendo é o seguinte: nesses campos, eu preciso comparar as datas entre alguns deles, e validar se aquela data registrada é válida ou não, pois por exemplo: um aluno não pode ter data de curso marcada, antes de ter embarcado. E a minha dificuldade esta exatamente ai, em como eu vou comparar esses dados. Atualmente, o código esta assim:

<?php

        include ('conecta_banco.php');
        include ('../functions.php');
    
        $aluno_id = $_POST['aluno_id'];
    $acao = $_REQUEST['acao'];
    
    $data_embarque;
    $data_curso;
    $data_acomodacao;
    $data_passagem;
    $data_seguro;
    
    // INICIO SWITCH $ACAO
    switch ($acao) {
         /*
          * CASE carregarEmbarque
          */
         case 'carregarEmbarque':
            $sql_data_embarque = "SELECT aluno_data_embarque, aluno_id " .
                                        "FROM alaluno " .
                                        "WHERE aluno_id =".$aluno_id;
                $qr_data_embarque = mysql_query($sql_data_embarque) or die(mysql_error());
                
                if(mysql_num_rows($qr_data_embarque) == 0){
                   echo  '<option value="0">'.htmlentities('Não há data de embarque para este aluno').'</option>';
                }else{
                   while($ln = mysql_fetch_assoc($qr_data_embarque)){
                    $GLOBALS ['data_embarque'] = $ln['aluno_data_embarque'];
                    echo '<option value="'.$ln['aluno_id'].'">'.utf8_encode(converte_data($ln['aluno_data_embarque'])).'</option>';
                    echo "<script> alert('Embarque: ".$data_embarque."'); </script> ";
                   }
                }
            break;
         
         /*
          * CASE carregarCurso
          */
         case 'carregarCurso':           
                $sql_data_inicio = "SELECT alcompra_servico.compra_id, srcurso.curso_data_inicio " .
                                        "FROM alcompra_servico " .
                                        "INNER JOIN srcurso " .
                                        "ON alcompra_servico.compra_id = srcurso.compra_id " .
                                        "WHERE alcompra_servico.aluno_id =".$aluno_id;
                $qr_data_inicio = mysql_query($sql_data_inicio) or die(mysql_error());
                
                if(mysql_num_rows($qr_data_inicio) == 0){
                   echo  '<option value="0">'.htmlentities('Não há data estabelecida para este aluno').'</option>';
                }else{
                   while($ln = mysql_fetch_assoc($qr_data_inicio)){
                       $GLOBALS['data_curso'] = $ln['curso_data_inicio'];
                       echo '<option value="'.$ln['compra_id'].'">'.utf8_encode(converte_data($ln['curso_data_inicio'])).'</option>';
                   echo "<script> alert('Embarque: ".$data_embarque.", Curso: ".$data_curso."'); </script> ";
                   //calcula_curso($data_embarque, $data_curso);
                   }
                }
            break;

O que acontece é que o conteúdo da variável $data_embarque fica em branco quando chamo ela no segundo "case". Como podem ver, eu já testei até declarar a variável no início, e depois dentro de cada laço chamar ela como GLOBAL. Não sei se é a maneira correta, e acredito que não, mas foram os testes possíveis. A idéia é pegar esses valores, e fazer a comparação através de uma função. ALguém teria uma idéia de como poderia fazer isso, já que terei de fazer em outros laços?

Obs.: o script de alerta é apenas para ver se o valor vai ser impresso.

Espero que possam me ajudar.

Abraços

Link para o comentário
Compartilhar em outros sites

1 resposta a esta questão

Posts Recomendados

  • 0
Fala pessoal, beleza?

estou eu aqui de novo, com outra dificuldade em relação a um sistema. Seguinte, criei um formulário simples onde carrega o nome dos alunos cadastrados no banco em Select, e após selecionar o aluno, carrega automaticamente os outros dados dele (utilizei JQuery).

O problema que estou tendo é o seguinte: nesses campos, eu preciso comparar as datas entre alguns deles, e validar se aquela data registrada é válida ou não, pois por exemplo: um aluno não pode ter data de curso marcada, antes de ter embarcado. E a minha dificuldade esta exatamente ai, em como eu vou comparar esses dados. Atualmente, o código esta assim:

<?php

        include ('conecta_banco.php');
        include ('../functions.php');
    
        $aluno_id = $_POST['aluno_id'];
    $acao = $_REQUEST['acao'];
    
    $data_embarque;
    $data_curso;
    $data_acomodacao;
    $data_passagem;
    $data_seguro;
    
    // INICIO SWITCH $ACAO
    switch ($acao) {
         /*
          * CASE carregarEmbarque
          */
         case 'carregarEmbarque':
            $sql_data_embarque = "SELECT aluno_data_embarque, aluno_id " .
                                        "FROM alaluno " .
                                        "WHERE aluno_id =".$aluno_id;
                $qr_data_embarque = mysql_query($sql_data_embarque) or die(mysql_error());
                
                if(mysql_num_rows($qr_data_embarque) == 0){
                   echo  '<option value="0">'.htmlentities('Não há data de embarque para este aluno').'</option>';
                }else{
                   while($ln = mysql_fetch_assoc($qr_data_embarque)){
                    $GLOBALS ['data_embarque'] = $ln['aluno_data_embarque'];
                    echo '<option value="'.$ln['aluno_id'].'">'.utf8_encode(converte_data($ln['aluno_data_embarque'])).'</option>';
                    echo "<script> alert('Embarque: ".$data_embarque."'); </script> ";
                   }
                }
            break;
         
         /*
          * CASE carregarCurso
          */
         case 'carregarCurso':           
                $sql_data_inicio = "SELECT alcompra_servico.compra_id, srcurso.curso_data_inicio " .
                                        "FROM alcompra_servico " .
                                        "INNER JOIN srcurso " .
                                        "ON alcompra_servico.compra_id = srcurso.compra_id " .
                                        "WHERE alcompra_servico.aluno_id =".$aluno_id;
                $qr_data_inicio = mysql_query($sql_data_inicio) or die(mysql_error());
                
                if(mysql_num_rows($qr_data_inicio) == 0){
                   echo  '<option value="0">'.htmlentities('Não há data estabelecida para este aluno').'</option>';
                }else{
                   while($ln = mysql_fetch_assoc($qr_data_inicio)){
                       $GLOBALS['data_curso'] = $ln['curso_data_inicio'];
                       echo '<option value="'.$ln['compra_id'].'">'.utf8_encode(converte_data($ln['curso_data_inicio'])).'</option>';
                   echo "<script> alert('Embarque: ".$data_embarque.", Curso: ".$data_curso."'); </script> ";
                   //calcula_curso($data_embarque, $data_curso);
                   }
                }
            break;

O que acontece é que o conteúdo da variável $data_embarque fica em branco quando chamo ela no segundo "case". Como podem ver, eu já testei até declarar a variável no início, e depois dentro de cada laço chamar ela como GLOBAL. Não sei se é a maneira correta, e acredito que não, mas foram os testes possíveis. A idéia é pegar esses valores, e fazer a comparação através de uma função. ALguém teria uma idéia de como poderia fazer isso, já que terei de fazer em outros laços?

Obs.: o script de alerta é apenas para ver se o valor vai ser impresso.

Espero que possam me ajudar.

Abraços

Olá tudo bem

Você deseja comparar as datas mas você vai localizar_la em outra tabela? ou já nos dados da mesma consulta?

se tiver um link para a pagina ajudaria, sua explicação ficou um pouco confusa, até mais.

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,2k
    • Posts
      652k
×
×
  • Criar Novo...