Jump to content
eduubessa

[Dúvida] Php Orientado Por Objectos com Mysqli

Recommended Posts

eduubessa

Boas, eu tenho o seguinte código:

Ficheiro : sisFunctions.inc.php

<?php

#  ----------------------------------------------
# |      File: sisFunctions.inc.php        |
# |      Developed: Eduardo Bessa     |
# |      Web app: Sirl Manutencão        |
# -----------------------------------------------

# Class com as definições e funções todas do MySql
class stMySqlSettings
{
      protected $stHost                                              =                             "127.0.0.1";          # IP do servidor MySql
      protected $stUser                                             =                             "root";                    # Utilizador do servidor MySql
      protected $stPass                                             =                             "rootroot";            # Password do utilizador
      protected $stName                                         =                            "db_sirlman";        # Nome da base de dados

      /* Variáveis públicas */
      public $MySqlConnect                                    =                            null;
      public $MySqlQueryTypes                                =                            null;
      public $MySqlTables

      #Função que constrói a ligação com o servidor MySql
      public function __construct()        {
          # Conecta com o servidor
          $this->$MySqlConnect = mysqli_connect($this->stHost, $this->stUser, $this->stName);
      }

      # Função que destroi a ligação com o servidor
      public function __destruct()        {
          # Verifica se a ligação com o servidor ainda está a funcionar
          if($this->MySqlConnect != null)
          {
              # Caso a ligação esteja a funcionar ele irá desconectar a ligação
              mysqli_close($this->MySqlConnect);
          }
      }

      # Função que executa a query
      public function MySqlQuery($a, $b = null)
      {
          # Verifica se existe alguma query para executar
          if($a != null)
          {
              # Caso haja ele vai executar a query
              $MySqlQuery = $this->query($a);

              # E verifica que tipo de dados usa
              if($b) == "types")
              {
                  $this->MySqlQueryTypes = $MySqlQuery;
              }
          }

          # Retorna o valor da variavel "$MySqlQuery"
          return $MySqlQuery;
      }

      # Função pública que seleciona o tipo de dados
      public function MySqlSelectTypeData($a)
      {

          #Verifica que tipos de dados precisamos
          switch($a)
          {
              case("rows")        : return mysqli_num_rows($this->MySqlQueryTypes);
              case("array")        : return mysqli_fetch_array($this->MySqlQueryTypes);
              case("assoc")        : return mysqli_fetch_assoc($this->MySqlQueryTypes);
              default : return mysqli_fetch_object($this->MySqlQueryTypes);
          }
      }

      # Função  pública para inserir dados
      public function MySqlInsertData($a)
      {
          $x = array();
          $y = array();

          for($i =  0; $i < count($a); $i++)
          {
              foreach($a[$i] as $camp => $value)
              {
                  eval("\$x[".$i."] = '".$camp."'; \$y[".$i."] = '".$value."';");
              }
          }

          $MySqlInsertData = "INSERT INTO `".$this->MySqlTables."` (";

          for($i = 0;$i < count($x); $i++)
          {
              $MySqlInsertData .= "`".$x[$i]."`";
              if($i < (count($x) - 1))
              {
                  $MySqlInsertData.= ", ";
              }
          }

          $MySqlInsertData .= ") VALUES (";

          for($i = 0;$i < count($y); $i++)
          {

              $MySqlInsertData .= is_numeric($y[$i]) ? : "'".$y[$i]."'";
              $MySqlInsertData .= "`".$y[$i]."`";
              if($i < (count($y) - 1))
              {
                  $MySqlInsertData.= ", ";
              }else{
                  $MySqlInsertData .= ");";
              }
          }

          return $this->MySqlQuery(MySqlInsertData);

      }

      # Função pública para atualizar dados
      public function MySqlUpdateData($a, $b, $c)
      {
          $x = array();
          $y = array();

          for($i =  0; $i < count($a); $i++)
          {
              foreach($a[$i] as $camp => $value)
              {
                  eval("\$x[".$i."] = '".$camp."'; \$y[".$i."] = '".$value."';");
              }
          }

          $MySqlUpdateData = "UPDATE `".$this->MySqlTables."` SET"

          for($i = 0; $i < count($x); $i++ 
          {
              $MySqlUpdateData  .= "`".$x[$i]."`='".$y[$i]."'";
              if($i < (count(($y) - 1))
              {
                  $MySqlUpdateData .= ", ";
              }
          }

          $MySqlUpdateData .= " WHERE (`".$b."`='".."');"

          return $this->MySqlQuery($MySqlUpdateData);

      }

      # Função pública para apagar dados
      public function MySqlDeleteData($a, $b)
      {
          $MySqlDeleteData = "DELETE FROM `".$this->MySqlTables."` WHERE (`".$a."`='".$b."');";

          return $this->MySqlQuery($MySqlDeleteData);
      }

      # Função pública que seleciona  os dados
      public function MySqlSelectData($a, $b)
      {
          $MySqlSelectData = "SELECT * FROM `".$this->MySqlTables."`";

          if($a != null)
          {
              $MySqlSelectData .= " WHERE ".$a.";";
          }elseif($b ! = null)
          {
              $MySqlSelectData .= " ".$b.";";
          }

          return $this->MySqlQuery($MySqlSelectData, "types");
      }

      $MySqlFunction = new MySqlFunction;


}

class dateTime
{

  public function dateMoth()
  {

      $m = date('m');
      $moth = array(1=>"janeiro","fevereiro","março","abril","maio","junho","julho","agosto","setembro","outubro","novembro","dezembro");
  }

}

Ficheiro: sisLogin.inc.php

<?php

  #  ----------------------------------------------
  # |      File: sisLogin.inc.php        |
  # |      Developed: Eduardo Bessa     |
  # |      Web app: Sirl Manutencão        |
  # -----------------------------------------------
  require_once('./sisClass_Settings.inc.php');

  $query = "(`accountLogin`='".$_POST['userLogin']."') AND (`accountPass`='".$_POST['userPass']."')";

  $MySqlFunction->MySqlTables = "tbl_accounts";
  $MySqlFunction->MySqlSelectData($query, null);

  $object  = $MySqlFunction->MySqlSelectType();
  echo("Bem-vindo <i>".$this->accountLogin."</i>");


?>

Aparece-me os seguintes erros:

::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::

PHP Notice: Undefined variable: MysqlQuery in C:\inetpub\wwwroot\PAP2\sisPhp\sisClass_Settings.inc.php on line 29

PHP Notice: Undefined variable: MysqlQuery in C:\inetpub\wwwroot\PAP2\sisPhp\sisClass_Settings.inc.php on line 33

PHP Warning: mysqli_fetch_object() expects parameter 1 to be mysqli_result, null given in C:\inetpub\wwwroot\PAP2\sisPhp\sisClass_Settings.inc.php on line 42

PHP Notice: Trying to get property of non-object in C:\inetpub\wwwroot\PAP2\sisPhp\sisLogin.inc.php on line 11

:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::

Podem-me ajudar sfv :) , Agradeço desde já a atenção...

Edited by eduubessa
De [spoiler] a [code] + geshi

Share this post


Link to post
Share on other sites
pikax

porque que usam o spoiler com informacao relativamente importante??

Nao tenho Javascript activado por isso nao consigo ver quais sao os error... e nao vou ligar-lo para ver...


Por muito mais que que estude só aprendo uma coisa, que ainda tenho muita coisa para aprender.

A beleza de um código está em decompor problemas complexos em pequenos blocos simples.

"learn how to do it manually first, then use the wizzy tool to save time."

"Kill the baby, don't be afraid of starting all over again. Fail soon, learn fast."

Share this post


Link to post
Share on other sites
eduubessa

porque que usam o spoiler com informacao relativamente importante??

Nao tenho Javascript activado por isso nao consigo ver quais sao os error... e nao vou ligar-lo para ver...

Já tirei do spoiler :)

Share this post


Link to post
Share on other sites
HappyHippyHippo

porque é que 3/4 das mensagens é de um ficheiro X e não é esse o ficheiro a ser apresentado ?


IRC : sim, é algo que ainda existe >> #p@p

Share this post


Link to post
Share on other sites
eduubessa

porque é que 3/4 das mensagens é de um ficheiro X e não é esse o ficheiro a ser apresentado ?

Peço desculpa o nome do ficheiro é o que esta apresentar no código

Ficheiro : sisClass_Settings.inc.php, já foi tudo alterado me continua a dar o mesmos erros :\

Share this post


Link to post
Share on other sites
HappyHippyHippo

continuo a dizer o mesmo :

porque é que 3/4 das mensagens é de um ficheiro X e não é esse o ficheiro a ser apresentado ?


IRC : sim, é algo que ainda existe >> #p@p

Share this post


Link to post
Share on other sites
eduubessa

Boas, o problema já foi resolvido o problema foi alguma falta de atenção, faltava ; e nos switchs os breaks;

:) Obrigado na mesma :)

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.