PDA

Pogčedajte punu verziju : (Smarty) Problem - kategorije, forumi


Kenny
16. 01. 2007., 16:57
pozdrav.

u forum.php imam: <?php
$smarty = new Smarty;
include ("zabranjen_pristup.php");
include ("config.php");

// KATEGORIJE //

$kategorije = array();

$kat = mysql_query("SELECT * FROM kategorije ORDER by 'lista' ASC");
while($a=mysql_fetch_array($kat)){

$kategorije[] = $a;

}

$smarty->assign('kategorije', $kategorije);


// FORUMI //

// Uzimam id-eve kategorija bez arraya da ne bi bilo dole WHERE kategorija='Array' //

$kate = mysql_query("SELECT id FROM kategorije");
while($c=mysql_fetch_array($kate)){

$idkat = $c["id"];



$for = "SELECT * FROM forumi WHERE kategorija='$idkat' ORDER by 'lista' ASC";
$query = mysql_query($for);

while($b=mysql_fetch_array($query)){

$forumi[] = $b;


}



}




$smarty->assign('forumi', $forumi);


$smarty->display('forum.tpl');


u forum.tpl imam:
<table width="100%" border="0" cellspacing="0" cellpadding="3">
<tr>
<td class="bgfooter">Forum menadžment</td>
</tr>
<tr>
<td height="31"><table width="100%" border="0" cellspacing="0" cellpadding="3">
<tr>
<td width="54%" class="bgfooter">Dobrodo&scaron;ao u forum menadžment. </td>
<td width="27%" bgcolor="#D5ECFF"><a href="#" class="meni">Kreiraj novu kategoriju </a></td>
</tr>
</table></td>
</tr>
<tr>
<td height="25"><table width="100%" border="0" cellspacing="2" cellpadding="4">
<tr>

<td width="34%" height="25" class="bgfooter" align="center">Ime kategorije/foruma i opis </td>
<td width="17%" class="bgfooter" align="center">#</td>
<td width="17%" class="bgfooter" align="center">#</td>
<td width="12%" class="bgfooter" align="center">Gore / dole</td>
<td width="20%" class="bgfooter" align="center">Opcija</td>

{foreach from=$kategorije item=sta} </tr>
<tr>


<td class="bgfooter">{$sta.naziv}</td>
<td class="bgfooter" align="center">Edituj</td>
<td class="bgfooter" align="center">Obri&scaron;i</td>
<td class="bgfooter" align="center">Gore / dole </td>
<td class="bgfooter" align="center">Dodaj moderatora </td>

{foreach from=$forumi item=sta} </tr>

<tr>

<td bgcolor="#EAEAEA">{$sta.naziv}<br>
<span style="font-size:11px;">{$sta.opis}</span></td>
<td bgcolor="#EAEAEA" align="center">Edituj</td>
<td bgcolor="#EAEAEA" align="center">Obri&scaron;i</td>
<td bgcolor="#EAEAEA" align="center">Gore / dole</td>
<td bgcolor="#EAEAEA" align="center">Dodaj moderatora </td>
</tr>{/foreach} {/foreach}

</table></td>
</tr>
</table>

ispisuje mi sve forume u sve kategorije, što ne bi trebalo, u čemu je problem.

dee
16. 01. 2007., 17:34
ne moze tako...

treba ti PHP skripta koja ce ti kategorije razvrstane po forumima stavit u Array a taj array ces proslijedit template fajlu. i nakon toga, bilo pomocu foreach bilo pomocu section prikazati nested strukturu...

znaci, ili

http://smarty.php.net/manual/en/language.function.section.php

ili

http://smarty.php.net/manual/en/language.function.foreach.php


(oba imaju dio o multi-dimensional arrays)

Kenny
16. 01. 2007., 17:54
Nisam te baš najbolje razumio. Evo dole sam u komentare napisao zašto je šta.

pozz.


Isječak PHP koda:



// KATEGORIJE //

$kategorije = array();
// EVO OVDJE SELEKTUJE SVE KATEGORIJE I ŠALJE IH U ARRAY. //
$kat = mysql_query("SELECT * FROM kategorije ORDER by 'lista' ASC");
while($a=mysql_fetch_array($kat)){

$kategorije[] = $a;

}




$smarty->assign('kategorije', $kategorije);


// FORUMI //

// Uzimam id-eve kategorija bez arraya da ne bi bilo dole WHERE kategorija='Array' //

$kate = mysql_query("SELECT id FROM kategorije");
while($c=mysql_fetch_array($kate)){

$idkat = $c["id"];

/* EVO OVDJE BEZ ARRAYA SELEKTUJE ID-EVE KATEGORIJA ZATO ŠTO KAD
BUDEM DOLE KORISTIO WHERE DA NE BI BILO: WHERE kategorija='Array'
OVAKO BI TREBALO BITI OK */

$for = "SELECT * FROM forumi WHERE kategorija='$idkat' ORDER by 'lista' ASC";
$query = mysql_query($for);

while($b=mysql_fetch_array($query)){

$forumi[] = $b;


}



}




uopšte nisam razumio tvoju poruku. :(

ivanhoe
16. 01. 2007., 20:13
nism se bas udubljivao ali pokusaj za pocetak da radis ovako upit:

...
// FORUMI //

foreach($kategorije as $kat) {
$sql = "SELECT * FROM forumi WHERE kategorija='$kat[id]' ORDER by 'lista' ASC";
$query = mysql_query($sql);

while( $b=mysql_fetch_array($query) ) {
$forumi[ $kat['id'] ][] = $b;
}
} //end_foreach


a onda u smartiju radi ispis foruma unutar iste petlje za ispis kategorija