Forum Sveta kompjutera

Nazad   Forum Sveta kompjutera > Internet > Web razvoj
Uputstvo Članstvo Kalendar Današnje poruke Pretraži

Web razvoj Sve u vezi sa razvojem Internet sajtova: programi, dizajn, usluge hostinga, administracija...

Odgovor
 
Alatke vezane za temu Vrste prikaza
Stara 17.7.2008, 16:32   #1
vladimir.s
Član
 
Član od: 14.7.2006.
Poruke: 84
Zahvalnice: 90
Zahvaljeno 17 puta na 15 poruka
Određen forumom PHP - može li ovo jednostavnije?

Trenutno radim na nekom svom CMS-u, pa mi je neophodno da sadržaj smeštam u kategorije koje mogu da sadrže podkategorije.
U bazi imam tabelu "Kategorije" koja sadrži polja: id, naziv_kategorije i nadkategorija.
Ako je neka kategorija "glavna", tj. ne sadrži podkategorije vrednost polja nadkategorija je 0, a u suprotnom to je vrednost id-a nadkategorije.
Sve ovo treba smestiti u ComboBox, ali tako da podkategorije budu prikazane ispod pripadajućih nadkategorija. Nešto kao na ovoj slici:


Ja sam ovo rešio pomoću rekurzivnog pozivanja funkcije na sledeći način:

Kod:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Proba</title>
</head>

<body>
<form id="form1" name="form1" method="post" action="">
<select name="kategorija" id="kategorija">
<?php
include("otvori_bazu.php");

//funkcija koja proverava da li trazena kategorija sadrzi podkategorije
//$id - id kategorije za koju proveravamo da li sadrzi podkategorije
//$u - obican tekst, tacka koja stoji ispred naziva podkategorije
function PopuniCombo($id,$u)
{
	$upit="SELECT * FROM kategorije WHERE nadkategorija=" . $id;
	$rezultat=mysql_query($upit);
	while($kat=mysql_fetch_object($rezultat))
	{
		echo "<option value=\"". $kat->id ."\">". $u . $kat->naziv_kategorije . "</option>\n";
		//ispred $u dodajem znak razmaka zbog uvlacenja svake sledece podkategorije
		PopuniCombo($kat->id, " " . $u);
	}
}

//pocetak popunjavanja ComboBox-a
//selektujemo sve glavne kategorije (nadkategorija=0)		  
$upit="SELECT * FROM kategorije WHERE nadkategorija=0";
$rezultat=mysql_query($upit);
while ($red=mysql_fetch_object($rezultat))
{
	echo "<option value=\"" . $red->id . "\">" . $red->naziv_kategorije . "</option>\n";
	PopuniCombo($red->id,"•");
}

?>
</select>
</form>

</body>
</html>
Ovo radi fino, ali mi se ne dopada veliki broj upita bazi, pa me zanima da li ovo može da se odradi jednostavnije?
SQL fajl za kreiranje tabele "Kategorije" je priložen uz poruku.
Priloženi fajlovi
Tip fajla: zip kategorije.zip (707 bajtova, 20 puta viđeno)
vladimir.s je offline   Odgovor sa citatom ove poruke
Odgovor

Bookmarks sajtovi


Vaš status
Ne možete postavljati teme
Ne možete odgovarati na poruke
Ne možete slati priloge uz poruke
Ne možete prepravljati svoje poruke

BB kod: uključeno
Smajliji: uključeno
[IMG] kod: uključeno
HTML kod: isključeno


Slične teme
tema temu započeo forum Odgovora Poslednja poruka
Da li svako može da instalira Windows? dbaja Operativni sistemi 119 14.12.2012 12:37
PHP skripte - problem sa ubacivanjem! Farmaceut Serverske aplikacije i baze podataka 7 13.6.2008 10:18
Pomoc oko php nuke draganva Web razvoj 1 11.9.2007 1:53
PHP ili .NET ? Deusdies Programiranje 9 25.8.2007 12:55
[PHP] Kako početi sa učenjem PHP-a? MilanSM Serverske aplikacije i baze podataka 20 29.12.2006 3:13


Sva vremena su po Griniču +2 h. Sada je 16:24.


Powered by vBulletin® verzija 3.8.7
Copyright ©2000–2024, vBulletin Solutions, Inc.
Hosted by Beograd.com