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

Problemas Retorno Consulta Mysql


Fábio Esteves

Pergunta

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 porque 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 porque disso, o que poderia estar ocasionando isso, agradeço muito, pois é o que esta me travando pra dar continuidade.

Abraços

Link para o comentário
Compartilhar em outros sites

4 respostass a esta questão

Posts Recomendados

  • 0

Estas consultas sempre vão retornar apenas um resultado? Se sim, não use o while e veja se o problema é resolvido...

Outra coisa, em nenhum lugar do sistema você está declarando alguma variável $data_embarque? Se o seu servidor estiver com register_globals ativada e você declarar uma variável com o mesmo nome de um índice de uma sessão, o valor da variável passa a ser o valor da sessão...

Link para o comentário
Compartilhar em outros sites

  • 0

Esta é apenas uma função que uso para converter a data que vem do banco:

function converte_data ($data) {
        $data_final = date('d/m/Y', strtotime($data));
        return ($data_final);
    }

Será que poderia influenciar? Acredito que não, porque ela apenas converte, mas igual vou fazer um teste. Se mudar algo, eu posto aqui.

Mas enquanto isso, se tiver mais alguma idéia do que acontece, agradeço ^^

E já vlw a ajuda até o momento

EDITADO

De certa forma consegui resolver esse problema, mas arranjei outro ¬¬'

O problema agora é que eu guardo a sessão $_SESSION['data_embarque'] dentro de uma variável, que declarei como global, e depois quando tento buscar esse valor no outro "case", ele vem em branco. Ou seja, quando sai do primeiro case, ele não busca esse valor no outro case =/

Alguém sabe o porque disso?

Obs.: se houver uma alternativa para o problema anterior, também ajuda

Editado por Fábio Esteves
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...