Jump to content


Photo

Problemas Retorno Consulta Mysql


  • Faça o login para participar
Nenhuma resposta neste tópico

#1 Alaucho

Alaucho

    Turista

  • Usuários
  • 45 posts
  • Sexo:Masculino
  • Localidade:Porto Alegre
  • Interesses:Desenvolver... Grande objetivo na vida...

Posted 27/02/2011, 14:24

E ae pessoal!

Seguinte, estou com um problema que é a primeira vez que me deparo. No sistema que estou fazendo, faço uma consulta no banco que busca os dados de um aluno de acordo com o ID, e imprime tudo na tela, dentro de um "select". Como preciso armazenar esse valor para usar em uma função, coloquei um alerta em JS para testar se o valor estava sendo armazenado certinho. Ou seja, além do que esta sendo carregado no Select, aparece um aviso na tela mostrando esse mesmo valor.

E ai que esta acontecendo o problema: com alguns alunos selecionados (e ainda assim, não é sempre que acontece), a data apresentada no select e a mostrada no aviso, não batem. Segue como esta o código da consulta, como armazeno o valor e como estou mostrando o aviso:

/*
          * 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)){
                    $_SESSION['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: ".$_SESSION['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)){
                       $_SESSION['data_curso'] = $ln['curso_data_inicio'];
                   echo '<option value="'.$ln['compra_id'].'">'.utf8_encode(converte_data($ln['curso_data_inicio'])).'</option>';
                   calcula_curso($_SESSION['data_embarque'], $_SESSION['data_curso']);
                   echo "<script> alert('Embarque: ".$_SESSION['data_embarque'].", Curso: ".$_SESSION['data_curso']."'); </script> ";
                   }
                }
            break;

Como podem ver, em cada case eu estou armazenando o resultado da consulta numa SESSION. No primeiro case, o valor de $_SESSION['data_embarque'] = $ln['aluno_data_embarque'] é apresentado normalmente no alerta. Porém, quando mando imprimir de novo no outro case, ele mostra outra data, como se tivesse um outro valor na tabela, ou estivesse consultando em outro campo.

Alguém teria idéia do pq isso estaria ocorrendo? A impressão que dá, é que ele pega um segundo resultado sabe-se lá de onde e substitui o anterior, e na tela mostra exatamente isso. Um valor dentro do Select, o mesmo valor no primeiro alerta, e um outro valor no segundo alerta pra mesma variável :S

Se souberem dizer o pq disso, o que poderia estar ocasionando isso, agradeço muito, pois é o que esta me travando pra dar continuidade.

Abraços
Um eterno apaixonado pelo meu Imortal Tricolor!!!
Programação: o começo de uma looonga jornada entre nós ^^




1 user(s) are reading this topic

0 membro(s), 1 visitante(s) e 0 membros anônimo(s)

IPB Skin By Virteq