Ir para conteúdo

POWERED BY:

Arquivado

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

Raziel Nomack

While dentro de While - Smarty

Recommended Posts

Olá pessoal, gostaria de agradecer a todos que me ajudam, poias as vezes é uma coisa seimples mais agente bate a cabeça e não ve. O que preciso fazer é o seguinte.tabela forum_categorias - Contem as categorias e descrições das mesmastabela foruns - Contem a categoria que o forum pertence e derivadospresiso fazer os seguinte

if((isset($_GET['operacao'])) && ($_GET['operacao'] == "forum"))	{	$showtopic	=	$_GET['showtopic'];	$showforum	=	$_GET['showforum'];	if((!isset($showtopic)) and (!isset($showforum)))		{		$tpl = "forumcategorias";		$query = mysql_query("select * from forum_categorias" ,$con);		while($row = mysql_fetch_assoc($query))			{			$categoria[] = $row['categoria'];			$descricao[] = $row['descricao'];			$query2	=   mysql_query("select * from foruns where categoria = '$categoria'", $con);			while($row2 = mysql_fetch_array($query2))				{				$titulo[] 			= $row2['forum'];				$descricao2[]		= $row2['descricao'];				$lider1[] 			= $row2['lider1'];				$lider2[] 			= $row2['lider2'];				$lider3[] 			= $row2['lider3'];				$lider4[] 			= $row2['lider4'];				$categoria2[] 		= $row2['categoria'];				$total_posts[]		= $row2['total_posts'];				$folder[] 			= $row2['folder'];				$data_ultimo_post[]	= $row2['data_ultimo_post'];				$autor_ultimo_post[]= $row2['autor_ultimo_post'];				$topicos[] 			= $row2['topicos'];				}			}		}	}$smarty->assign("categoria", $categoria);$smarty->assign("descricao", $descricao);$smarty->assign("titulo", $titulo);$smarty->assign("descricao2", $descricao2);$smarty->assign("lider1", $lider1);$smarty->assign("lider2", $lider2);$smarty->assign("lider3", $lider3);$smarty->assign("lider4", $lider4);$smarty->assign("categoria2", $categoria2);$smarty->assign("total_posts", $total_posts);$smarty->assign("folder", $folder);$smarty->assign("data_ultimo_post", $data_ultimo_post);$smarty->assign("autor_ultimo_post", $autor_ultimo_post);$smarty->assign("topicos", $topicos);	$smarty->assign("tpl", $tpl);$smarty->display("index.tpl");

Depois disso tudo tenho que passar pro Smarty, que Uma categoria e seus respectivos Foruns que estão nesta categoria...soh que não tah rolando.....segue tpl do smarty pra conferencia tb

	[:include file="busca.tpl":]	[:section name=categorias loop=$categoria:]			<div class="forumtop">			<img src="images/forum_topl.jpg" alt=" " class="forumtopl" />			<div class="forumtoptitle">				[:$categoria[categorias]:] - 				<span style="font-style:italic; font-weight:normal;">				[:$descricao[categorias]:]				</span>			</div>			<img src="images/forum_topr.jpg" alt=" " class="forumtopr" />		</div>		<div class="forumcategoriashd">		</div>		[:section name=foruns loop=$titulo:]				<div class="forumforuns">				<div class="forumfolder">					<img src="images/forum_foldersimples.jpg" alt="Simples" />				</div>				<div class="forumtitulo">				<span style="font-weight:bold;">[:$titulo[foruns]:]</span><br />				<span style="font-size:10px;">Descrição</span><br />				<span style="font-size:10px;">Liderado por: <span style="font-style:italic;">Fulando Siclano, Beltrano</span></span>				</div>				<div class="forumrespostas">				1257				</div>				<div class="forumrespostas">				1754				</div>				<div class="foruminfo">				Ultimo Post:<br />				<span style="font-weight:bold;">Fulano</span><br />				Data: 22/05/2006				</div>					</div>		[:/section:]		<div class="forum_base">		</div>	[:/section:]

Compartilhar este post


Link para o post
Compartilhar em outros sites

As tabelas não estao relacionadas......????

Se estiver nao a necessidade de dois SELECT nem dois WHILE..

 

Adailton

Como assim relacionadas? Sou meio leigo em questão de termos...

 

E na Realidade, o problema todo está no Smarty, pois ele exige que seja definido o array desta forma

 

$variavel[] = $row['campodatabela'];

 

Criando assim 2 arrays duplicados,

 

O resultado da forma que está fica assim:

 

Resultado da linha 1 do primeiro select

Resultado da linha 1 do segundo select

Resultado da linha 2 do segundo select

Resultado da linha 3 do segundo select

Resultado da linha 2 do primeiro select

Resultado da linha 1 do segundo select

Resultado da linha 2 do segundo select

Resultado da linha 3 do segundo select

 

sendo que era pra ficar assim

 

Resultado da linha 1 do primeiro select

Resultado da linha 1 do segundo select

Resultado da linha 2 do segundo select

Resultado da linha 2 do primeiro select

Resultado da linha 3 do segundo select

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olha soh descobri uma coisa.... vejam como este código agora...

 

 

<?php

session_start();

require("includes/includes.php");

require("includes/conection.php");

if((isset($_GET['operacao'])) && ($_GET['operacao'] == "forum"))

{

$showtopic = $_GET['showtopic'];

$showforum = $_GET['showforum'];

if((!isset($showtopic)) and (!isset($showforum)))

{

$tpl = "forumcategorias";

$query = mysql_query("select * from forum_categorias" ,$con);

while($row = mysql_fetch_assoc($query))

{

$categoria[] = $row['categoria'];

$descricao[] = $row['descricao'];

$consult = $row[categoria];

echo 'Categorias:'.$consult.'<br>';

$a++;

$query2[$a] = mysql_query("select * from foruns where categoria = '$consult'", $con);

while($row2 = mysql_fetch_array($query2[$a]))

{

$titulo = $row2['forum']; // o Certo seria assim $titulo[] = $row2['forum'];

echo 'Titulo:'.$titulo.'<br>';

}

}

}

}

 

$smarty->assign("categoria", $categoria);

$smarty->assign("consult", $consult);

$smarty->assign("descricao", $descricao);

$smarty->assign("forum", $forum);

$smarty->assign("titulo", $titulo);

 

 

$smarty->assign("descricao2", $descricao2);

$smarty->assign("lider1", $lider1);

$smarty->assign("lider2", $lider2);

$smarty->assign("lider3", $lider3);

$smarty->assign("lider4", $lider4);

$smarty->assign("categoria2", $categoria2);

$smarty->assign("total_posts", $total_posts);

$smarty->assign("folder", $folder);

$smarty->assign("data_ultimo_post", $data_ultimo_post);

$smarty->assign("autor_ultimo_post", $autor_ultimo_post);

$smarty->assign("topicos", $topicos);

$smarty->assign("tpl", $tpl);

$smarty->display("index.tpl");

?>

 

 

 

template...

 

 

 

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">

<head>

<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />

<title>Canoas By Night</title>

<link href="cbn.css" rel="stylesheet" type="text/css" />

<script type="text/javascript" src="divabrefecha.js"></script>

<script type="text/javascript" src="flash.js"></script>

</head>

<body>

<div class="corpo">

<div class="cabecalho">

</div>

 

 

 

[:section name=categorias loop=$categoria:]

<div class="forumtop">

<img src="images/forum_topl.jpg" alt=" " class="forumtopl" />

<div class="forumtoptitle">

[:$categoria[categorias]:] -

<span style="font-style:italic; font-weight:normal;">

[:$descricao[categorias]:]

</span>

</div>

<img src="images/forum_topr.jpg" alt=" " class="forumtopr" />

</div>

<div class="forumcategoriashd">

</div>

[:section name=foruns loop=$titulo:]

<div class="forumforuns">

<div class="forumfolder">

<img src="images/forum_foldersimples.jpg" alt="Simples" />

</div>

<div class="forumtitulo">

<span style="font-weight:bold;">[:$titulo[foruns]:]</span><br />

<span style="font-size:10px;">Descrição</span><br />

<span style="font-size:10px;">Liderado por: <span style="font-style:italic;">Fulando Siclano, Beltrano</span></span>

</div>

<div class="forumrespostas">

1257

</div>

<div class="forumrespostas">

1754

</div>

<div class="foruminfo">

Ultimo Post:<br />

<span style="font-weight:bold;">Fulano</span><br />

Data: 22/05/2006

</div>

</div>

[:/section:]

<div class="forum_base">

</div>

[:/section:]

 

 

<div class="rodape">

</div>

</div>

</body>

</html>

 

SQL - Query

 

-- phpMyAdmin SQL Dump

-- version 2.8.2

-- http://www.phpmyadmin.net

--

-- Servidor: localhost

-- Tempo de Geração: Jan 31, 2007 as 02:45 PM

-- Versão do Servidor: 4.1.20

-- Versão do PHP: 4.4.4

--

-- Banco de Dados: `cbn`

--

 

-- --------------------------------------------------------

 

--

-- Estrutura da tabela `chat_mensagens`

--

 

CREATE TABLE `chat_mensagens` (

`id` int(10) unsigned NOT NULL auto_increment,

`time` varchar(45) NOT NULL default '',

`data` varchar(45) NOT NULL default '',

`sala` varchar(45) NOT NULL default '',

`mensagem` varchar(255) NOT NULL default '',

`autor` varchar(45) NOT NULL default '',

`para` varchar(45) NOT NULL default '',

`de` varchar(45) NOT NULL default '',

`reservado` int(1) unsigned NOT NULL default '0',

`modo` varchar(20) NOT NULL default '',

PRIMARY KEY (`id`)

) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;

 

--

-- Extraindo dados da tabela `chat_mensagens`

--

 

 

-- --------------------------------------------------------

 

--

-- Estrutura da tabela `chat_salas`

--

 

CREATE TABLE `chat_salas` (

`id` int(10) unsigned NOT NULL auto_increment,

`categoria` varchar(45) NOT NULL default '',

`sala` varchar(45) NOT NULL default '',

`usuarios` int(10) unsigned NOT NULL default '0',

PRIMARY KEY (`id`)

) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;

 

--

-- Extraindo dados da tabela `chat_salas`

--

 

 

-- --------------------------------------------------------

 

--

-- Estrutura da tabela `forum_categorias`

--

 

CREATE TABLE `forum_categorias` (

`id` int(10) unsigned NOT NULL auto_increment,

`descricao` varchar(255) NOT NULL default '',

`categoria` varchar(45) NOT NULL default '',

PRIMARY KEY (`id`)

) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=3 ;

 

--

-- Extraindo dados da tabela `forum_categorias`

--

 

INSERT INTO `forum_categorias` (`id`, `descricao`, `categoria`) VALUES (1, 'Sobre RPG em Geral', 'RPG'),

(2, 'asdasd asd asd asd asd', 'Vampiro');

 

-- --------------------------------------------------------

 

--

-- Estrutura da tabela `foruns`

--

 

CREATE TABLE `foruns` (

`id` int(10) unsigned NOT NULL auto_increment,

`forum` varchar(30) NOT NULL default '',

`descricao` varchar(60) NOT NULL default '',

`lider1` varchar(60) NOT NULL default '',

`lider2` varchar(60) NOT NULL default '',

`lider3` varchar(60) NOT NULL default '',

`lider4` varchar(60) NOT NULL default '',

`categoria` varchar(45) NOT NULL default '',

`total_posts` int(10) unsigned NOT NULL default '0',

`folder` int(10) unsigned NOT NULL default '0',

`data_ultimo_post` varchar(45) NOT NULL default '',

`autor_ultimo_post` varchar(45) NOT NULL default '',

`topicos` int(10) unsigned NOT NULL default '0',

PRIMARY KEY (`id`)

) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=4 ;

 

--

-- Extraindo dados da tabela `foruns`

--

 

INSERT INTO `foruns` (`id`, `forum`, `descricao`, `lider1`, `lider2`, `lider3`, `lider4`, `categoria`, `total_posts`, `folder`, `data_ultimo_post`, `autor_ultimo_post`, `topicos`) VALUES (1, 'Lobisomen', 'Forum didicado ao RPG Lobisomen', 'asdasd asdas1', 'asdasdasdasas 2', 'asdasd asdas 3', '', 'RPG', 1524, 1, '22/04/2006', 'Autor 1', 154242),

(2, 'çalskdçlaskd', 'Forum didicado ao RPG Lobisomen', 'asdas 1', 'asdasd 2', 'asdasd 3', 'asdasd 4', 'Vampiro', 1542, 0, '', 'Autor 2', 154242),

(3, 'asdasd', 'asdasd asd asd', 'asd asd as', 'dasd asd', 'asd as das', 'dasdasdasd', 'RPG', 135, 0, '', '', 0);

 

-- --------------------------------------------------------

 

--

-- Estrutura da tabela `foruns_mensagens`

--

 

CREATE TABLE `foruns_mensagens` (

`id` int(10) unsigned NOT NULL auto_increment,

`autor` int(10) unsigned NOT NULL default '0',

`mensagem` text NOT NULL,

`topico` int(10) unsigned NOT NULL default '0',

`notificacao` int(1) unsigned NOT NULL default '0',

`data` varchar(45) NOT NULL default '',

PRIMARY KEY (`id`)

) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;

 

--

-- Extraindo dados da tabela `foruns_mensagens`

--

 

 

-- --------------------------------------------------------

 

--

-- Estrutura da tabela `foruns_topicos`

--

 

CREATE TABLE `foruns_topicos` (

`id` int(10) unsigned NOT NULL auto_increment,

`topico` varchar(45) NOT NULL default '',

`data` varchar(45) NOT NULL default '',

`vizualizado` int(10) unsigned NOT NULL default '0',

`posts` int(10) unsigned NOT NULL default '0',

`autor` varchar(45) NOT NULL default '',

`ult_post` varchar(45) NOT NULL default '',

`imagem` int(10) unsigned default NULL,

`tipo` varchar(45) NOT NULL default '',

`ativo` int(1) unsigned NOT NULL default '0',

`enquete1` varchar(45) default NULL,

`enquete2` varchar(45) default NULL,

`enquete3` varchar(45) default NULL,

`enquete4` varchar(45) default NULL,

`enquete5` varchar(45) default NULL,

`votos1` int(10) unsigned default NULL,

`votos2` int(10) unsigned default NULL,

`votos3` int(10) unsigned default NULL,

`votos4` int(10) unsigned default NULL,

`votos5` int(10) unsigned default NULL,

`n_options` int(10) unsigned default NULL,

`notificacao` int(1) unsigned NOT NULL default '0',

PRIMARY KEY (`id`)

) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;

 

--

-- Extraindo dados da tabela `foruns_topicos`

--

Compartilhar este post


Link para o post
Compartilhar em outros sites

olá Raziel Nomack, estou precisando da mesma coisa que você precisou, e também estou apanhanado, já faz tempo, masi de 1 ano esse post, será que você já tem essa solução?

Compartilhar este post


Link para o post
Compartilhar em outros sites

olá quinhone, o qual a sua dificuldade ?

 

colocar um laço loop dentro de outro ?

 

veja um exemplo

 

 

{foreach name=NOME_DO_LACO1 item=DADOS1 from=$ARRAY_ENVIADO_POR_ASSIGN}

	{foreach name=NOME_DO_LACO2 item=DADOS2 from=$ARRAY2_ENVIADO_POR_ASSIGN_OU_ITEM_DO_LACO1}

	{/foreach}

{/foreach}

entendeu ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara, estou fazendo assim:

no PHP minha consulta está assim:

 

$rsDestaqueCarros = $db->Execute('SELECT c.idcarros, c.car_veiculo, c.car_preco, c.car_placa from carros as c ORDER BY RAND( ) LIMIT 0, 4');

	while(!$rsDestaqueCarros->EOF){
			
		$idcarros[]		= $rsDestaqueCarros->fields['idcarros'];
		$car_veiculo[]	= utf8_decode($rsDestaqueCarros->fields['car_veiculo']);
		$car_preco[]	= $rsDestaqueCarros->fields['car_preco'];
		$car_placa[]	= $rsDestaqueCarros->fields['car_placa'];		
		
		$rsDestaqueFotos = $db->Execute('SELECT f.idfotos_car, f.idcarros, f.car_fot_icone from fotos_car as f where f.idcarros = '.$rsDestaqueCarros->fields['idcarros']);
		
			while(!$rsDestaqueFotos->EOF){
				
				$idfotos_car[]		= $rsDestaqueFotos->fields['idfotos_car'];
				$car_fot_icone[]	= $rsDestaqueFotos->fields['car_fot_icone'];
				
				$rsDestaqueFotos->moveNext();
			}	
		
		$rsDestaqueCarros->moveNext();

	};

e no TPL está assim:

 

{section name=a loop=$CAR_ID}
PLACA:{$CAR_PLACA[a]}
{section name=b loop=$CAR_ID[a]}
ICONE: {$FOT_CAR_ICONE[a][b]}
{/section}
{/section}

mas ele retorna assim:

 

PLACA:AAA0000

ICONE: c

ICONE: a

ICONE: r

 

 

PLACA:JYB9882

ICONE: c

 

 

PLACA:AAA1111

ICONE: c

ICONE: a

ICONE: r

ICONE: _

 

 

PLACA:JZU4795

ICONE: c

ICONE: a

ICONE: r

ICONE: _

ICONE: f

 

essas letras isoladas depois do ICONE: são na realidade car_fotos/icone/foto.jpg, em cada icone desse deveria vir o caminho das fotos de cada carro.

Compartilhar este post


Link para o post
Compartilhar em outros sites

está assim:

 

$smarty = new smarty_setup;

//ESSES 4 SÃO OS DADOS DO CARRO
$smarty->assign('CAR_ID', $idcarros);
$smarty->assign('CAR_NOME', $car_veiculo);
$smarty->assign('CAR_PRECO', $car_preco);
$smarty->assign('CAR_PLACA', $car_placa);

// E AQUI É A IMAGEM
$smarty->assign('FOT_ID', $idfotos_car);
$smarty->assign('FOT_CAR_ICONE', $car_fot_icone);

$smarty->display("destaques_carros.tpl");

ATT

Quinhone

Compartilhar este post


Link para o post
Compartilhar em outros sites

um exemplo:

 

 

carros.php

<?php

define("RelativePath",dirname(__FILE__));
include(RelativePath ."/lib/common.php");
require_once(dirname(__FILE__)."/lib/smarty.php");
include 'lib/extra_functions.php';


$id = 1;
$car[$id]['id']	 = $id;
$car[$id]['placa']  = 'ACDC-5';
$car[$id]['nome']   = 'Nome 1';
	$car[$id]['img']['file'][1] = 'image1.jpg';
	$car[$id]['img']['file'][2] = 'image2.jpg';

$id = 2;
$car[$id]['id']	 = $id;
$car[$id]['placa']  = 'CDCA-4';
$car[$id]['nome']   = 'Nome 2';
	$car[$id]['img']['file'][3] = 'image3.jpg';
	$car[$id]['img']['file'][4] = 'image4.jpg';

$all = $car;

$smarty_obj->assign('all', $all);
$smarty_obj->display("[b]carros.html[/b]");
?>

 

carros.html

{foreach name=loop1 key=k1 item=rs from=$all}
		<br /><br />id: {$rs.id}, placa: {$rs.placa}, nome: {$rs.nome}
	{foreach name=loop2 key=k2 item=rs2 from=$rs.img.file}
		<br />fileID: {$k2}, file: {$rs2}
	{/foreach}
{/foreach}

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.