Joomla! Discussion Forums



It is currently Tue Nov 24, 2009 6:58 pm (All times are UTC )

 





Post new topic Reply to topic  [ 11 posts ] 
Author Message
Posted: Thu May 17, 2007 2:34 pm 
User avatar
Joomla! Apprentice
Joomla! Apprentice
Offline

Joined: Tue Jun 06, 2006 2:36 pm
Posts: 13
Gente estou precisando, de novo, de uma luz, estou fazendo um módulo para gerar duas ou mais colunas das informações vindas do bando de dados aqui está o código.

                  <---INÍCIO DO CÓDIGO--->

include ($mosConfig_absolute_path."configuration.php");
$con = mysql_connect($mosConfig_host,$mosConfig_user,$mosConfig_password);
$bd = mysql_select_db($mosConfig_db);
$sql = "SELECT * FROM #__minhatabela ORDER BY id ASC";


function GeraColunas($pNumColunas, $pQuery)
{
$resultado = mysql_query($pQuery);
echo ("\n");
for($i = 0; $i <= mysql_num_rows($resultado); ++$i) {
for ($intCont = 0; $intCont < $pNumColunas; $intCont++) {
$linha = mysql_fetch_array($resultado);
if ($i > $linha) {
if ( $intCont < $pNumColunas-1) echo "\n";
break;
}
$codigo = $linha[0];
$texto = $linha[3];
if ( $intCont == 0 ) echo "\n";
echo "\n";

    if ( $intCont == $pNumColunas-1 ) {
  echo "\n";
} else { $i++; }
}
}
echo ('
". $texto ."
');
}
GeraColunas(2, $sql);    <= AQUI CHAMA A FUNÇÃO 'GeraColunas'

                  <----FIM DO CÓDIGO----->

mas nao aparece registros, se eu fizer com outro banco e outra tabela os registros aparecem normalmente, alguma solução? ???


Last edited by bigodines on Sat May 19, 2007 12:32 pm, edited 1 time in total.

Top
   
 
Posted: Thu May 17, 2007 2:47 pm 
User avatar
Joomla! Hero
Joomla! Hero
Offline

Joined: Thu Aug 18, 2005 11:10 am
Posts: 2135
Location: Floripa, Brazil
Code:
$sql = "SELECT * FROM #__minhatabela ORDER BY id ASC";


o #__ só vai funcioanr se você utilizar o objeto $database do joomla. Se for fazer consulta manual, como você está fazendo, tem que inserir o nome completo da tabela ( normalmente é jos_minhatabela )

_________________
Matheus Teixeira Mendes
http://www.bigodines.com/blog || http://www.joomla.com.br/


Top
  E-mail  
 
Posted: Thu May 17, 2007 2:56 pm 
User avatar
Joomla! Apprentice
Joomla! Apprentice
Offline

Joined: Tue Jun 06, 2006 2:36 pm
Posts: 13
blz cara, eu jah tentei isso tambem e nao funcionou, o $database substitui tudo isso neh?:

include ($mosConfig_absolute_path."configuration.php");
$con = mysql_connect($mosConfig_host,$mosConfig_user,$mosConfig_password);
$bd = mysql_select_db($mosConfig_db);

outra coisa.

o '$database->setQuery'  equivale ao  'mysql_query'  certo?

e os outros

o '$database->loadResult()'
o '$database->loadObjectlist()'

quais são os equivalentes?

tem alguma coisa errada na função mesmo, por que pelo que percebo ele não está gerando a consulta. ???


Top
   
 
Posted: Thu May 17, 2007 3:04 pm 
User avatar
Joomla! Hero
Joomla! Hero
Offline

Joined: Thu Aug 18, 2005 11:10 am
Posts: 2135
Location: Floripa, Brazil
Não.

$database->setQuery() não executa a query. $database->query() executa.

$database->loadObjectList() carrega um vetor de objetos (n precisa usar o query() daí.) e o loadObject() carrega só a primeira linha como um objeto.

_________________
Matheus Teixeira Mendes
http://www.bigodines.com/blog || http://www.joomla.com.br/


Top
  E-mail  
 
Posted: Fri May 18, 2007 12:47 am 
User avatar
Joomla! Intern
Joomla! Intern
Offline

Joined: Wed Apr 18, 2007 1:15 pm
Posts: 69
Pelo que eu entendi o que você quer fazer, olhando bem por cima é mais ou menos isso:

global $database;

$sql = "SELECT #__minhatabela ORDER BY id ASC";

function GeraColunas($database, $sql)
      {
        $database->setQuery($sql);
    $rows = $database->loadObjectList();
          foreach($rows as $row)
{
                                $resultado = $row->campo;
                                    ...
                        }
      }


e por aí vai ...
Abraço,

Rodrigo


Last edited by rodrigospillere on Fri May 18, 2007 12:51 am, edited 1 time in total.

Top
   
 
Posted: Fri May 18, 2007 1:03 am 
User avatar
Joomla! Apprentice
Joomla! Apprentice
Offline

Joined: Tue Jun 06, 2006 2:36 pm
Posts: 13
nao cara, na verdade o que eu quero mesmo eh que a query seja executada, por que até agora está me parecendo que a instrução SQL nao está sendo executada para gerar os dados para as colunas, ta entendendo.


Top
   
 
Posted: Fri May 18, 2007 1:00 pm 
User avatar
Joomla! Intern
Joomla! Intern
Offline

Joined: Wed Apr 18, 2007 1:15 pm
Posts: 69
Quote:
nao cara, na verdade o que eu quero mesmo eh que a query seja executada, por que até agora está me parecendo que a instrução SQL nao está sendo executada para gerar os dados para as colunas, ta entendendo.


Sim ela está sendo! qdo eu chamo o $rows = $database->loadObjectList(); ele carrega as informações dentro do vetor. aí você pode buscar os dados desta maneira:

                      foreach($rows as $row)
                      {
                                $dado = row->campo_do_banco_de_dados;
                                    ...
                        }

Abraço,

Rodrigo


Top
   
 
Posted: Sat May 19, 2007 12:21 am 
User avatar
Joomla! Apprentice
Joomla! Apprentice
Offline

Joined: Tue Jun 06, 2006 2:36 pm
Posts: 13
pois eh, isso nao tem problema, neste caso os registros são listados assim:

Registro 1
Registro 2
.
.
.
assim por diante,

mas o que eu preciso eh que os registros fiquem assim

Registro 1            Registro 2
Registro 3            Registro 4

entende, duas ou mais colunas.


Top
   
 
Posted: Sat May 19, 2007 2:42 am 
User avatar
Joomla! Apprentice
Joomla! Apprentice
Offline

Joined: Tue Jun 06, 2006 2:36 pm
Posts: 13
cara consegui fazer funcionar, aqui esta o codigo que faltava.


$con = mysql_connect($mosConfig_host,$mosConfig_user,$mosConfig_password);
$bd  = mysql_select_db($mosConfig_db);
$sql = "SELECT * FROM ".$mosConfig_dbprefix."meu_banco ORDER BY id ASC";

com isso termino este tópico, obrigado fórum. :pop


Top
   
 
Posted: Sat May 19, 2007 6:14 pm 
User avatar
Joomla! Apprentice
Joomla! Apprentice
Offline

Joined: Tue Jun 06, 2006 2:36 pm
Posts: 13
gente desculpem, mas ainda nao terminou este modulo estou com este problema:

Fatal error: Cannot redeclare img() (previously declared in /htdocs/home/amazonarte/www/miolos/modules/mod_amazonarteinfo.php:63) in /htdocs/home/amazonarte/www/miolos/modules/mod_amazonarteinfo.php on line 63

no modulo

detalhe, este modulo está copiado no site

********inicio do codigo***********

global $mosConfig_locale, $mosConfig_offset, $mosConfig_lang, $mosConfig_dbprefix;
mosShowHead();
// Parametros do Modulo
$imagem = intval($params->get( 'imagem', 1 ) );
$texto = intval($params->get( 'texto', 1 ) );
$categoria = trim($params->get( 'categoria' ) );
$count = intval( $params->get( 'count', 5 ) );
$coluna = intval( $params->get( 'coluna', 1 ) );
$largura = intval( $params->get( 'largura' ) );
$altura = intval( $params->get( 'altura' ) );


//

if ( ($imagem && $texto) || ( !$imagem && !$texto)  )
{
global $database;
$sql = "SELECT * FROM ".$mosConfig_dbprefix."amazonmat WHERE published = '1' AND codcategoria = ".$categoria." ORDER BY datamateria DESC LIMIT $count";

function GeraColunas($pNumColunas, $pQuery, $largura, $altura)
{
$resultado = mysql_query($pQuery);
echo ("");
for($i = 0; $i <= mysql_num_rows($resultado); ++$i) {
for ($intCont = 0; $intCont < $pNumColunas; $intCont++) {
$linha = mysql_fetch_array($resultado);
if ($i > $linha) {
if ( $intCont < $pNumColunas-1) echo "";
break;
}
$pagina = "index.php?option=com_amazonarteinfo&task=home&id=$linha[0]";
$codigo = $linha[0];
$texto = $linha[3];
if ( $intCont == 0 ) echo "";
echo "";

    if ( $intCont == $pNumColunas-1 ) {
  echo "";
} else { $i++; }
  }
}
echo ('
". $texto ."
');
}
GeraColunas($coluna, $sql, $largura, $altura);
}

elseif ( $imagem && !$texto )
{
global $database;
$sql = "SELECT * FROM ".$mosConfig_dbprefix."amazonmat WHERE published = '1' AND codcategoria = ".$categoria." ORDER BY datamateria DESC LIMIT $count";

function Img($pNumColunas, $pQuery, $largura, $altura) *****aqui diz que a funcao esta redeclarada*********** LINHA 63
{
$resultado = mysql_query($pQuery);
echo ("\n");
for($i = 0; $i <= mysql_num_rows($resultado); ++$i) {
for ($intCont = 0; $intCont < $pNumColunas; $intCont++) {
$linha = mysql_fetch_array($resultado);
if ($i > $linha) {
if ( $intCont < $pNumColunas-1) echo "\n";
break;
}
$pagina = "index.php?option=com_amazonarteinfo&task=home&id=$linha[0]";
$codigo = $linha[0];
$texto = $linha[3];
if ( $intCont == 0 ) echo "";
echo "";

    if ( $intCont == $pNumColunas-1 ) {
  echo "\n";
} else { $i++; }
  }
}
echo ('
');
}
Img($coluna, $sql, $largura, $altura);
}

else
{
global $database;
$sql = "SELECT id, DATE_FORMAT(datamateria, '%d/%m') as data, published, codcategoria, submateria FROM ".$mosConfig_dbprefix."amazonmat WHERE published = '1' AND codcategoria = ".$categoria." ORDER BY datamateria DESC LIMIT $count";

function TxT($pNumColunas, $pQuery)
{
$resultado = mysql_query($pQuery);
echo ("\n");
for($i = 0; $i <= mysql_num_rows($resultado); ++$i) {
for ($intCont = 0; $intCont < $pNumColunas; $intCont++) {
$linha = mysql_fetch_array($resultado);
if ($i > $linha) {
if ( $intCont < $pNumColunas-1) echo "\n";
break;
}
$codigo = $linha[0];
$texto = $linha[4];
$data = $linha[1];
if ( $intCont == 0 ) echo "";
if (($codigo % 2) == 1) $fundo="#EBEBEB";
    else $fundo="#CCCCCC";
echo "";

    if ( $intCont == $pNumColunas-1 ) {
  echo "";
} else { $i++; }
  }
}
echo ('
$data - " . $texto . "
');
}
TxT($coluna, $sql);
}

*******fim do godigo**********

ou seja, a existem tres funções com nomes diferentes, mas com 'quase' a mesma  estrutura e o como jah disse o modulo esta copiado, alguma solução?


Top
   
 
Posted: Sat May 19, 2007 8:45 pm 
User avatar
Joomla! Hero
Joomla! Hero
Offline

Joined: Thu Aug 18, 2005 11:10 am
Posts: 2135
Location: Floripa, Brazil
cada modulo é um include.. se o módulo está sendo copiado vc tem que verificar se a função já não foi declarada. Se ela já foi declarada é só utilizá-la.

_________________
Matheus Teixeira Mendes
http://www.bigodines.com/blog || http://www.joomla.com.br/


Top
  E-mail  
 
Display posts from previous:  Sort by  
Post new topic Reply to topic  [ 11 posts ] 

Quick reply

 



Who is online

Users browsing this forum: No registered users and 7 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Jump to:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group