Martinsrj 0 Denunciar post Postado Agosto 7, 2009 Olá pessoal, boa tarde! Estou fazendo uma conexão com o BD oracle, porem nao me retornar nenhum dado, apesar de aparecer inumeros traços. Segue o meu código: testeoracle1.php <?php require_once 'ultimaFuncao.php'; require_once '../vantiveConf.php'; require_once 'morrer.php'; $conexao = ora_logon("{$vantive["login"]}@{$vantive["banco"]}",$vantive["senha"]); $cursor = ora_open($conexao); ora_parse($cursor, "SELECT * FROM swbappsp.sw_hd_case WHERE rownum <10"); ora_exec($cursor); /* Comentário: int ora_fetch_into ( resource cursor, array result [, int flags] ) Traz uma linha de dados dentro de uma array. O flags tem dois valores: se o ORA_FETCHINTO_NULLS flag está setado, colunas com valores NULL são setadas no array; e se o ORA_FETCHINTO_ASSOC flag está setado, um array associativo é criado. Retorna o número de colunas selecionadas. */ while(ora_fetch_into($cursor, &$dt, ORA_FETCHINTO_ASSOC)) { echo $dt['swhdcaseid'] . " - " . $dt['swnote'] . "<br>\n"; } ora_close($cursor); ?> Possuo uma pagina chamada queryOracle.php onde utilizo para outras consultas e funciona normalmente!!! <?php require_once 'ultimaFuncao.php'; require_once '../vantiveConf.php'; require_once 'morrer.php'; function queryOracle($query){ //retorna array assoc global $vantive; //vantiveConf.php $conexao = ora_logon("{$vantive["login"]}@{$vantive["banco"]}",$vantive["senha"]); if( !$conexao ) morrer('Erro em ora_logon: ' . ora_error()); $cursor = ora_open($conexao); if( !$cursor ) morrer('Erro em ora_open: ' . ora_error()); $result = ora_parse($cursor,$query); $result = ora_exec($cursor); while(ora_fetch_into($cursor,$coluna[],ORA_FETCHINTO_NULLS|ORA_FETCHINTO_ASSOC)){} //if( ora_error($cursor) ) echo ora_error($cursor); //if( ora_error($conexao) ) echo ora_error($conexao); ora_close($cursor); ora_logoff($conexao); //if( count($coluna) ) array_pop($coluna); //tira um item vazio do final return $coluna; } ?> Abaixo segue a imagem da minha tabela: Link da imagem: http://www.uploadimagens.com/upload/a7f6075eacd826f35b29734b0f702439.jpg Compartilhar este post Link para o post Compartilhar em outros sites
Diego Macêdo 6 Denunciar post Postado Agosto 7, 2009 Creio que seu problema seja mais com SQL! Outra coisa, onde tem "rownum" não deveria ser o nome da coluna que você deseja? http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif Compartilhar este post Link para o post Compartilhar em outros sites
Martinsrj 0 Denunciar post Postado Agosto 7, 2009 Boa tarde Diego! Realizei a modificação no meu código (testeoracle1.php), verifique abaixo: <?php require_once 'ultimaFuncao.php'; require_once '../vantiveConf.php'; require_once 'morrer.php'; global $vantive; // vantiveConf.php $conexao = ora_logon("{$vantive["login"]}@{$vantive["banco"]}",$vantive["senha"]); $cursor = ora_open($conexao); ora_parse($cursor, "SELECT * FROM swbappsp.sw_hd_case WHERE rownum <20 order by swhdcaseid"); ora_exec($cursor); while(ora_fetch_into($cursor,$dt[],ORA_FETCHINTO_NULLS|ORA_FETCHINTO_ASSOC)){ echo $dt['swhdcaseid'] . " - " . $dt['swhdcaseid'] . "<br>"; } ora_close($cursor); ?> Coloquei no post anterior um print da minha tabela, Abraços. Creio que seu problema seja mais com SQL! Outra coisa, onde tem "rownum" não deveria ser o nome da coluna que você deseja? http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif Compartilhar este post Link para o post Compartilhar em outros sites
Matias Rezende 50 Denunciar post Postado Agosto 7, 2009 Tá, mas e aí? Resolveu? Continua não aparecendo nada? Tente executar a query direto naquele programa que você tirou o print da tela. Se retornar algum resultado, problema no PHP. Não exibir nada, erro no SQL. Carlos Eduardo Compartilhar este post Link para o post Compartilhar em outros sites
Martinsrj 0 Denunciar post Postado Agosto 7, 2009 Realizei a query conforme a imagem abaixo e me retornou numa boa! Tá, mas e aí? Resolveu? Continua não aparecendo nada? Tente executar a query direto naquele programa que você tirou o print da tela. Se retornar algum resultado, problema no PHP. Não exibir nada, erro no SQL. Carlos Eduardo Compartilhar este post Link para o post Compartilhar em outros sites
Diego Macêdo 6 Denunciar post Postado Agosto 7, 2009 Creio que esteja ok agora, não? Qualquer coisa, faz o que o matias_rezende falou! Abraços e boa sorte! http://forum.imasters.com.br/public/style_emoticons/default/joia.gif Compartilhar este post Link para o post Compartilhar em outros sites
Martinsrj 0 Denunciar post Postado Agosto 7, 2009 Ola pessoal, boa noite!!! Estou me esforcando para descobrir o erro do porque no programa do oracle ele me retorna a consulta e no codigo do php nao! Alguem tem alguma ideia do que seja essa situacao. OBS.: o while funciona, pois cria uma laco de varios tracos, menos o principal... rsrsrs... os DADOS. Abracos e fiquem com Deus. Compartilhar este post Link para o post Compartilhar em outros sites
Matias Rezende 50 Denunciar post Postado Agosto 8, 2009 Nunca usei Oracle, mas vamos tentar... Se o while está funcionando, então o problema é só a impressão. Vamos imprimir o que vem da consulta pra ver. echo '<pre>'; while(ora_fetch_into($cursor,$dt[],ORA_FETCHINTO_NULLS|ORA_FETCHINTO_ASSOC)){ print_r($dt); //echo $dt['swhdcaseid'] . " - " . $dt['swhdcaseid'] . "<br>"; } echo '</pre>'; Veja o que imprime. Carlos Eduardo Compartilhar este post Link para o post Compartilhar em outros sites
Martinsrj 0 Denunciar post Postado Agosto 8, 2009 Ola Matias, boa noite! Deixei o meu codigo php da seguinte forma conforme a sua orientacao: <?php require_once 'ultimaFuncao.php'; require_once '../vantiveConf.php'; require_once 'morrer.php'; global $vantive; // vantiveConf.php $conexao = ora_logon("{$vantive["login"]}@{$vantive["banco"]}",$vantive["senha"]); $cursor = ora_open($conexao); ora_parse($cursor, "SELECT * FROM swbappsp.sw_hd_case WHERE rownum <20 order by swhdcaseid"); ora_exec($cursor); // while(ora_fetch_into($cursor,$dt[],ORA_FETCHINTO_NULLS|ORA_FETCHINTO_ASSOC)){ // echo $dt['swhdcaseid'] . " - " . $dt['swhdcaseid'] . "<br>"; // } echo '<pre>';while(ora_fetch_into($cursor,$dt[],ORA_FETCHINTO_NULLS|ORA_FETCHINTO_ASSOC)){ print_r($dt); //echo $dt['swhdcaseid'] . " - " . $dt['swhdcaseid'] . "<br>"; } echo '</pre>'; ora_close($cursor); ?> O resultado foi esse, porem peguei apenas as primeiras linhas, pois sao muitos: Array ( [0] => Array ( [SWHDCASEID] => 1 [SWASSIGNEDTO] => [SWDEPARTMENTID] => [SWREPORTEDBY] => 30116 [SWCONTACTID] => 30116 [SWHDDEFECTID] => [SWNODEID] => [SWINSTPRODID] => [SWPRODRELEASEID] => [SWRESOLUTIONID] => [SWRESOLVEDBY] => [SWRESBYFIRSTCALL] => [SWGLOBALIMPACT] => 1 [SWPROBLEMCODEID] => [SWWORKAROUNDID] => [SWRESOLVEDTOOL] => [SWCODE] => [SWSPECIALTYTYPE] => [SWPROBLEMAREA] => [SWSPECIALTYID] => [SWPRIORITY] => [SWREASONCLOSED] => [SWRECEIVEDVIA] => Telefone [SWREPLYVIA] => [SWSATISFACTIONLEV] => [SWSEVERITY] => [SWSTATUS] => [SWTYPE] => [SWFIXTIME] => [SWTIMETOREPAIR] => [SWREPAIRTIME] => [SWTOTALFIXTIME] => [SWTIMETYPE] => [SWTIMESPARE] => [SWCOMMITTIME] => [SWEXTENSION] => [SWACTRESPDATE] => [SWDATERESOLVED] => 16/08/02 [SWFOLLOWUPON] => [SWNOTE] => Usuária com dificuldades para inserir nf manual. [SWRESPONDBY] => [SWRMANUMBER] => [SWRMAEXPIRATION] => [SWERRORCODE] => [SWERRORMESSAGE] => [SWCBRTITLE] => [SWCOURIER] => [SWKEYWORDS] => [SWKEYWORDLIST] => [SWWAYBILLNUMBER] => [SWSUBJECT] => [SWBEEPDISPATCH] => [SWBEEPSECONDARY] => [SWBEEPTHIRD] => [SWBEEPFOURTH] => [SWCBRINPUT1] => [SWCBROUTPUT3] => [SWMODIFIEDBY] => [SWDATEMODIFIED] => [SWMASTERVER] => 38483849 [SWCREATEDBY] => atl.fsantanna [SWDATECREATED] => 10/08/02 [TIMESTAMP] => 38483849 [TATYPE] => 163 [TALEVEL1] => 205 [TALEVEL2] => 605 [TALEVEL3] => 1336 [TASTATUSID] => 3 [TASTATUSDETAILID] => 130 [TAFILAID] => [TASECRET] => 0 [TAVIP] => 1 [TANOTIFYSTATUSDETAIL] => 1 [TAEXECUTIONDATE] => 10/08/02 [TACLOSEDBY] => atl.pfaria [TADATECLOSED] => 16/08/02 [SWSITEID] => 125 [TASLA] => 60 [TAEMNOMEDE] => [TASATISFACAO] => 0 [TACRITICAL] => 1 [SWCUSTOMERID] => [TACOSTCENTERID] => [TASITEID] => 125 [TACUSTOMERID] => 51 [TANOTIFYFLG] => 0 [TACELULARBEN] => [TARAMALBEN] => [TATELEFONEBEN] => [TAFLAGUSUARIO] => 0 [TANOMEBEN] => [TAHDCASEPARENTID] => [TAHDCASELEVEL] => [TALASTQUEUEAUTOMATICID] => [TAALARMID] => [TASWCASEID] => [TACASEID] => [TAPRIORIDADEID] => ) ) Array ( [0] => Array ( [SWHDCASEID] => 1 [SWASSIGNEDTO] => [SWDEPARTMENTID] => [SWREPORTEDBY] => 30116 Nunca usei Oracle, mas vamos tentar... Se o while está funcionando, então o problema é só a impressão. Vamos imprimir o que vem da consulta pra ver. echo '<pre>'; while(ora_fetch_into($cursor,$dt[],ORA_FETCHINTO_NULLS|ORA_FETCHINTO_ASSOC)){ print_r($dt); //echo $dt['swhdcaseid'] . " - " . $dt['swhdcaseid'] . "<br>"; } echo '</pre>'; Veja o que imprime. Carlos Eduardo Compartilhar este post Link para o post Compartilhar em outros sites
Matias Rezende 50 Denunciar post Postado Agosto 8, 2009 O PHP é case sensitive... Isto echo $dt['swhdcaseid'] . " - " . $dt['swhdcaseid'] . "<br>"; É diferente de echo $dt['SWHDCASEID'] . " - " . $dt['SWHDCASEID'] . "<br>"; Carlos Eduardo Compartilhar este post Link para o post Compartilhar em outros sites
Martinsrj 0 Denunciar post Postado Agosto 8, 2009 Matias, continua dando o mesmo erro! Desde ja agradeco pela sua ajuda, fique com Deus! Veja o codigo abaixo: <?php require_once 'ultimaFuncao.php'; require_once '../vantiveConf.php'; require_once 'morrer.php'; global $vantive; // vantiveConf.php $conexao = ora_logon("{$vantive["login"]}@{$vantive["banco"]}",$vantive["senha"]); $cursor = ora_open($conexao); ora_parse($cursor, "SELECT * FROM swbappsp.sw_hd_case WHERE rownum <20 order by swhdcaseid"); ora_exec($cursor); while(ora_fetch_into($cursor,$dt[],ORA_FETCHINTO_NULLS|ORA_FETCHINTO_ASSOC)){ echo $dt['SWHDCASEID'] . " - " . $dt['SWNOTE'] . "<br>"; } // echo '<pre>'; // while(ora_fetch_into($cursor,$dt[],ORA_FETCHINTO_NULLS|ORA_FETCHINTO_ASSOC)){ // print_r($dt); //echo $dt['swhdcaseid'] . " - " . $dt['swhdcaseid'] . "<br>"; // } echo '</pre>'; ora_close($cursor); ?> Compartilhar este post Link para o post Compartilhar em outros sites
Martinsrj 0 Denunciar post Postado Agosto 9, 2009 Consegui dessa forma: while(ora_fetch_into($cursor, &$dt, ORA_FETCHINTO_ASSOC)) { echo $dt['SWHDCASEID'] . " - " . $dt['SWNOTE'] . "<br>\n"; } Paulo Martins Compartilhar este post Link para o post Compartilhar em outros sites
Martinsrj 0 Denunciar post Postado Agosto 10, 2009 Olá pessoal, boa noite!!! Estou com uma dúvida, pois com o seguinte código abaixo eu consigo realizar a consulta de acordo com os campos que estão dentro do while: <?php require_once 'ultimaFuncao.php'; require_once '../vantiveConf.php'; require_once 'morrer.php'; global $vantive; // vantiveConf.php $conexao = ora_logon("{$vantive["login"]}@{$vantive["banco"]}",$vantive["senha"]); $cursor = ora_open($conexao); // ora_parse($cursor, "SELECT * FROM swbappsp.sw_hd_case WHERE rownum < 20 order by swhdcaseid"); // ora_exec($cursor); // while(ora_fetch_into($cursor,$dt[],ORA_FETCHINTO_NULLS|ORA_FETCHINTO_ASSOC)){ // echo $dt['SWHDCASEID'] . " - " . $dt['SWNOTE'] . "<br>"; // } $cursor = ora_open($conexao); ora_parse($cursor, "SELECT * FROM swbappsp.sw_hd_case WHERE rownum < 20 order by swhdcaseid desc"); ora_exec($cursor); while(ora_fetch_into($cursor, &$dt, ORA_FETCHINTO_ASSOC)) { echo $dt['SWHDCASEID'] . " - " . $dt['SWNOTE'] . "<br>\n"; } // echo '<pre>'; // while(ora_fetch_into($cursor,$dt[],ORA_FETCHINTO_NULLS|ORA_FETCHINTO_ASSOC)){ // print_r($dt); //echo $dt['swhdcaseid'] . " - " . $dt['swhdcaseid'] . "<br>"; // } // echo '</pre>'; ora_close($cursor); ?> Porem o código abaixo não me retorna nada no Browser: <?php require_once 'ultimaFuncao.php'; require_once '../vantiveConf.php'; require_once 'morrer.php'; global $vantive; // vantiveConf.php $conexao = ora_logon("{$vantive["login"]}@{$vantive["banco"]}",$vantive["senha"]); $cursor = ora_open($conexao); ora_parse($cursor, "SELECT * FROM swbappsp.sw_work_log WHERE rownum < 20 order by swworklogid"); ora_exec($cursor); while(ora_fetch_into($cursor, &$dt, ORA_FETCHINTO_ASSOC)) { echo $dt['SWOBJECTID'] . " - " . $dt['SWNOTE'] . "<br>\n"; } ora_close($cursor); ?> Porem no programa que utilizo para conexao com oracle e para gerar relatório retorna o resultado, veja a imagem abaixo: Desde já agradeço pelos esclarecimentos. Obs.: Segue os campos da tabela: 2 Samuel 22:28 E o povo aflito livras; mas teus olhos são contra os altivos, e tu os abaterás. Compartilhar este post Link para o post Compartilhar em outros sites
Martinsrj 0 Denunciar post Postado Agosto 11, 2009 Olá pessoal, boa tarde! Desde já peço desculpas pela insistencia, pois necessito e muito a resolução da situação do código. Agradeço todo tipo de dicas, Abraços a todos. Compartilhar este post Link para o post Compartilhar em outros sites
Matias Rezende 50 Denunciar post Postado Agosto 11, 2009 A questão é que você tá usando ORACLE... e a maioria do pessoal (eu inclusive) não entende nada de ORACLE. Daí fica difícil de te ajudar. Vou editar o título pra ver se ajuda. Carlos Eduardo Compartilhar este post Link para o post Compartilhar em outros sites
Martinsrj 0 Denunciar post Postado Agosto 11, 2009 Valeu Matias pela sua atenção! Acredito que você seja temente a Deus e desde já peço as suas orações. Abraços e anote o meu email: falecommartins@hotmail.com A questão é que você tá usando ORACLE... e a maioria do pessoal (eu inclusive) não entende nada de ORACLE. Daí fica difícil de te ajudar. Vou editar o título pra ver se ajuda. Carlos Eduardo Compartilhar este post Link para o post Compartilhar em outros sites
Martinsrj 0 Denunciar post Postado Agosto 11, 2009 Ola pessoal, Matias, boa noite! Troquei a funcao do php de ORA para OCI, mesmo porque a funcao ORA esta ultrapassada e o OCI e nativa do oracle. Mesmo apos a troca a tabela eu nao consegui visualizar atraves da consulta. Fui ate o DBA para checar essa situacao e o mesmo verificou com o login que eu tenho no oracle nao me da acesso a consulta e com isso terei que abrir um chamado. Passei a situacao para o meu supervisor, agora e aguardar o fechamento do chamado para que eu realize os novos testes. Desde ja agradeco novamente pela ajuda de todos. Abracos Matias e fique com Cristo. http://forum.imasters.com.br/public/style_emoticons/default/joia.gif Compartilhar este post Link para o post Compartilhar em outros sites