Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Daniel de Aguiar

Problemas com function fetch()

Recommended Posts

Olá amigos,

 

Estou com o seguinte problema:

Fatal error: Call to a member function fetch() on a non-object in /home/u933074842/public_html/funcao/exibe_estabelecimento.php on line 9

 

Como solucionar?

 

Segue o código:

 

index.php

<?php 
         include_once "conexao.php";
 ?>

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>Início | GDRE System</title>
    <meta content='width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no' name='viewport'>
    <meta name="description" content="By: Daniel A. S.">
    <meta name="keywords" content="Bootstrap 3, Responsive">
    <!-- bootstrap 3.0.2 -->
    <link href="css/bootstrap.min.css" rel="stylesheet" type="text/css" />
    <!-- font Awesome -->
    <link href="css/font-awesome.min.css" rel="stylesheet" type="text/css" />
    <!-- Ionicons -->
    <link href="css/ionicons.min.css" rel="stylesheet" type="text/css" />
    <!-- Morris chart -->
    <link href="css/morris/morris.css" rel="stylesheet" type="text/css" />
    <!-- jvectormap -->
    <link href="css/jvectormap/jquery-jvectormap-1.2.2.css" rel="stylesheet" type="text/css" />
    <!-- Date Picker -->
    <link href="css/datepicker/datepicker3.css" rel="stylesheet" type="text/css" />
    <!-- fullCalendar -->
    <!-- <link href="css/fullcalendar/fullcalendar.css" rel="stylesheet" type="text/css" /> -->
    <!-- Daterange picker -->
    <link href="css/daterangepicker/daterangepicker-bs3.css" rel="stylesheet" type="text/css" />
    <!-- iCheck for checkboxes and radio inputs -->
    <link href="css/iCheck/all.css" rel="stylesheet" type="text/css" />
    <!-- bootstrap wysihtml5 - text editor -->
    <!-- <link href="css/bootstrap-wysihtml5/bootstrap3-wysihtml5.min.css" rel="stylesheet" type="text/css" /> -->
    <link href='http://fonts.googleapis.com/css?family=Lato' rel='stylesheet' type='text/css'>
    <!-- Theme style -->
    <link href="css/style.css" rel="stylesheet" type="text/css" />



    <!-- HTML5 Shim and Respond.js IE8 support of HTML5 elements and media queries -->
    <!-- WARNING: Respond.js doesn't work if you view the page via file:// -->
        <!--[if lt IE 9]>
          <script src="https://oss.maxcdn.com/libs/html5shiv/3.7.0/html5shiv.js"></script>
          <script src="https://oss.maxcdn.com/libs/respond.js/1.3.0/respond.min.js"></script>
          <![endif]-->

          <style type="text/css">

          </style>
      </head>
      <body class="skin-black">
        <!-- header logo: style can be found in header.less -->
        <header class="header">
            <a href="index.html" class="logo">
                GDRE System
            </a>
            <!-- Header Navbar: style can be found in header.less -->
            <nav class="navbar navbar-static-top" role="navigation">
                <!-- Sidebar toggle button-->
                <a href="#" class="navbar-btn sidebar-toggle" data-toggle="offcanvas" role="button">
                    <span class="sr-only">Toggle navigation</span>
                    <span class="icon-bar"></span>
                    <span class="icon-bar"></span>
                    <span class="icon-bar"></span>
                </a>
                <div class="navbar-right">
                    <ul class="nav navbar-nav">
                        <!-- Messages: style can be found in dropdown.less-->
                        <li class="dropdown messages-menu">
                            <a href="#" class="dropdown-toggle" data-toggle="dropdown">
                                <i class="fa fa-envelope"></i>
                                <span class="label label-success">!</span>
                            </a>
                            <ul class="dropdown-menu">
                                <li class="header">Você tem Notificações:</li>
                                <li>
                                    <!-- inner menu: contains the actual data -->

                                        <!-- Include Exibir Msg -->
                                    <?php include_once "./funcao/exibe_msg.php"; ?>


                                </li>
                                <!-- <li class="footer"><a href="#">Ver todas a mensagens</a></li> -->
                            </ul>
                        </li>
                        <li class="dropdown tasks-menu">
                            <a href="#" class="dropdown-toggle" data-toggle="dropdown">
                                <i class="fa fa-tasks"></i>
                                <span class="label label-danger">!</span>
                            </a>
                            <ul class="dropdown-menu">
                                <li class="header">Informações:</li>
                                <li>
                                    <!-- inner menu: contains the actual data -->
                                    <ul class="menu">
                                        <li><!-- Task item -->
                                            <a href="#">
                                                <h3>
                                                    Desenvolvimento da Versão 2.0
                                                    <small class="pull-right">30%</small>
                                                </h3>
                                                <div class="progress progress-striped xs">
                                                    <div class="progress-bar progress-bar-success" style="width: 30%" role="progressbar" aria-valuenow="20" aria-valuemin="0" aria-valuemax="100">
                                                        <span class="sr-only">30% Complete</span>
                                                    </div>
                                                </div>
                                            </a>
                                        </li><!-- end task item -->
                                        <li><!-- Task item -->
                                            <a href="#">
                                                <h3>
                                                    Servidor:
                                                    <small class="pull-right">36%</small>
                                                </h3>
                                                <div class="progress progress-striped xs">
                                                    <div class="progress-bar progress-bar-info" style="width: 36%" role="progressbar" aria-valuenow="20" aria-valuemin="0" aria-valuemax="100">
                                                        <span class="sr-only">36% Usado</span>
                                                    </div>
                                                </div>
                                            </a>
                                        </li><!-- end task item -->
                                    </ul>
                                </li>
                                <li class="footer">
                                    <!-- <a href="#">View all tasks</a> -->
                                </li>
                            </ul>
                        </li>
                        <!-- User Account: style can be found in dropdown.less -->

                        <li class="dropdown user user-menu">
                            <a href="#" class="dropdown-toggle" data-toggle="dropdown">
                                <i class="fa fa-user"></i>
                    
                        <!-- Include do nome de usuário -->
                                <span> <?php include_once "./funcao/exibe_estabelecimento.php"; ?></i></span>
                            </a>
                            <ul class="dropdown-menu dropdown-custom dropdown-menu-right">
                                <li class="dropdown-header text-center">Account</li>

                                <li>
                                    <a href="#">
                                    <i class="fa fa-clock-o fa-fw pull-right"></i>
                                        <span class="badge badge-success pull-right">0</span> Atualizações</a>
                                    <a href="#"><i class="fa fa-question fa-fw pull-right"></i> <span class=
                                        "badge pull-right"></span> Perguntas Frequentes</a>
                                </li>
                                <li class="divider"></li>

                                    <li>
                                        <a href="#">
                                        <i class="fa fa-user fa-fw pull-right"></i>
                                            Perfil
                                        </a>
                                        <a data-toggle="modal" href="#modal-user-settings">
                                        <i class="fa fa-cog fa-fw pull-right"></i>
                                            Configurações
                                        </a>
                                        </li>

                                        <li class="divider"></li>

                                        <li>
                                            <a href="#"><i class="fa fa-ban fa-fw pull-right"></i> Sair</a>
                                        </li>
                                    </ul>
                                </li>
                            </ul>
                        </div>
                    </nav>
                </header>
                <div class="wrapper row-offcanvas row-offcanvas-left">
                    <!-- Left side column. contains the logo and sidebar -->
                    <aside class="left-side sidebar-offcanvas">
                        <!-- sidebar: style can be found in sidebar.less -->
                        <section class="sidebar">
                            <!-- Sidebar user panel -->
                            <div class="user-panel">
                                <div class="pull-left image">
                                    <img src="img/26115.jpg" class="img-circle" alt="User Image" />
                                </div>
                                <div class="pull-left info">
                                    <p>Bem Vindo(a)</p>

                                    <a href="#"><i class="fa fa-circle text-success"></i> Online</a>
                                </div>
                            </div>
                            <!-- sidebar menu: : style can be found in sidebar.less -->
                            <ul class="sidebar-menu">
                                <li class="active">
                                    <a href="index.php">
                                        <i class="fa fa-dashboard"></i> <span>Início</span>
                                    </a>
                                </li>
                                <!-- end index -->

                                 <li>
                                    <a href="cadastraraluno.php">
                                        <i class="fa fa-plus"></i> <span>Adicionar Aluno</span>
                                    </a>
                                </li>
                                <!-- Cadastar Aluno -->

                                <li>
                                    <a href="cadastrarprof.php">
                                        <i class="fa fa-plus"></i> <span>Adicionar Professor</span>
                                    </a>
                                </li>
                                <!-- Cadastar Prof -->

                                <li>
                                    <a href="verAluno.php">
                                        <i class="fa fa-globe"></i> <span>Ver Aluno</span>
                                    </a>
                                </li>
                                <!-- ver Aluno -->

                                <li>
                                    <a href="verProf.php">
                                        <i class="fa fa-globe"></i> <span>Ver Professor</span>
                                    </a>
                                </li>
                                <!-- Ver Professor -->

                            </ul>
                        </section>
                        <!-- /.sidebar -->
                    </aside>

                    <aside class="right-side">

                <!-- Main content -->
                <section class="content">

                    <div class="row" style="margin-bottom:5px;">

                        <div class="col-md-3">
                            <div class="sm-st clearfix">
                                <span class="sm-st-icon st-red"><i class="fa fa-paperclip"></i></span>
                                <div class="sm-st-info">
                                    <span>Alunos: </span>
                                    <!-- Include contagem de alunos -->
                                    <?php include_once "./funcao/contar_aluno.php"; ?> Registro(s)
                                </div>
                            </div>
                        </div>
                        <div class="col-md-3">
                            <div class="sm-st clearfix">
                                <span class="sm-st-icon st-red"><i class="fa fa-paperclip"></i></span>
                                <div class="sm-st-info">
                                    <span>Profs.:</span>
                                    <?php include_once "./funcao/contar_professor.php"; ?> Registro(s)
                                </div>
                            </div>
                        </div>

                    <!-- Main row -->
                    <div class="row">

                        <div class="col-md-8">

                                    </div>
                                    <div class="col-lg-4">

                      </div>


                  </div>
                    <div class="row">

                        <div class="col-md-11">
                            <section class="panel">
                              <header class="panel-heading">
                                  Manutenções / Serviços - realizados
                            </header>

                            <!-- Include da tabela de serviços -->

                            <?php include_once "./funcao/tabela_servicos.php"; ?>
              </section>


          </div><!--end col-6 -->
          <div class="col-md-4">
        </div>

                    </div>
                    <div class="row">
                        <div class="col-md-5">
                            <div class="panel">
                                <header class="panel-heading">
                                    Administradores
                                </header>

                                <ul class="list-group teammates">
                                    <li class="list-group-item">
                                        <a href=""><img src="img/26115.jpg" width="50" height="50"></a>
                                        <span class="pull-right label label-danger inline m-t-15">Administrador</span>
                                        <!-- Include do nome de usuário -->
                                        <a href=""> <?php include_once "./funcao/exibe_adm.php"; ?> </a>
                                    </li>

                                    <li class="list-group-item">
                                        <a href=""><img src="img/avatar.png" width="50" height="50"></a>
                                        <span class="pull-right label label-danger inline m-t-15">Administrador</span>
                                        <a href="">GDRE Support</a>
                                    </li>
                                   
                                </ul>
                                <div class="panel-footer bg-white">
                                    <!-- <span class="pull-right badge badge-info">32</span> -->
                                    <button disabled="" class="btn btn-primary btn-addon btn-sm">
                                        <i class="fa fa-plus"></i>
                                        Adicionar Administrador
                                    </button>
                                </div>
                            </div>
                        </div>

                        <div class="col-md-6">
                        <div class="panel">
                                <header class="panel-heading">
                                    Atualizações no sistema

                                </header>
                                <div class="panel-body">
                                    <table class="table table-striped">
                                        <tr>
                                            <th style="width: 10px">#</th>
                                            <th>Atividade</th>
                                            <th>Progresso</th>
                                            <th style="width: 40px">%</th>
                                        </tr>
                                        <tr>
                                            <td>1.</td>
                                            <td>Adesão do painel de config. p/ o Suporte</td>
                                            <td>
                                                <div class="progress xs progress-striped active">
                                                    <div class="progress-bar progress-bar-success" style="width: 100%"></div>
                                                </div>
                                            </td>
                                            <td><span class="badge bg-green">100%</span></td>
                                        </tr>
                                        <tr>
                                            <td>2.</td>
                                            <td>Mensagens p/ usuário</td>
                                            <td>
                                                <div class="progress xs progress-striped active">
                                                    <div class="progress-bar progress-bar-yellow" style="width: 92%"></div>
                                                </div>
                                            </td>
                                            <td><span class="badge bg-blue">92%</span></td>
                                        </tr>
                                         <tr>
                                            <td>3.</td>
                                            <td>Informações p/ usuário</td>
                                            <td>
                                                <div class="progress xs progress-striped active">
                                                    <div class="progress-bar progress-bar-yellow" style="width: 90%"></div>
                                                </div>
                                            </td>
                                            <td><span class="badge bg-blue">90%</span></td>
                                        </tr>

                                    </table>
                                </div>
                                </div><!-- /.panel-body -->
                            </div><!-- /.panel -->
                        </div><!-- /.col -->
                    </div><!-- /.row -->

                </section><!-- /.content -->
                <div class="footer-main">
                    Copyright © GDRE System, 2016
                </div>
            </aside><!-- /.right-side -->

        </div><!-- ./wrapper -->


        <!-- jQuery 2.0.2 -->
        <script src="http://ajax.googleapis.com/ajax/libs/jquery/2.0.2/jquery.min.js"></script>
        <script src="js/jquery.min.js" type="text/javascript"></script>

        <!-- jQuery UI 1.10.3 -->
        <script src="js/jquery-ui-1.10.3.min.js" type="text/javascript"></script>
        <!-- Bootstrap -->
        <script src="js/bootstrap.min.js" type="text/javascript"></script>
        <!-- daterangepicker -->
        <script src="js/plugins/daterangepicker/daterangepicker.js" type="text/javascript"></script>

        <script src="js/plugins/chart.js" type="text/javascript"></script>

        <!-- datepicker
        <script src="js/plugins/datepicker/bootstrap-datepicker.js" type="text/javascript"></script>-->
        <!-- Bootstrap WYSIHTML5
        <script src="js/plugins/bootstrap-wysihtml5/bootstrap3-wysihtml5.all.min.js" type="text/javascript"></script>-->
        <!-- iCheck -->
        <script src="js/plugins/iCheck/icheck.min.js" type="text/javascript"></script>
        <!-- calendar -->
        <script src="js/plugins/fullcalendar/fullcalendar.js" type="text/javascript"></script>

        <!-- Director App -->
        <script src="js/Director/app.js" type="text/javascript"></script>

        <!-- Director dashboard demo (This is only for demo purposes) -->
        <script src="js/Director/dashboard.js" type="text/javascript"></script>

        <!-- Director for demo purposes -->
        <script type="text/javascript">
            $('input').on('ifChecked', function(event) {
                // var element = $(this).parent().find('input:checkbox:first');
                // element.parent().parent().parent().addClass('highlight');
                $(this).parents('li').addClass("task-done");
                console.log('ok');
            });
            $('input').on('ifUnchecked', function(event) {
                // var element = $(this).parent().find('input:checkbox:first');
                // element.parent().parent().parent().removeClass('highlight');
                $(this).parents('li').removeClass("task-done");
                console.log('not');
            });

        </script>
        <script>
            $('#noti-box').slimScroll({
                height: '400px',
                size: '5px',
                BorderRadius: '5px'
            });

            $('input[type="checkbox"].flat-grey, input[type="radio"].flat-grey').iCheck({
                checkboxClass: 'icheckbox_flat-grey',
                radioClass: 'iradio_flat-grey'
            });
</script>
<script type="text/javascript">
    $(function() {
                "use strict";
                //BAR CHART
                var data = {
                    labels: ["January", "February", "March", "April", "May", "June", "July"],
                    datasets: [
                        {
                            label: "My First dataset",
                            fillColor: "rgba(220,220,220,0.2)",
                            strokeColor: "rgba(220,220,220,1)",
                            pointColor: "rgba(220,220,220,1)",
                            pointStrokeColor: "#fff",
                            pointHighlightFill: "#fff",
                            pointHighlightStroke: "rgba(220,220,220,1)",
                            data: [65, 59, 80, 81, 56, 55, 40]
                        },
                        {
                            label: "My Second dataset",
                            fillColor: "rgba(151,187,205,0.2)",
                            strokeColor: "rgba(151,187,205,1)",
                            pointColor: "rgba(151,187,205,1)",
                            pointStrokeColor: "#fff",
                            pointHighlightFill: "#fff",
                            pointHighlightStroke: "rgba(151,187,205,1)",
                            data: [28, 48, 40, 19, 86, 27, 90]
                        }
                    ]
                };
            new Chart(document.getElementById("linechart").getContext("2d")).Line(data,{
                responsive : true,
                maintainAspectRatio: false,
            });

            });
            // Chart.defaults.global.responsive = true;
</script>
</body>
</html>

exibe_estabelecimento.php

<?php

     include_once "conexao.php";

     try{
    
    // executa a instrução SQL
    $consulta = $conectar->query("SELECT * FROM config;");
                                while ($linha = $consulta->fetch(PDO::FETCH_ASSOC)) {
                                echo "<span> $linha[estabelecimento] </span>";
                            echo "</a>";

                                                               }
                                } catch (PDOException$e) {
  
                                    echo $e->getMessage();

                                    }

                            ?>

Ou veja ao vivo:

http://srvdr.hol.es/demo2/index.php

Compartilhar este post


Link para o post
Compartilhar em outros sites

Acho que o erro está : echo "<span> $linha[estabelecimento] </span>";

Bote: echo "<span>".$linha['estabelecimento']."</span>";

A aspas simples('') não posta no estabelecimento. Acho que e só isso, se não reporta aqui.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pessoal, é sério que ninguém pensou em ler o erro? Vocês estão chutando muito longe.

Primeiro de tudo, o erro é específico, não tem nada de abstrato:

Fatal error: Call to a member function fetch() on a non-object in /home/u933074842/public_html/funcao/exibe_estabelecimento.php on line 9


Ou seja, o erro é na linha 9. Que possui o seguinte código:

while ($linha = $consulta->fetch(PDO::FETCH_ASSOC)) {

Traduzindo, está dizendo o seguinte:

 

Erro fatal: Chamando uma função membro fetch() em um não-objeto...

 

Ou seja, estão chamando uma função, que deveria pertencer ao objeto consulta (member function) e um não-objeto (non-object).

 

Agora dever verificar porque $consulta não é um objeto, ou seja, esse trecho de código:

$consulta = $conectar->query("SELECT * FROM config;");

Vamos ao manual do PHP PDO::query.

 

Na parte aonde diz, "Return" no manual, está escrito o seguinte:

PDO::query() returns a PDOStatement object, or FALSE on failure. 

Ou seja, retorna um objeto PDOStatement ou FALSE no caso de falha. Se não está vindo um objeto, está vindo o boolean FALSE. Verifique a sua query se está correta, se as tabelas existem e/ou se está conectado no banco de dados correto.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Acho que o erro está : echo "<span> $linha[estabelecimento] </span>";

Bote: echo "<span>".$linha['estabelecimento']."</span>";

A aspas simples('') não posta no estabelecimento. Acho que e só isso, se não reporta aqui.

Índices de array, em uma string, devem ser sem apóstrofos. Indiferente se forem aspas simples ou duplas. Somente fora de uma string que é obrigatório.

 

tente assim:

echo "<span> $linha->estabelecimento </span>";
http://www.devmedia.com.br/introducao-ao-php-pdo/24973

 

Seria dessa forma se o método fetch utilizado fosse PDO::FETCH_OBJ

Compartilhar este post


Link para o post
Compartilhar em outros sites
Seria dessa forma se o método fetch utilizado fosse PDO::FETCH_OBJ

 

sim, de fato é assim que está no tutorial.. desatenção minha..

Compartilhar este post


Link para o post
Compartilhar em outros sites

@Gabriel Heming, descobri outro erro além desse, que além da query estar incorreta, eu estava fazendo uma "conexão cruzada", ou seja estava fazendo conexão a um outro servidor meu da mesma hospedagem, então ele negava acesso e as tabelas do outro servidor eram diferentes.

 

Obrigado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.