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.
Pergunta
Fábio Esteves
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:
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
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.