Poslao: 30 Nov 2006 06:06
|
offline
- Rastafarii
- Moderator foruma
- Pridružio: 22 Mar 2006
- Poruke: 3760
- Gde živiš: 127.0.0.1
|
Imam tabelu u bazi (ID, tip, podtip, naziv, info, cena, stanje) i hocu da odatle "vucem" navigaciju... tj da zavisi od tipa i podtipa... nesto ovako
[ + Tip 1 ]
[ - Podtip 1 ]
[ - Podtip 2 ]
[ - Podtip 3 ]
[ - Podtip 4 ]
[ - Podtip 5 ]
[ + Tip 2 ]
[ - Podtip 1 ]
[ - Podtip 2 ]
[ - Podtip 3 ]
[ + Tip 3 ]
[ - Podtip 1 ]
[ - Podtip 2 ]
[ - Podtip 3 ]
[ - Podtip 4 ]
Ali da se, cim dodam neki tip/podtip, navigacija automatski azurira... Kako to da izvedem?!?
|
|
|
Registruj se da bi učestvovao u diskusiji. Registrovanim korisnicima se NE prikazuju reklame unutar poruka.
|
|
Poslao: 30 Nov 2006 10:44
|
offline
- Stenley
- Zaslužni građanin
- Pridružio: 01 Mar 2005
- Poruke: 549
- Gde živiš: Apatin
|
Izdeli to napravi 3 baze podataka:
-tip
id1,tip
-podtip
id2,podtip,id_tip (id_tip=id1)
-artikli
ID3, id_podtip(id_podtip=id2), naziv, info, cena, stanje
Onda meni napravi iz 2 query-a iz baze:
1)selektujes sve tipove
2)selektujes sve podtipove gde je id_tip=id1
i to ce ti se sve vrteti u dve while petlje
|
|
|
|
Poslao: 30 Nov 2006 13:01
|
offline
- igor86
- Stručni saradnik
Web programiranje
- Pridružio: 24 Maj 2006
- Poruke: 1633
|
Rađe bi se odlučio za dvije bazu! Uz relacioni odnos.
Ako planiraš neki veći projekat, onda ti je bolji ovaj slučaj, u suprotnom može proći i tvoj (puno gubiš na ponavljanje tip, podtip).
1. baza polja ID, IME, OPIS, IDP
2. baza polja ID, IDT, NAZIV, INFO, CENA, STANJE
U prvoj bazi idp predstavlja tom unosu podatak koji mu je parent unos(ako razumješ šta hoću reći) tako da se može napraviti odlična rijerarhija.
U drugoj bazi IDT predstavlja podatak kojem tip-u pripada!
Skripta za ovo je jednostavna, a za tvoj gornji slučaj skipta je:
$sql = "SELECT tip FROM baza ORDER BY tip;";
$result = mysql_query($sql, $link);
if (!$q=mysql_query($sql))
{
echo "Nastala je gresk۫a pri izvodenju upita!" . mysql_query();
die();
}
if (mysql_num_rows($q)==0)
{
echo "Nema niti jednog unosa !";
}
else
{
$br=0;
while ($red=mysql_fetch_array($q))
{$i=0;
$t=1;
while($s[$i]){
if ($red["tip"]==$s[$i]){
$t=0;break;}
$i++;}
if($t)
{$s[$br++]=$red["tip"];
echo "$red["tip"]";}}}
I unutar ove petlje, poslije ispisa istu jednu ovaku petlju odradiš za podtipove!
Dopuna: 30 Nov 2006 13:01
Nema nikakve potrebe za dvije baze tip i podtip. Dovoljna ti je jedna baza, ako bolje pogledaš ovaj moj primjer vidjećeš da ova jedna baza radi isto što i tvoje dvije i još je univerzalnija.
|
|
|
|
Poslao: 02 Dec 2006 05:35
|
offline
- Rastafarii
- Moderator foruma
- Pridružio: 22 Mar 2006
- Poruke: 3760
- Gde živiš: 127.0.0.1
|
igor86 ::Nema nikakve potrebe za dvije baze tip i podtip. Dovoljna ti je jedna baza, ako bolje pogledaš ovaj moj primjer vidjećeš da ova jedna baza radi isto što i tvoje dvije i još je univerzalnija.
Ja sam rekao da imam jednu bazu, a ne 2, 3 ili koliko vec... 2 baze si ti spomenuo
Hm... probao sam nesto sam, sa jednom tabelom, ali ne mogu da testiram jer mi je baza prazna... A nisam bas siguran da radi...
Elem, imam ovakvu bazu:$artikl = "CREATE TABLE 'artikl_data' (
'id' int(10) NOT NULL auto_increment,
'tip' varchar(255) NOT NULL defalut='nista',
'podtip' varchar(255) NOT NULL defalut='nista',
'naziv' varchar(255) NOT NULL default 'nista',
'info' varchar(255) NOT NULL default 'nema',
'cena' float(10) NOT NULL default '0',
'stanje' int(10) NOT NULL default '0',
PRIMARY KEY ('id'))";
i ovakav kod za njeno "listanje":$tipovi = mysql_query("SELECT DISTINCT tip FROM artikl_data ORDER BY tip");
foreach($tipovi as $tip) {
echo $tip;
$podtipovi = mysql_query("SELECT DISTINCT podtip FROM artikl_data WHERE tip=$tip ORDER BY podtip");
foreach($podtipovi as $tip) {
echo $podtip;
}
}
Ja licno sumnjam da ovo radi, a kao sto rekoh ne mogu da testiram... Gresim li u ovom kodu i gde?
|
|
|
|
Poslao: 02 Dec 2006 20:07
|
offline
- igor86
- Stručni saradnik
Web programiranje
- Pridružio: 24 Maj 2006
- Poruke: 1633
|
Inače ovaj kod što sam ti poslao je za tvoj slučaj i izveden je na mnogo primitivan način, ali odlično radi!
|
|
|
|
|
Poslao: 03 Dec 2006 11:50
|
offline
- Stenley
- Zaslužni građanin
- Pridružio: 01 Mar 2005
- Poruke: 549
- Gde živiš: Apatin
|
OK ako radi ali recimo ajmo jedan primer:
Uneo si 10 istih tip-ova (na primer graficke kartice)
i skontas da si pogresio slovo ili zelis da pise tu Video Adapteri
Moraces ici od unosa do usnosa i ispravljati to...
|
|
|
|
|
Poslao: 03 Dec 2006 19:31
|
offline
- igor86
- Stručni saradnik
Web programiranje
- Pridružio: 24 Maj 2006
- Poruke: 1633
|
@Rastafarii ja sam ti pokušao pomoći.
Citat:
Inace ja mislim da si ti od svih mojih postova na ovu temu procitao 2 recenice max.
Iz čega si to zaključio!
Kod sam ti poslao iz projekta koji sam radio, ideš u pogrešnom smjeru, ali nema veze. Nema više mojih komentara!
|
|
|
|
Poslao: 04 Dec 2006 23:02
|
offline
- Rastafarii
- Moderator foruma
- Pridružio: 22 Mar 2006
- Poruke: 3760
- Gde živiš: 127.0.0.1
|
@igor86: Zakljucio sam iz prostog citanja teme.
Rastafarii ::Imam tabelu u bazi (ID, tip, podtip, naziv, info, cena, stanje)
igor86 ::Rađe bi se odlučio za dvije bazu! Uz relacioni odnos.
igor86 ::ako bolje pogledaš ovaj moj primjer vidjećeš da ova jedna baza radi isto što i tvoje dvije i još je univerzalnija.
Rastafarii ::Hm... probao sam nesto sam, sa jednom tabelom, ali ne mogu da testiram jer mi je baza prazna... A nisam bas siguran da radi...
Elem, imam ovakvu bazu: (Kod) i ovakav kod za njeno "listanje": (Kod)
Ja licno sumnjam da ovo radi, a kao sto rekoh ne mogu da testiram... Gresim li u ovom kodu i gde?
igor86 ::Inače ovaj kod što sam ti poslao je za tvoj slučaj i izveden je na mnogo primitivan način, ali odlično radi!
Da ne bude zabune, citirao sam obojicu.
Zasto idem u pogresnom smeru?
|
|
|
|