gbxsouza 0 Denunciar post Postado Dezembro 28, 2005 Gostaria que alguém me ajudasse a realizar uma pesquisa na base de acordo com a condição em um text no formulário. Quando o usuário preencher o campo NOME REQUENTE OU Nº PROCESSO e clicar no botão PESQUISAR realiza a seguinte consulta, mas tá rolando uns erros. <?php // VERIFICA SE O FORMULÁRIO FOI SUBMETIDO if($HTTP_POST_VARS["NOME_REQUERENTE"] or $HTTP_POST_VARS["NUMERO_PROCESSO"]) { //CONECTA AO BANCO DE DADOS ORACLE include "conecta_ora.php"; //CLÁUSULA SQL $sql = "SELECT * FROM CONTROLE, ANDAMENTO, SUBSETOR"; $sql .= " WHERE NUMERO_PROCESSO = '$NUMERO_PROCESSO'"; $sql .= " OR NOME_REQUERENTE = '$NOME_REQUERENTE'"; //ANALISA $sql = ociparse($ora_conecta,$sql) or die("ERRO NA ANÁLISE DA CLÁUSULA SQL"); //EXECUTA O SQL ociexecute($sql,OCI_DEFAULT); //EXIBE OS RESULTADOS WHILE(Ocifetch($sql)) { echo "Nº Processo: " .ociresult($sql,"NUMERO_PROCESSO")." <br>"; } //LIBERA DA MEMÓRIA ocifreestatement($sql); //DESCONECTA ocilogoff($sql); } ELSE { ?> Aguardo ajuda, Valeu Compartilhar este post Link para o post Compartilhar em outros sites
Prog 183 Denunciar post Postado Dezembro 28, 2005 Tenta assim: <?php if (isset($POST["NOME_REQUERENTE"]) or isset($POST["NUMERO_PROCESSO"])) { include "conecta_ora.php"; $sql = "SELECT * FROM CONTROLE, ANDAMENTO, SUBSETOR WHERE NUMERO_PROCESSO = '{$POST["NUMERO_PROCESSO"]}' OR NOME_REQUERENTE = '{$POST["NOME_REQUERENTE"]}'"; $stmt = ociparse($ora_conecta,$sql) or die("ERRO NA ANÁLISE DA CLÁUSULA SQL"); ociexecute($stmt, OCI_DEFAULT); WHILE(ocifetch($stmt)) { echo "Nº Processo: " .ociresult($stmt,"NUMERO_PROCESSO")." "; } ocifreestatement($stmt); ocilogoff(???); } else { ?> ??? - ocilogoff deve receber a variavel de logon do oracle, provavelmente declarada dentro do seu arquivo conecta_ora.php Sua consulta parece ser bem grande, não estão faltando algumas junções? Se não melhorar a situação, poste as mensagens de erro. Compartilhar este post Link para o post Compartilhar em outros sites
Emerson Placido 0 Denunciar post Postado Dezembro 29, 2005 Tenta assim: <?php if (isset($POST["NOME_REQUERENTE"]) or isset($POST["NUMERO_PROCESSO"])) { include "conecta_ora.php"; $sql = "SELECT * FROM CONTROLE, ANDAMENTO, SUBSETOR WHERE NUMERO_PROCESSO = '{$POST["NUMERO_PROCESSO"]}' OR NOME_REQUERENTE = '{$POST["NOME_REQUERENTE"]}'"; $stmt = ociparse($ora_conecta,$sql) or die("ERRO NA ANÁLISE DA CLÁUSULA SQL"); ociexecute($stmt, OCI_DEFAULT); WHILE(ocifetch($stmt)) { echo "Nº Processo: " .ociresult($stmt,"NUMERO_PROCESSO")."<br>"; } ocifreestatement($stmt); ocilogoff(???); } else { ?> ??? - ocilogoff deve receber a variavel de logon do oracle, provavelmente declarada dentro do seu arquivo conecta_ora.php Sua consulta parece ser bem grande, não estão faltando algumas junções? Se não melhorar a situação, poste as mensagens de erro. Qual e a o Erro amigo Compartilhar este post Link para o post Compartilhar em outros sites
gbxsouza 0 Denunciar post Postado Dezembro 29, 2005 Obrigado pela ajuda, mas ainda não foi o suficiente. Quando clico no botão Consultar, simplesmente nada acontece. Pq isset? Após este erro tentei substitui a primeira linha de vcs pela minha e deu os seguintes erros: if (isset($POST["NOME_REQUERENTE"]) or isset($POST["NUMERO_PROCESSO"])) { = if($HTTP_POST_VARS["NOME_REQUERENTE"] or $HTTP_POST_VARS["NUMERO_PROCESSO"]) { Notice: Undefined variable: POST in c:\arquivos de programas\easyphp1-7\www\protocolo.php on line 32 Notice: Undefined variable: POST in c:\arquivos de programas\easyphp1-7\www\protocolo.php on line 32 Warning: ociexecute(): OCIStmtExecute: ORA-00918: coluna definida de maneira ambígua in c:\arquivos de programas\easyphp1-7\www\protocolo.php on line 38 Warning: ocifetch(): OCIFetch: ORA-24374: a definição não foi feita antes da extração ou execução e extração in c:\arquivos de programas\easyphp1-7\www\protocolo.php on line 41 Se puderem continuar me ajudando.... Compartilhar este post Link para o post Compartilhar em outros sites
Prog 183 Denunciar post Postado Dezembro 29, 2005 Qual a versão do seu PHP? Compartilhar este post Link para o post Compartilhar em outros sites
walace 1 Denunciar post Postado Dezembro 29, 2005 Use $_POST e não $POST.Na tua select, você está lendo três tabelas e faz o where de NUMERO_PROCESSO e NOME_REQUERENTE.Estes campos estão em qual tabela ?Não existe relação entre estas tabelas ? Dê uma olhada nisto e poste novamente os erros se continuarem.[]s Compartilhar este post Link para o post Compartilhar em outros sites
gbxsouza 0 Denunciar post Postado Dezembro 29, 2005 Usando o $_POST, ocorreu o seguinte erro: Warning: ociexecute(): OCIStmtExecute: ORA-00918: coluna definida de maneira ambígua in c:\arquivos de programas\easyphp1-7\www\protocolo.php on line 41 Warning: ocifetch(): OCIFetch: ORA-24374: a definição não foi feita antes da extração ou execução e extração in c:\arquivos de programas\easyphp1-7\www\protocolo.php on line 44 São as seguintes linhas: ociexecute($stmt,OCI_DEFAULT); WHILE(ocifetch($stmt)) { Essencialmente, são apenas duas tabelas: CONTROLE e ANDAMENTO; o campo em comum é NUMERO_PROCESSO. Eu tenho esse sistema em Delphi, mas preciso disso via Web. Porém estou começando os estudos de PHP agora... rsrsrs Compartilhar este post Link para o post Compartilhar em outros sites
walace 1 Denunciar post Postado Dezembro 29, 2005 Ok, acho que seu problema já não é mais php e nem oracle, mas sql.coloque isso na clausula where: controle.numero_processo = andamento.numerO_processo Esqueça a terceira tabela por enquanto.Se quiser tirar mesmo sua dúvida faz um SELECT * FROM controle e vê se dá resultado.Tenta aí, qualquer coisa posta novamente. Compartilhar este post Link para o post Compartilhar em outros sites
gbxsouza 0 Denunciar post Postado Dezembro 29, 2005 Pow, antes de tudo isso eu já havia testado os selects direto, sem formulário, nem nada. E deu tudo OK. O problema tá sendo ele executar de acordo com o formulário de pesquisa. Continua dando erro no comando: ociexecute($stmt,OCI_DEFAULT);; e no comando: WHILE(ocifetch($stmt)) { Compartilhar este post Link para o post Compartilhar em outros sites
walace 1 Denunciar post Postado Dezembro 29, 2005 Faz outro teste então, pra ver se a select montada com o form está correta ou não. Após esta linha: $sql = "SELECT * FROM CONTROLE, ANDAMENTO, SUBSETOR WHERE NUMERO_PROCESSO = '{$POST["NUMERO_PROCESSO"]}' OR NOME_REQUERENTE = '{$POST["NOME_REQUERENTE"]}'"; Faça isto: echo $sql; Copie e cole este codigo, e tente executar no oracle. Pergunta: Porque está usando as chaves entre os parâmetros ? Tente tirá-las. Compartilhar este post Link para o post Compartilhar em outros sites
Prog 183 Denunciar post Postado Dezembro 29, 2005 Bem walace... O erro foi meu, informei que ele deveria usar $POST, quando deveria ter informado para usar $_POST. Compartilhar este post Link para o post Compartilhar em outros sites
walace 1 Denunciar post Postado Dezembro 29, 2005 Bem walace...O erro foi meu, informei que ele deveria usar $POST, quando deveria ter informado para usar $_POST.Não dá nada Prog !!!Acontece nos melhores fóruns !!!! rsrsrs Compartilhar este post Link para o post Compartilhar em outros sites
gbxsouza 0 Denunciar post Postado Dezembro 29, 2005 beleza, GALERA!!!BOAS FESTAS!!!FELIZ ANO NOVO!!!E SEGUNDA A GENTE CONTINUA... HEHEHE!!! Compartilhar este post Link para o post Compartilhar em outros sites