Ir para conteúdo
Fórum Script Brasil
  • 0

{ Oop Classe & Objeto } Dúvida em como usar um objeto dentro de ou


Ronny Santana

Pergunta

Ola, Boa Tarde Amigos!

Estou fazendo um pequeno aplicativo em OOP para gerenciamento de Link's e Redirecionamentos com Url Amigáveis...

A dúvida é a seguinte: Como posso usar um Objeto dentro de outro Objeto dentro da propria Classe e pegar uma variavel e colocar dentro do Objeto?

Abaixo o Código.

<?php
class newConfig {
function SqlQuery($GoUrl_cod) {
include "../settings-and-functions.php";
ConnectSelectBDGeral();
$SelectTBGoUrl = mysql_query ("SELECT * FROM GoUrl WHERE GoUrl_cod='$GoUrl_cod' ");
$RowsTBGoUrl = mysql_num_rows ($SelectTBGoUrl);
while($mostra = mysql_fetch_array($SelectTBGoUrl)) {
$GoUrl_cod = $mostra['GoUrl_cod'];
$GoUrl_name = $mostra['GoUrl_name'];
$GoUrl_url = $mostra['GoUrl_url'];
$GoUrl_count = $mostra['GoUrl_count'];

return $GoUrl_name
}
}

public function GoUrl($GoUrl_cod) {

$this->SqlQuery($GoUrl_cod);
return $GoUrl_url = "<a href='http://www.ronnysantana.com.br/GoUrl/". $GoUrl_cod ."'>". $GoUrl_name . "</a>";
}

}



$newConfig = new newConfig;
print $newConfig->GoUrl('aL-A9njxPa');
?>

Link para o comentário
Compartilhar em outros sites

5 respostass a esta questão

Posts Recomendados

  • 0

Segue exemplo:

<?php
class ClasseA
{
    public function __construct()
    {
    }
    public function createInstance()
    {
        $this->objetoB = new ClasseB();
    }
}
class ClasseB
{
    public function __construct()
    {
    }
    public function metodoB()
    {
        echo 'Método metodoB() da classe ClasseB invocado!';
    }
}
$objetoA  = new ClasseA();
$objetoA->createInstance();
$objetoA->objetoB->metodoB();
?>
Segue mais
<?php
class ClasseA
{
    public function __construct()
    {
    }
    public function createInstance()
    {
        $this->objetoB = new ClasseB();
    }
}
class ClasseB
{
    private $valor;
    public function __construct()
    {
    }
    public function metodoB()
    {
        echo 'Método metodoB() da classe ClasseB invocado!';
    }
    public function setValor($valor)
    {
        $this->valor = $valor;
    }
    public function getValor()
    {
        return $this->valor;
    }
}

//TESTANDO
$objetoA  = new ClasseA();
$objetoA->createInstance();
$objetoA->objetoB->metodoB();
$objetoA->objetoB->setValor('Ola mundo');
echo '<h1>', $objetoA->objetoB->getValor(), '</h1>';

Link para o comentário
Compartilhar em outros sites

  • 0
Segue exemplo:

<?php
class ClasseA
{
    public function __construct()
    {
    }
    public function createInstance()
    {
        $this->objetoB = new ClasseB();
    }
}
class ClasseB
{
    public function __construct()
    {
    }
    public function metodoB()
    {
        echo 'Método metodoB() da classe ClasseB invocado!';
    }
}
$objetoA  = new ClasseA();
$objetoA->createInstance();
$objetoA->objetoB->metodoB();
?>
Segue mais
<?php
class ClasseA
{
    public function __construct()
    {
    }
    public function createInstance()
    {
        $this->objetoB = new ClasseB();
    }
}
class ClasseB
{
    private $valor;
    public function __construct()
    {
    }
    public function metodoB()
    {
        echo 'Método metodoB() da classe ClasseB invocado!';
    }
    public function setValor($valor)
    {
        $this->valor = $valor;
    }
    public function getValor()
    {
        return $this->valor;
    }
}

//TESTANDO
$objetoA  = new ClasseA();
$objetoA->createInstance();
$objetoA->objetoB->metodoB();
$objetoA->objetoB->setValor('Ola mundo');
echo '<h1>', $objetoA->objetoB->getValor(), '</h1>';
Mais e no meu caso, seria assim? Obs.: Eu preciso que "$GoUrl_name" da func "SqlQuery" retorne para a func "GoUrl"
<?php
class newConfig {
function SqlQuery($GoUrl_cod) {
include "../settings-and-functions.php";
ConnectSelectBDGeral();
$SelectTBGoUrl = mysql_query ("SELECT * FROM GoUrl WHERE GoUrl_cod='$GoUrl_cod' ");
$RowsTBGoUrl = mysql_num_rows ($SelectTBGoUrl);
while($mostra = mysql_fetch_array($SelectTBGoUrl)) {
$GoUrl_cod = $mostra['GoUrl_cod'];
$GoUrl_name = $mostra['GoUrl_name'];
$GoUrl_url = $mostra['GoUrl_url'];
$GoUrl_count = $mostra['GoUrl_count'];

return $GoUrl_name
}
}

public function GoUrl($GoUrl_cod) {

$this->SqlQuery($GoUrl_cod);
return $GoUrl_url = "<a href='http://www.ronnysantana.com.br/GoUrl/". $GoUrl_cod ."'>". $GoUrl_name . "</a>";
}

}



$newConfig = new newConfig;
print $newConfig->GoUrl('aL-A9njxPa');
?>

No que você explicou e postou o exemplo, é com class dentro de class, eu preciso apenas de function dentro de function e retorne um resultado.

Link para o comentário
Compartilhar em outros sites

  • 0

Brother,

Este seu código esta muito confuso.... muito mesmo!

<?php

//include "../settings-and-functions.php";

function ConnectSelectBDGeral()
{
    mysql_connect('localhost', 'root', '');
    mysql_select_db('test');
}

class newConfig 
{
    private $GoUrl_name;
    
    public function SqlQuery($GoUrl_cod) 
    {
        
        ConnectSelectBDGeral();
        $SelectTBGoUrl = mysql_query ("SELECT * FROM GoUrl WHERE GoUrl_cod='$GoUrl_cod' ");
        $RowsTBGoUrl = mysql_num_rows ($SelectTBGoUrl);
        while($mostra = mysql_fetch_array($SelectTBGoUrl)) 
        {
            $GoUrl_cod = $mostra['GoUrl_cod'];
            $GoUrl_name = $mostra['GoUrl_name'];
            $GoUrl_url = $mostra['GoUrl_url'];
            $GoUrl_count = $mostra['GoUrl_count'];            
        }
        $this->GoUrl_name = $mostra;
    }
    public function GoUrl($GoUrl_cod) 
    {
        $this->SqlQuery($GoUrl_cod);
        return $GoUrl_url = "<a href='http://www.ronnysantana.com.br/GoUrl/". $GoUrl_cod ."'>". $this->GoUrl_name . "</a>";
    }
}
//TESTANDO
$newConfig = new newConfig();
print $newConfig->GoUrl('aL-A9njxPa');
?>

Link para o comentário
Compartilhar em outros sites

  • 0
Brother,

Este seu código esta muito confuso.... muito mesmo!

<?php

//include "../settings-and-functions.php";

function ConnectSelectBDGeral()
{
    mysql_connect('localhost', 'root', '');
    mysql_select_db('test');
}

class newConfig 
{
    private $GoUrl_name;
    
    public function SqlQuery($GoUrl_cod) 
    {
        
        ConnectSelectBDGeral();
        $SelectTBGoUrl = mysql_query ("SELECT * FROM GoUrl WHERE GoUrl_cod='$GoUrl_cod' ");
        $RowsTBGoUrl = mysql_num_rows ($SelectTBGoUrl);
        while($mostra = mysql_fetch_array($SelectTBGoUrl)) 
        {
            $GoUrl_cod = $mostra['GoUrl_cod'];
            $GoUrl_name = $mostra['GoUrl_name'];
            $GoUrl_url = $mostra['GoUrl_url'];
            $GoUrl_count = $mostra['GoUrl_count'];            
        }
        $this->GoUrl_name = $mostra;
    }
    public function GoUrl($GoUrl_cod) 
    {
        $this->SqlQuery($GoUrl_cod);
        return $GoUrl_url = "<a href='http://www.ronnysantana.com.br/GoUrl/". $GoUrl_cod ."'>". $this->GoUrl_name . "</a>";
    }
}
//TESTANDO
$newConfig = new newConfig();
print $newConfig->GoUrl('aL-A9njxPa');
?>
Certo, vou colocar no formato que deu certo e te explicar melhor... O CODIGO:
<?php
class newConfig { // CRIA A CLASSE
public function GoUrl($GoUrl_cod) { // CRIA A FUNÇÃO
include "../settings-and-functions.php"; // INCLUDE ARQUIVO DE CONFIGURAÇÃO DO SQL
ConnectSelectBDGeral(); // CHAMA A FUNÇÃO DO SQL QUE ESTA EM "settings-and-functions.php"
$SelectTBGoUrl = mysql_query ("SELECT * FROM GoUrl WHERE GoUrl_cod='$GoUrl_cod' "); // O RESTO É NORMAL DO DB
$RowsTBGoUrl = mysql_num_rows ($SelectTBGoUrl);
while($mostra = mysql_fetch_array($SelectTBGoUrl)) {
$GoUrl_cod = $mostra['GoUrl_cod'];
$GoUrl_name = $mostra['GoUrl_name'];
$GoUrl_url = $mostra['GoUrl_url'];
$GoUrl_count = $mostra['GoUrl_count'];
}
return $GoUrl_url = "<a href='http://www.jostape.com.br/GoUrl/". $GoUrl_cod ."'>". $GoUrl_name . "</a><br/>";
}
}

$newConfig = new newConfig;
print $newConfig->GoUrl('aL-A9njxPa');
?>

Deu pra entender, dessa forma funciona perfeitamente com as informações vindo do DB... veja: http://www.jostape.com.br/GoUrl/teste.class.php

O que eu tentei fazer, é colocar a consulta SQL pra pegar o nome do site em uma nova função, só pra ficar um pouco mais organizado!

Tem alguma sugestão?

Obrigado pela ajuda!

Link para o comentário
Compartilhar em outros sites

  • 0

Salve,

Nenhuma :huh:

<?php

/*
CREATE TABLE GoUrl
(
    GoUrl_cod VARCHAR(255) NOT NULL,
    GoUrl_name VARCHAR(255) NULL,
    CONSTRAINT PK_GoUrl PRIMARY KEY(GoUrl_cod)
)
ENGINE = INNODB;

INSERT INTO GoUrl VALUES('aL-A9njxPa', 'http://www.google.com/');

SELECT GoUrl_cod, GoUrl_name FROM GoUrl;

*/

function ConnectSelectBDGeral()
{
    mysql_connect('localhost', 'root', '');
    mysql_select_db('test');
}
class newConfig
{
    public function GoUrl($GoUrl_cod)
    {
        return $this->SqlQuery($GoUrl_cod);
    }
    
    private function SqlQuery($GoUrl_cod)
    {
        ConnectSelectBDGeral();
        $SelectTBGoUrl  = mysql_query ("SELECT GoUrl_name FROM GoUrl WHERE GoUrl_cod='$GoUrl_cod';");
        $mostra         = mysql_fetch_assoc($SelectTBGoUrl);
        $GoUrl_name     = $mostra['GoUrl_name'];
        return $GoUrl_url = "<a href='http://www.jostape.com.br/GoUrl/". $GoUrl_cod ."'>". $GoUrl_name . "</a><br/>";
    }
}
$newConfig = new newConfig();
print $newConfig->GoUrl('aL-A9njxPa');
?>

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,8k
×
×
  • Criar Novo...