Post Reply 
 
Thread Rating:
  • 0 Votes - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Upit za prikazivanje funkcije
Author Message
suad Offline
Novi korisnik
*

Posts: 68
Joined: Nov 2009
Reputation: 0
Post: #1
Upit za prikazivanje funkcije
Pozdrav.

Napravio sam rekurzivnu funkciju, odnosno funkciju koja će da poziva samu sebe, koja prikazuje katekgorije i podkategorije i reda ih jednu ispod druge neogranicen broj podkategorija.

vako

Automobili
_ mercedes
_ _ dijelovi mercedesa
_ _ _karburator od mercedesa
_pežo
Životinje
_krava
_ _ mlijeko_kravije


Funkcija izgleda ovako
PHP Code:
function blog_kategorije($id,$indent)
{
    
$upit=mysql_query("SELECT id_blog_kategorije, ime_kategorije FROM blog_kategorije WHERE kategorija_u_kategoriji='$id' ORDER BY datum_stvaranja_kategorije ASC");
    if(
mysql_num_rows($upit))
    {
        while(
$redak=mysql_fetch_array($upit))
        {
            
$indent.=($id==0)?'':' _ ';
            
            echo 
$indent.''.$redak['ime_kategorije'];
            
            
blog_kategorije($redak['id_blog_kategorije'],$indent);
            
$indent=substr($indent,0,1);        
        }
    }

e sad bi ja da uradim da funkciju spremim u "Funkcije.php" i da je prikazujem na kojim ocu stranicama da mi budu blog kategorije, e sad pošto cu kategorije priakzivati na više načina, negdje u <div> a negdje u <option> itd.

Dali mi neko može reći kako da napravim prikazivanje funkcije
ja sam probo vako al neradi
PHP Code:
require('sajt/Postavke.php'); //Poziva Postavke.php.


function blog_kategorije($id,$indent,$t)
{
    
$upit=mysql_query("SELECT id_blog_kategorije, ime_kategorije FROM blog_kategorije WHERE kategorija_u_kategoriji='$id' ORDER BY datum_stvaranja_kategorije ASC");
    if(
mysql_num_rows($upit))
    {
        while(
$redak=mysql_fetch_array($upit))
        {
            
$indent.=($id==0)?'':' _ ';
            
            echo 
$t;
            
            
blog_kategorije($redak['id_blog_kategorije'],$indent,$t);
            
$indent=substr($indent,0,1);        
        }
    }
}


//Prikazuje
$t='<option value="'.$redak['id_blog_kategorije'].'">'.$indent.''.$redak['ime_kategorije'].'</option>';

echo
'<select name="">'.blog_kategorije(0,'',$t).'</select>'

Dodo sam još jedan argument "$t" i napravio upit zaprikazivanje u variabli $t.

Al neradi. Dali neko zna kako da ovo napravim.

HVALA!
16-12-2010 11:42 PM
Find all posts by this user Quote this message in a reply
kecko Offline
Forumaš
***

Posts: 655
Joined: Nov 2009
Reputation: 20
Post: #2
RE: Upit za prikazivanje funkcije
Koju grešku ti javi? Što ne radi? bez da sam pogledao kod te to pitam. Kad to doznamo, onda možemo dalje :))
17-12-2010 08:33 AM
Find all posts by this user Quote this message in a reply
suad Offline
Novi korisnik
*

Posts: 68
Joined: Nov 2009
Reputation: 0
Post: #3
RE: Upit za prikazivanje funkcije
kecko Wrote:Koju grešku ti javi? Što ne radi? bez da sam pogledao kod te to pitam. Kad to doznamo, onda možemo dalje :))

Greška je što nemogu vako da postavljam linkove u funkciju, jer ponovo se funkcija poziva.

vidiš kad vako u funkciju ubacim linkove
ono radi
PHP Code:
function blog_kategorije($id,$indent)
{
    
$upit=mysql_query("SELECT id_blog_kategorije, ime_kategorije FROM blog_kategorije WHERE kategorija_u_kategoriji='$id' ORDER BY datum_stvaranja_kategorije ASC");
    if(
mysql_num_rows($upit))
    {
        while(
$redak=mysql_fetch_array($upit))
        {
            
$indent.=($id==0)?'':' _ ';
            
            echo
'<option value="'.$redak['id_blog_kategorije'].'">'.$indent.''.$redak['ime_kategorije'].'</option> ';
         
            
blog_kategorije($redak['id_blog_kategorije'],$indent);
            
$indent=substr($indent,0,1);        
        }
    }
}
//Prikazuje
echo'<select name="">'.blog_kategorije(0,'').'</select>'

al sad je problem kado oću linkove staviti u <div> ili <table> ili negdje drugo.

moram stalno pisat novu funkciju npr. vako

PHP Code:
function blog_kategorije($id,$indent)
{
    
$upit=mysql_query("SELECT id_blog_kategorije, ime_kategorije FROM blog_kategorije WHERE kategorija_u_kategoriji='$id' ORDER BY datum_stvaranja_kategorije ASC");
    if(
mysql_num_rows($upit))
    {
        while(
$redak=mysql_fetch_array($upit))
        {
            
$indent.=($id==0)?'':' _ ';
            
            echo
'<div>'.$indent.''.$redak['ime_kategorije'].'</div> ';
         
            
blog_kategorije($redak['id_blog_kategorije'],$indent);
            
$indent=substr($indent,0,1);        
        }
    }
}

//prikazuje
echo blog_kategorije(0,''); 

e meni daje da funkciju stavim u funkcije.php

a gdje ocu da mi se prikazuje kategorije da tu napravim upit sa linkovima i da pozivam funkciju.

valjda me razumijete.
17-12-2010 03:02 PM
Find all posts by this user Quote this message in a reply
kecko Offline
Forumaš
***

Posts: 655
Joined: Nov 2009
Reputation: 20
Post: #4
RE: Upit za prikazivanje funkcije
Znači tebe ždere samo tag u kojem će se link nalaziti?
to možeš pogledati funkciju http://www.php.net/sprintf
a ja bi to riješio tako da bi primao parametar $tag u funkciju, a on bi izgledo kao $tag="<div>{link}</div>"
pa uradiš http://php.net/str_replace, zamjeniš {link} sa linkom...
možda da primaš i array $tags[] pa lijepo kroz dubinu se šećeš kako razine rastu padaju...
(This post was last modified: 17-12-2010 03:51 PM by kecko.)
17-12-2010 03:51 PM
Find all posts by this user Quote this message in a reply
suad Offline
Novi korisnik
*

Posts: 68
Joined: Nov 2009
Reputation: 0
Post: #5
RE: Upit za prikazivanje funkcije
joj nemogu nikako ovo da napravim, znali neko kakav drugi način na koji bi mogo napraviti da imam na blogu neograničen broj kategorija i podkategorija jednu u drugoj vako

Automobili
_mercedes
_ _dijelovi mercedesa
_ _ _karburator od mercedesa
Životinje
_divlje životinje
_ _jelen
_domaće životinje
_ _Krava
_ _ _kravije mlijeko
_ _ _ _kravije mlijeko tetropak

i tako da mogu neograničeno dodavati podkategorija u podkategoriji.

u mysql bazu sam stavio vako

Code:
CREATE TABLE `blog_kategorije` (
  `id_blog_kategorije` int(11) NOT NULL AUTO_INCREMENT,
  `ime_kategorije` varchar(50) NOT NULL,
  `kategorija_u_kategoriji` int(11) NOT NULL default '0',
  PRIMARY KEY (`id_blog_kategorije`)
)

e sad bi ja da kad kategorija ima u `kategorija_u_kategoriji` int(11) NOT NULL default '0', id od kategorije onda bude u toj kategoriji kao pod kategorija, a ako ima 0 onda je glavna kategorija.
primjer

PHP Code:
Automobili //U mysql u tablici ima 0 `kategorija_u_kategoriji` int(11) NOT NULL default '0'
_mercedes // ima u `kategorija_u_kategoriji` int(11) NOT NULL default '0' ima id od automobili
_ _dijelovi od mercedesa //ima u `kategorija_u_kategoriji` int(11) NOT NULL default '0' id od mercedes 

i sve tako,

ja sam bio napravio funkciju koja ce pozivati samu sebe

PHP Code:
function blog_kategorije($id,$indent)
{
    
$upit=mysql_query("SELECT id_blog_kategorije, ime_kategorije FROM blog_kategorije WHERE kategorija_u_kategoriji='$id' ORDER BY datum_stvaranja_kategorije ASC");
    if(
mysql_num_rows($upit))
    {
        while(
$redak=mysql_fetch_array($upit))
        {
            
$indent.=($id==0)?'':' _ ';
            
            echo 
$indent.''.$redak['ime_kategorije'];
            
            
blog_kategorije($redak['id_blog_kategorije'],$indent);
            
$indent=substr($indent,0,1);        
        }
    }


i dobro radi, al mi se nesvidja, jer nemogu odvajati html od php

dali neko zna koji drugi nacin kako da ovo uradim

HVALA!
17-12-2010 07:55 PM
Find all posts by this user Quote this message in a reply
kecko Offline
Forumaš
***

Posts: 655
Joined: Nov 2009
Reputation: 20
Post: #6
RE: Upit za prikazivanje funkcije
U ovom primjeru jako teško... Prouči malo template engine, ima ih dosta pa vidi možda ti nešto padne na pamet, ali php što se tiče odvajanja designa od code-a to možeš zaboravit, php je tu dosta loš. Inače u ovoj tablici postavi index na kategorija_u_kategorij, potreban je :)) Preporučio bi potpuno izbjegavanje myISAM table enginea i korištenje neke bolje baze od mySQL, a ako je već mySQL u pitanju onda innoDB i korištenje relacija.
20-12-2010 09:48 AM
Find all posts by this user Quote this message in a reply
Gogy Offline
____
*

Posts: 2,352
Joined: Feb 2006
Post: #7
RE: Upit za prikazivanje funkcije
kecko Wrote:Ali php što se tiče odvajanja designa od code-a to možeš zaboravit, php je tu dosta loš.

Ne bih se složio... ovaj dio je na Tutorijali.Net v2 odlično odrađen i zaista za implementaciju novog dizajna je potrebno svega par minuta. Ali ne bih se htio miješat, kolega Schmrz je puno kompetentniji govoriti o ovome :)

Pravila foruma | Twitter - Facebook - Google+ |


Radar404 <- moj blog
20-12-2010 01:23 PM
Visit this user's website Find all posts by this user Quote this message in a reply
zero Offline
Forumaš
***

Posts: 462
Joined: Jan 2008
Reputation: 10
Post: #8
RE: Upit za prikazivanje funkcije
Nope. Ja svaki dizajn radim tako. U par minuta ga zamjenis.

Brzo. Jeftino. Kvalitetno. Izaberi dva!
20-12-2010 02:30 PM
Find all posts by this user Quote this message in a reply
kecko Offline
Forumaš
***

Posts: 655
Joined: Nov 2009
Reputation: 20
Post: #9
RE: Upit za prikazivanje funkcije
Ma naravno, ali miješanje koda jednostavno mora biti (clientside vs serverside). Tu trenutno nema pomoći, imaš ti i MVC arhitekturu i razne TE i svašta, ali za bilo kakvu kompliciraniju stvar možeš zaboravitida ćeš moći u potpunosti odvojiti design od koda. Stvar nije puno bolja ni u asp.NET MVC-u, a valjda ni u jednom drugom takvom jeziku jer jednostavno imaš ispis HTML-a kojeg ti SS jezik izgenerira, ne možeš drukčije, nažalost tu pomoći nema, ima neke dobre/loše implementacije, ali u potpunosti izbjeći kod u view-u trenutno nije moguće, možeš na kraju imati neki TE pa onda nemaš SS kod u HTML-u nek TE kod što se na kraju svede na isto, ili čak i gore od samog SS jezika...
O asp.netu webformama neću govoriti, moje mišljenje o WYSIWYG editorima je poprilično loše :))

Za neupućene SS=Serverside jezik (Jezik koji se izvršava na strani servera php,asp.net...)
CS =clientside jezik (Jezik koji se izvršava na strani klijenta... u browseru javascript, html, css...)
TE = template engine
WYSIWYG= What you see is what you get ili ti ga vizualni editori koji ti daju kod onoga što vidiš... Dreamweaver & co :)) Ili ti ga izgovor za noobove koji nemaju pojma o web stranicama da znaju raditi web stranice He he
view= predložak template, design, izgled stranice kako god :))
(This post was last modified: 20-12-2010 02:40 PM by kecko.)
20-12-2010 02:38 PM
Find all posts by this user Quote this message in a reply
suad Offline
Novi korisnik
*

Posts: 68
Joined: Nov 2009
Reputation: 0
Post: #10
RE: Upit za prikazivanje funkcije
kecko Wrote:Inače u ovoj tablici postavi index na kategorija_u_kategorij, potreban je :)) Preporučio bi potpuno izbjegavanje myISAM table enginea i korištenje neke bolje baze od mySQL, a ako je već mySQL u pitanju onda innoDB i korištenje relacija.

možes li mi reći kako da stavim index, i koje imaju bolje baze od mysql besplatne?
22-12-2010 12:35 AM
Find all posts by this user Quote this message in a reply
Post Reply 


Forum Jump:


User(s) browsing this thread: 2 Guest(s)