
Fábio Esteves
Membros-
Total de itens
4 -
Registro em
-
Última visita
Tudo que Fábio Esteves postou
-
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
-
Vlw a resposta ESerra Testei como você falou, e continua o mesmo problema. A variável $data_embarque não foi declarada em nenhum outro lugar. Inclusive, alterei a session, desativei o register_globlas, e o problema permanece. Mais alguma sugestão?? :S
-
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
-
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