DevProTalk

DevProTalk (http://www.devprotalk.com/index.php)
-   Sva početnička pitanja (http://www.devprotalk.com/forumdisplay.php?f=40)
-   -   Kategorije... (http://www.devprotalk.com/showthread.php?t=4705)

nEdImT 13. 02. 2008. 10:08

Kategorije...
 
Citat:

<table width="100%" border="0" cellspacing="2" cellpadding="3">
<tr>{foreach from=$kategorije item=sta}

<td width="43%" height="23" bgcolor="#73B000">{$sta.naziv}</td>
</tr> {/foreach}

</table>

<table width="100%" border="0" cellspacing="2" cellpadding="3">
<tr>{foreach from=$podforumi item=sta}
<td width="5%" height="23" bgcolor="#E5E5E5">Ovdje slika </td>
<td width="43%" bgcolor="#E5E5E5">{$sta.naziv}<br />
{$sta.opis}</td>
<td width="8%" bgcolor="#E5E5E5"><div align="center">{$sta.tema}</div></td>
<td width="10%" bgcolor="#E5E5E5"><div align="center">{$sta.postova}</div></td>
<td width="34%" bgcolor="#E5E5E5"><div align="center">Trenutno nema postova. </div></td>
</tr>{/foreach}
</table>
Prikaze samo prvu kategoriju i u njoj podforume, a druga nista i ostale... Negdje sam kod HTML kôda.

PHP kôd:

$query mysql_query("SELECT * FROM forum_kategorije");
while(
$a=mysql_fetch_array($query)){
$kategorije[] = $a;

$query mysql_query("SELECT * FROM forum_podforumi WHERE kat='$a[id]'");
while(
$a=mysql_fetch_array($query)){
$podforumi[] = $a;
}


}

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


cvele 13. 02. 2008. 11:04

prvo sto mi je zapalo za oko je to sto ti je foreach iza prvog tr taga... treba ispred

druga stvar je, query... nema smisla izvrsavati n broj querija samo da bi izvukao sve kategorije... vrlo se jednostavno to moze u raditi sa jednim

Vokic 13. 02. 2008. 11:05

Ono sto ja vidim trenutno (tek sam ustao i pijem kafu) jeste greska u formiranju tabele:

PHP kôd:

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

Znaci ubaci foreach pre <tr>

Usput uradi i proveru rezultata sa jednim obicnim dumpom iz php-a za svaki slucaj pa vidi sta dobijas... E sad jos da zapalim... pa srk kafice... mmmmmm

Damn... preteko me Cvele... tztztz :D

cvele 13. 02. 2008. 11:10

eve ti nesto zbuckano na brzinu
Kôd:

$query = mysql_query("SELECT * FROM forum_kategorije");
while($a=mysql_fetch_object($query)){
$kategorije[$a->id] = $a;
}
$query = mysql_query("SELECT * FROM forum_podforumi
WHERE kat in (select id from forumi_kategorije)");
while($ob=mysql_fetch_object($query)){
$kategorije[$ob->kat]->podforumi = $ob;
}

moze i bez subquerija... i jos da se twakuje dosta... al i vako je bolje nego da izvrsavas 1 + broj_kategorija querija

nEdImT 13. 02. 2008. 11:18

Kad stavim ispred <tr> opet mi isto bude.

A onda promijenim ovaj PHP kôd i ovakve greške:

Warning: mysql_fetch_object(): supplied argument is not a valid MySQL result resource in C:\xampp\htdocs\fitness\administracija\forum.php on line 16

Fatal error: Cannot use object of type stdClass as array in C:\xampp\htdocs\fitness\administracija\templates_c \%%F9^F92^F92FFC1F%%forum.tpl.php on line 19

cvele 13. 02. 2008. 12:24

ako koristis ovaj kod moraces malo da promenis i smarty tpl i ostatak php-a...

prvo lepo ti kaze greska... nije u pitanju array nego objekat, drugo ovde nemas dva assign poziva vec samo jedan zato sto je sve u jednom array-u

nemoj ocekivati da ti napisem ceo tpl i php... pomuci se malo , nije tesko... uostalom tako ces najbolje skapirati gde gresis

ivanhoe 13. 02. 2008. 14:55

ja bih to malo drugacije:
PHP kôd:

$sql "SELECT p.*, k.id AS kat_id, k.naziv AS kategorija
          FROM forum_kategorije as k, forum_podforumi as p 
          WHERE kat=k.id"
;
$query mysql_query($sql);

while(
$a=mysql_fetch_array($query)) 
     
$podaci$a['kategorija'] ][] = $a;

// a onda glavna fora, pokupimo kategorije bez posebnog upita
$kategorije array_keys($podaci);
// sortiramokategorije abecedno
sort($kategorije);

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

i onda smarty moze ovako:
HTML kôd:

{foreach from=$kategorije item=sta}
{assign var='podaci_kat'  value=$podaci.$sta}

<table width="100%" border="0" cellspacing="2" cellpadding="3">
<tr>
    <td colspan="5">Kategorija: {$sta}</td>
</tr>
{section loop=$podaci_kat name=cnt}
<tr>
    <td width="5%" height="23" bgcolor="#E5E5E5">Ovdje slika </td>
    <td width="43%" bgcolor="#E5E5E5">{$podaci_kat[cnt].naziv}<br />
{$podaci_kat[cnt].opis}</td>
    <td width="8%" bgcolor="#E5E5E5" align="center">{$podaci_kat[cnt].tema}</td>
  {if $podaci_kat[cnt].postova}
    <td width="10%" bgcolor="#E5E5E5" align="center">{$podaci_kat[cnt].postova}</td>
    {else}
    <td width="34%" bgcolor="#E5E5E5" align="center">Trenutno nema postova.</td>
    {/if}
</tr>
{sectionelse}
<tr>
    <td colspan="5">Trenutno nema podforuma</td>
</tr>
{/section}
</table>
{/foreach}

ovoje kucano iz glave verovatno ima gresaka, ali snaci ces se vec... koristi {debug} ako ti nje jasno kako izgledaju podaci koji se prosledjuju Smartiju


Vreme je GMT +2. Trenutno vreme je 18:25.

Powered by vBulletin® Verzija 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Copyright © DevProTalk. All Rights Reserved.

Mišljenja, saveti, izjave, ponude ili druge informacije ili sadržaji nastali na Sajtu su vlasništvo onoga ko ih je kreirao, a ne DevProTalk.com, tako da ne morate da se oslanjate na njih.
Autori poruka su jedini odgovorni za ovakve sadržaje. DevProTalk.com ne garantuje tačnost, kompletnost ili upotrebnu vrednost informacija, stavova, saveta ili datih izjava. Ne postoje uslovi pod kojima bi mi bili odgovorni za štetu ili gubitak koji je posledica bilo čijeg oslanjanja na nepouzdane informacije, ili bilo kakve informacije nastale kroz komunikaciju između registrovanih članova.
Web sajt može sadržavati linkove na druge web sajtove na Internetu ili neke druge sadržaje. Ne kontrolišemo niti podržavamo te druge web sajtove, niti smo pregledali bilo kakve sadržaje na takvim sajtovima. Mi nećemo biti odgovorni za legalnost, tačnost ili prikladnost bilo kog sadržaja, oglasa, proizvoda, usluga ili informacije lociranim na ili distribuiranih kroz druge web sajtove, niti za bilo kakvu štetu nastalu kao posledica takvih informacija. DevProTalk.com drži i čuva druga prava vlasništva na web sajtu. Web sajt sadrže materijale zaštićene copyright-om, zaštitne znakove i druge informacije o pravu vlasništva ili softver. Članovi mogu poslatu informacije zaštićene pravima vlasništva njihovih nosilaca i ona ostaju zaštićena bez obzira da li su oni koji prenose te informacije to naveli ili ne. Osim informacija koje su u javnom vlasništvu ili za koje dobijete dozvolu, nemate pravo da kopirate, modifikujete ili na bilo koji način menjate, objavljujete, prenosite, distribuirate, izvršavate, prikazujete ili prodajte bilo koju informaciju zaštićenu pravima vlasništva. Slanjem informacija ili sadržaja na bilo koji deo DevProTalk.com, Vi automatski dozvoljavate i predstavljate garanciju da imate pravo da dozvolite DevProTalk.com ili članovima DevProTalk.com bespovratnu, kontinualnu, neograničenu, globalnu dozvolu da koriste, kopiraju, izvršavaju, prikazuju i distribuiraju takve informacije i sadržaje i da iz takvih sadžaja koriste bilo koji deo u bilo koje svrhe, kao i pravo i dozvolu da koriste gore navedene sadržaje. Svi zaštitni znakovi (trademarks), logotipi, oznake usluga, firme ili imena proizvoda koji se pominju na ovom web sajtu su vlasništvo kojim raspolažu njihovi vlasnici.