Ir para conteúdo

POWERED BY:

Arquivado

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

Elnata COsta

Exibindo Valores do Banco de dados php OO

Recommended Posts

Bom pessoal seguinte primeiro começarei postando os códigos aqui:

 

NotificacoesData.class.php

<?php
 class Notificacoes extends CodonData 
 {
 
 		 public static function GetAllNotificacoes() {
       		           	 
            	$query = "SELECT *
                FROM   `notificacoes`
                WHERE `ativa`='1'
                ORDER BY `data` ASC";
                
                $results = DB::get_results($query);
                
                $code = DB::errno();
       		
       		if ($code != 0){
                $message = DB::error();
                throw new Exception($message, $code);
        }
        
         return $results;
        
       }
      public static function GetAsset($id)
	{
		$id = DB::escape($id);
		
		$sql = 'SELECT * FROM `notificacoes`
					WHERE `id`='.$id;
					ORDER BY `data` ASC";
		
		return DB::get_row($sql);
	}      
 
 }

 

Notificações.php

 public function notifica()
	  {
        if(!Auth::LoggedIn())
		{
			echo 'Você não possui permissão para acessar esta página!';
			return;
		}
		$this->set('allnotificacoes', NotificacoesData::GetAllNotificacoes());		
}

 

layout.tpl

<ul class="dropdown-menu">
<li class="nav-messages-header">
<?php 
if(!$allnotificacoes)
{
	echo '<a tabindex="-1" href="#">Você Possui <strong>0</strong> notificacções</a>';
	return;
}

foreach($allnotificacoes)
{
?>
<?php $conta_notificacoes = count($allnotificacoes); echo $conta_notificacoes; ?>
<a tabindex="-1" href="#">Você Possui <strong><?php echo $conta_notificacoes; ?></strong> notificações</a>
</li>
<?php } ?>

 

Esta ai pessoal meu código! Mas eu não estou conseguindo exibir o número de notificações que há no meu Banco de Daodos, o que há de errado com o código pessoal? E gostaria de saber também como exibi os valores dos campos: `nome`,`data`,`texto`. Do banco de dados! Grato a ajuda de vocês! ;)

Compartilhar este post


Link para o post
Compartilhar em outros sites

aqui as aspas estão zoadas

 

 

$sql = 'SELECT * FROM `notificacoes` WHERE `id`='.$id; ORDER BY `data` ASC";

 

junte td numa string so usando um tipo de aspas.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Está usando alguma engine de template?

Sim usando phpvms! Baseado em CMS!

 

aqui as aspas estão zoadas

 

 

$sql = 'SELECT * FROM `notificacoes` WHERE `id`='.$id; ORDER BY `data` ASC";

 

junte td numa string so usando um tipo de aspas.

Vou tentar mano!! (y) ;)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Sobre o título do tópico: cuidado, muito cuidado ao falar OO. Você não está programando em OO nem aqui, nem na china. Você está usando estrutura de classes com comandos procedurais dentro.

 

A query você pode fazer assim:

 

$sql = sprintf("SELECT * FROM `notificacoes` WHERE `id`=%s ORDER BY `data` ASC", $id);

Compartilhar este post


Link para o post
Compartilhar em outros sites

 

Sobre o título do tópico: cuidado, muito cuidado ao falar OO. Você não está programando em OO nem aqui, nem na china. Você está usando estrutura de classes com comandos procedurais dentro.

 

A query você pode fazer assim:

 

$sql = sprintf("SELECT * FROM `notificacoes` WHERE `id`=%s ORDER BY `data` ASC", $id);

Opa amigo vou ver se resolve! Desculpe-me quanto ao título! Sempre pessei que esse fosse o tipo de programação OO vendo tutoriais e etc na internet! ;) Obgd por avisar!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Que nada pô.. foi apenas um alerta, pois muitos pensam que programam orientado a objetos, mas na verdade não estão. Você usa classes em programação orientada a objetos (na maioria das linguagens), mas não usando dessa forma.

 

Se você se interessar por OO: esse post (no início) http://forum.imasters.com.br/topic/401441-organizar-cdigo/#entry1572696 fala um pouco sobre essa sensação de programar em OO.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Que nada pô.. foi apenas um alerta, pois muitos pensam que programam orientado a objetos, mas na verdade não estão. Você usa classes em programação orientada a objetos (na maioria das linguagens), mas não usando dessa forma.

 

Se você se interessar por OO: esse post (no início) http://forum.imasters.com.br/topic/401441-organizar-cdigo/#entry1572696 fala um pouco sobre essa sensação de programar em OO.

Obrigado mano pela informação! srsr mas ai nada que eu faça dos comentário acima da certo!! srrss o que será que pode ser eim?? :(

Compartilhar este post


Link para o post
Compartilhar em outros sites

O que? o problema? eu já disse e dei o exemplo, as aspas estão com problema na segunda query. O seu código ficaria assim:

 

<?php
 class Notificacoes extends CodonData 
 {
 
         public static function GetAllNotificacoes() {
                         
                $query = "SELECT *
                FROM   `notificacoes`
                WHERE `ativa`='1'
                ORDER BY `data` ASC";
                
                $results = DB::get_results($query);
                
                $code = DB::errno();
            
            if ($code != 0){
                $message = DB::error();
                throw new Exception($message, $code);
        }
        
         return $results;
        
       }
      public static function GetAsset($id)
    {
        $id = DB::escape($id);

        $query = "SELECT *
        FROM  `notificacoes`
        WHERE `id`=%s
        ORDER BY `data` ASC";
        
        $sql = sprintf($query, $id);
        
        return DB::get_row($sql);
    }      
 
 }

Compartilhar este post


Link para o post
Compartilhar em outros sites

 

O que? o problema? eu já disse e dei o exemplo, as aspas estão com problema na segunda query. O seu código ficaria assim:

 

<?php
 class Notificacoes extends CodonData 
 {
 
         public static function GetAllNotificacoes() {
                         
                $query = "SELECT *
                FROM   `notificacoes`
                WHERE `ativa`='1'
                ORDER BY `data` ASC";
                
                $results = DB::get_results($query);
                
                $code = DB::errno();
            
            if ($code != 0){
                $message = DB::error();
                throw new Exception($message, $code);
        }
        
         return $results;
        
       }
      public static function GetAsset($id)
    {
        $id = DB::escape($id);

        $query = "SELECT *
        FROM  `notificacoes`
        WHERE `id`=%s
        ORDER BY `data` ASC";
        
        $sql = sprintf($query, $id);
        
        return DB::get_row($sql);
    }      
 
 }

Ah sim mano! Desculpe-me acho que não comentei no quote acima.. srrs fiz esse procedimento mas não funcionou.. :(

Compartilhar este post


Link para o post
Compartilhar em outros sites

No seu layout.tpl, remova o return, deixando assim:

 

<ul class="dropdown-menu">
<li class="nav-messages-header">
<?php 
if(!$allnotificacoes)
{
	echo '<a tabindex="-1" href="#">Você Possui <strong>0</strong> notificacções</a>';
}

foreach($allnotificacoes)
{
?>
<?php $conta_notificacoes = count($allnotificacoes); echo $conta_notificacoes; ?>
<a tabindex="-1" href="#">Você Possui <strong><?php echo $conta_notificacoes; ?></strong> notificações</a>
</li>
<?php } ?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Vou tentar aqui amigo! Lhe informarei caso de certo! ;)



Amigo editei algumas coisas no meu código veja como o deixei

 

Notificacoes.php:

<?php
class Notificacoes extends CodonModule 
{
public function notifica()
{
        if(!Auth::LoggedIn())
		{
			echo 'Você não possui permissão para acessar esta página!';
			return;
		}
		$this->set('notificacoes', NotificaData::GetAllNotificacoes());	
		
}
}

 

NotificacoesData.class.php:

<?php

 class Notifica extends CodonData 
 {
 
 		 public static function GetAllNotificacoes() {
       		           	 
            	;
            	
            	$query = "SELECT *
                FROM   `notificacoes`
                WHERE `ativa`='1'
                ORDER BY `data` ASC";
                
                $results = DB::get_results($query);
                
                $code = DB::errno();
       		
       		if ($code != 0){
                $message = DB::error();
                throw new Exception($message, $code);
        }
        
         return $results;
        
       }
     /* public static function GetAsset($id)
	{
		$id = DB::escape($id);
		
		$sql = sprintf("SELECT * FROM `notificacoes` WHERE `id`=%s ORDER BY `data` ASC", $id);
		
		
		
		return DB::get_row($sql);
	}   */   
 
 }

 

ai ele me da o erro:

Fatal error: Class 'Notifica' not found in /home/voemerco/public_html/v2/core/modules/Notificacoes/Notificacoes.php on line 14

 

o que é este erro???

Compartilhar este post


Link para o post
Compartilhar em outros sites

Amigo,

 

Será que o caminho da classe está correto? Você não modificou nenhuma linha com a chamada dessa classe não?

 

Confere as modificações que você fez, veja se não deixou nada escapar!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Amigo,

 

Será que o caminho da classe está correto? Você não modificou nenhuma linha com a chamada dessa classe não?

 

Confere as modificações que você fez, veja se não deixou nada escapar!

Mano já conferi e conferi novamente tá tudo certinhoo!!! :/

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.