Ir para conteúdo

POWERED BY:

Arquivado

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

11closed

[Resolvido] Fatal error: Call to a member function FetchNextObjec

Recommended Posts

olá

 

está dando esse erro !!!

 

Fatal error: Call to a member function FetchNextObject() on a non-object in C:\..............\SITES\posregesdracena\centro.php on line 16

 

<?php
   include("conexao.php");
   include("funcoes.php");

   $con = new conexao();
   $status = "A";
   $sql = "select * from CURSOS WHERE CURSOS_STATUS = ".$status."";
   mysql_query("SET NAMES 'utf8'");
   $query = $con->banco->Execute($sql);

   while($array = $query->FetchNextObject()) {
    echo ' <div id="resultado">
       <img src="imagem/'.$array->CURSOS_ID.'.jpg" alt="Imagem"  />
                   <h2>'.$array->CURSOS_DESCRICAO.'</h2>
       <ul>
    ';
     $sql1 = "select * from ESPECIALIZACAO WHERE ESP_IDCURSO = '".$array->CURSOS_ID."' && ESP_STATUS = ".$status."";
     mysql_query("SET NAMES 'utf8'");
     $query1 = $con->banco->Execute($sql1);

     while($array1 = $query1->FetchNextObject()) {
      echo '<li><a href="cursos_completo.php?esp='.$array1->ESP_ID.'&cursos='.$array->CURSOS_ID.'" title="Vizualização completa">'.$array1->ESP_DESCRICAO.'</a></li>';
     }
    echo' </ul></div>';
   }
   ?>

 

por que será, aonde estou errando ?

aguem pode me ajudar ?

t+

Compartilhar este post


Link para o post
Compartilhar em outros sites

Estranho ainda ñ consegui resolver o problema, aguem porfavor me da uma luz

 

quando eu retiro essa parte

WHERE CURSOS_STATUS = ".$status."

 

e essa

&& ESP_STATUS = ".$status."

 

o erro sai, poren dessa forma não busca da maneira desejada.

porque será ?

t+

Compartilhar este post


Link para o post
Compartilhar em outros sites

adicione um mysql_error() no método Execute, para descobrir o motivo da query não ter retornado um resource.

Compartilhar este post


Link para o post
Compartilhar em outros sites

add o mysql_error(), e retorno o seguinte erro

 

Warning: mysql_error(): supplied argument is not a valid MySQL-Link resource in C:\...................\centro.php on line 15

 

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

poste a implementação deste método, você fez de forma errada.

 

além disso, se é string, deve estar entre aspas:

 

    $status = "A";
   $sql = "SELECT * FROM CURSOS WHERE CURSOS_STATUS = '{$status}'";

Compartilhar este post


Link para o post
Compartilhar em outros sites

<?php
   include("conexao.php");
   include("funcoes.php");

   $con = new conexao();
   $status = "A";
   $sql = mysql_error("select * from CURSOS WHERE CURSOS_STATUS = ".$status."");
   mysql_query("SET NAMES 'utf8'");
   $query = $con->banco->Execute($sql);
   while($array = $query->FetchNextObject()) {
    echo ' <div id="resultado">
       <img src="imagem/'.$array->CURSOS_ID.'.jpg" alt="Imagem"  />
                   <h2>'.$array->CURSOS_DESCRICAO.'</h2>
       <ul>
    ';
     $sql1 = "select * from ESPECIALIZACAO WHERE ESP_IDCURSO = '".$array->CURSOS_ID."' && ESP_STATUS = ".$status."";
     mysql_query("SET NAMES 'utf8'");
     $query1 = $con->banco->Execute($sql1);

     while($array1 = $query1->FetchNextObject()) {
      echo '<li><a href="cursos_completo.php?esp='.$array1->ESP_ID.'&cursos='.$array->CURSOS_ID.'" title="Vizualização completa">'.$array1->ESP_DESCRICAO.'</a></li>';
     }
    echo' </ul></div>';
   }
   ?>

 

a linha 15 é essa $sql = mysql_error("select * from CURSOS WHERE CURSOS_STATUS = ".$status."");

Compartilhar este post


Link para o post
Compartilhar em outros sites

não não amigo.. com calma, não era isso que você tinha que fazer..

deixe assim:

    $status = "A";
   $sql = "SELECT * FROM CURSOS WHERE CURSOS_STATUS = '{$status}'";

 

oque eu queria ver, era a declaração do método Execute da tua class banco.

Compartilhar este post


Link para o post
Compartilhar em outros sites

ata ok, me desculpe

 

<?php
   require('adodb/adodb.inc.php');

class conexao{

   var $tipo_banco    = "mysql";
   var $servidor      = "sever";
   var $usuario       = "user";
   var $senha         = "senha";
   var $banco   = "nomebanco";       

      function conexao(){
    $this->banco = NewADOConnection($this->tipo_banco);
   $this->banco->dialect = 3;
   $this->banco->debug = false;
   $this->banco->Connect($this->servidor,$this->usuario,$this->senha,"nomebanco");
   }
}
?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Poste apenas o método Execute() da class NewADOConnection

Compartilhar este post


Link para o post
Compartilhar em outros sites

William, não sei exatamente o local então postararei o function NewADOConnection inteira por via das duvidas.

 

function &ADONewConnection($db='')
{
GLOBAL $ADODB_NEWCONNECTION, $ADODB_LASTDB;

 if (!defined('ADODB_ASSOC_CASE')) define('ADODB_ASSOC_CASE',2);
 $errorfn = (defined('ADODB_ERROR_HANDLER')) ? ADODB_ERROR_HANDLER : false;
 $false = false;
 if ($at = strpos($db,'://')) {
  $origdsn = $db;
  if (PHP_VERSION < 5) $dsna = @parse_url($db);
  else {
   $fakedsn = 'fake'.substr($db,$at);
   $dsna = @parse_url($fakedsn);
   $dsna['scheme'] = substr($db,0,$at);

   if (strncmp($db,'pdo',3) == 0) {
    $sch = explode('_',$dsna['scheme']);
    if (sizeof($sch)>1) {
     $dsna['host'] = isset($dsna['host']) ? rawurldecode($dsna['host']) : '';
     $dsna['host'] = rawurlencode($sch[1].':host='.rawurldecode($dsna['host']));
     $dsna['scheme'] = 'pdo';
    }
   }
  }

  if (!$dsna) {
   // special handling of oracle, which might not have host
   $db = str_replace([url=""]'@/','@adodb-fakehost/',$db[/url]);
   $dsna = parse_url($db);
   if (!$dsna) return $false;
   $dsna['host'] = '';
  }
  $db = @$dsna['scheme'];
  if (!$db) return $false;
  $dsna['host'] = isset($dsna['host']) ? rawurldecode($dsna['host']) : '';
  $dsna['user'] = isset($dsna['user']) ? rawurldecode($dsna['user']) : '';
  $dsna['pass'] = isset($dsna['pass']) ? rawurldecode($dsna['pass']) : '';
  $dsna['path'] = isset($dsna['path']) ? rawurldecode(substr($dsna['path'],1)) : ''; # strip off initial /

  if (isset($dsna['query'])) {
   $opt1 = explode('&',$dsna['query']);
   foreach($opt1 as $k => $v) {
    $arr = explode('=',$v);
    $opt[$arr[0]] = isset($arr[1]) ? rawurldecode($arr[1]) : 1;
   }
  } else $opt = array();
 }
/*
 *  phptype: Database backend used in PHP (mysql, odbc etc.)
 *  dbsyntax: Database used with regards to SQL syntax etc.
 *  protocol: Communication protocol to use (tcp, unix etc.)
 *  hostspec: Host specification (hostname[:port])
 *  database: Database to use on the DBMS server
 *  username: User name for login
 *  password: Password for login
 */
 if (!empty($ADODB_NEWCONNECTION)) {
  $obj = $ADODB_NEWCONNECTION($db);

 } else {

  if (!isset($ADODB_LASTDB)) $ADODB_LASTDB = '';
  if (empty($db)) $db = $ADODB_LASTDB;

  if ($db != $ADODB_LASTDB) $db = ADOLoadCode($db);

  if (!$db) {
   if (isset($origdsn)) $db = $origdsn;
   if ($errorfn) {
    // raise an error
    $ignore = false;
    $errorfn('ADONewConnection', 'ADONewConnection', -998,
       "could not load the database driver for '$db'",
       $db,false,$ignore);
   } else
     ADOConnection::outp( "<p>ADONewConnection: Unable to load database driver '$db'</p>",false);

   return $false;
  }

  $cls = 'ADODB_'.$db;
  if (!class_exists($cls)) {
   adodb_backtrace();
   return $false;
  }

  $obj = new $cls();
 }

 # constructor should not fail
 if ($obj) {
  if ($errorfn)  $obj->raiseErrorFn = $errorfn;
  if (isset($dsna)) {
   if (isset($dsna['port'])) $obj->port = $dsna['port'];
   foreach($opt as $k => $v) {
    switch(strtolower($k)) {
    case 'new':
         $nconnect = true; $persist = true; break;
    case 'persist':
    case 'persistent':  $persist = $v; break;
    case 'debug':  $obj->debug = (integer) $v; break;
    #ibase
    case 'role':  $obj->role = $v; break;
    case 'dialect':  $obj->dialect = (integer) $v; break;
    case 'charset':  $obj->charset = $v; $obj->charSet=$v; break;
    case 'buffers':  $obj->buffers = $v; break;
    case 'fetchmode':   $obj->SetFetchMode($v); break;
    #ado
    case 'charpage': $obj->charPage = $v; break;
    #mysql, mysqli
    case 'clientflags': $obj->clientFlags = $v; break;
    #mysql, mysqli, postgres
    case 'port': $obj->port = $v; break;
    #mysqli
    case 'socket': $obj->socket = $v; break;
    #oci8
    case 'nls_date_format': $obj->NLS_DATE_FORMAT = $v; break;
    }
   }
   if (empty($persist))
    $ok = $obj->Connect($dsna['host'], $dsna['user'], $dsna['pass'], $dsna['path']);
   else if (empty($nconnect))
    $ok = $obj->PConnect($dsna['host'], $dsna['user'], $dsna['pass'], $dsna['path']);
   else
    $ok = $obj->NConnect($dsna['host'], $dsna['user'], $dsna['pass'], $dsna['path']);

   if (!$ok) return $false;
  }
 }
 return $obj;
}

 

 

 

 

 

ou é esse que você pedio ?

 

class classe{
/* Conexao Banco */
private $cam = "mysql";
private $base = "Nomebanco";
private $user = "userbanco";
private $senha = "senhabanco";
public $sql;
public function conexao(){
 $conexao = mysql_connect($this->cam,$this->user,$this->senha);
 $ligacao = mysql_select_db($this->base,$conexao);
}

public function exe_query(){
       $result = mysql_query($this->sql);
 if (!$result){
  die('Comando Invalido: '. mysql_error());
 }
 else{
  return $result;
 }
}
}

 

olá willian deu certo cara

 

agora era so retirar o mysql_error()

o problema esta aqui, ao invéz disso:

$sql [color="#666600"]=[/color] [color="#008800"][color="#000000"]"select * from CURSOS WHERE CURSOS_STATUS = [color="#008800"]"[/color][color="#666600"].[/color]$status[color="#666600"].[/color][color="#008800"]"[/color][/color][/color][color="#008800"]"[/color][color="#666600"];[/color] 

era isso

$sql = "select * from CURSOS WHERE CURSOS_STATUS = '{$status}'";

 

agora ficou assim

 

<?php
   include("conexao.php");
   include("funcoes.php");

   $con = new conexao();
   $status = "A";
   $sql = "select * from CURSOS WHERE CURSOS_STATUS = '{$status}'";
   mysql_query("SET NAMES 'utf8'");
   $query = $con->banco->Execute($sql);
   while($array = $query->FetchNextObject()) {
    echo ' <div id="resultado">
       <img src="imagem/'.$array->CURSOS_ID.'.jpg" alt="Imagem"  />
                   <h2>'.$array->CURSOS_DESCRICAO.'</h2>
       <ul>
    ';
     $sql1 = "select * from ESPECIALIZACAO WHERE ESP_IDCURSO = '".$array->CURSOS_ID."' && ESP_STATUS = '{$status}'";
     mysql_query("SET NAMES 'utf8'");
     $query1 = $con->banco->Execute($sql1);

     while($array1 = $query1->FetchNextObject()) {
      echo '<li><a href="cursos_completo.php?esp='.$array1->ESP_ID.'&cursos='.$array->CURSOS_ID.'" title="Vizualização completa">'.$array1->ESP_DESCRICAO.'</a></li>';
     }
    echo' </ul></div>';
   }
   ?>

 

OBRIGADO William..

 

olá willian deu certo cara

 

agora era so retirar o mysql_error()

o problema esta aqui, ao invéz disso:

$sql [color="#666600"]=[/color] [color="#008800"][color="#000000"]"select * from CURSOS WHERE CURSOS_STATUS = [color="#008800"]"[/color][color="#666600"].[/color]$status[color="#666600"].[/color][color="#008800"]"[/color][/color][/color][color="#008800"]"[/color][color="#666600"];[/color] 

era isso

$sql = "select * from CURSOS WHERE CURSOS_STATUS = '{$status}'";

 

agora ficou assim

 

<?php
   include("conexao.php");
   include("funcoes.php");

   $con = new conexao();
   $status = "A";
   $sql = "select * from CURSOS WHERE CURSOS_STATUS = '{$status}'";
   mysql_query("SET NAMES 'utf8'");
   $query = $con->banco->Execute($sql);
   while($array = $query->FetchNextObject()) {
    echo ' <div id="resultado">
       <img src="imagem/'.$array->CURSOS_ID.'.jpg" alt="Imagem"  />
                   <h2>'.$array->CURSOS_DESCRICAO.'</h2>
       <ul>
    ';
     $sql1 = "select * from ESPECIALIZACAO WHERE ESP_IDCURSO = '".$array->CURSOS_ID."' && ESP_STATUS = '{$status}'";
     mysql_query("SET NAMES 'utf8'");
     $query1 = $con->banco->Execute($sql1);

     while($array1 = $query1->FetchNextObject()) {
      echo '<li><a href="cursos_completo.php?esp='.$array1->ESP_ID.'&cursos='.$array->CURSOS_ID.'" title="Vizualização completa">'.$array1->ESP_DESCRICAO.'</a></li>';
     }
    echo' </ul></div>';
   }
   ?>

 

OBRIGADO William..

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.