Pagina 1 din 1

Catalog pe mai multe nivele in php/mysql

Scris: Vin Ian 11, 2008 4:19 pm
de cyberdog
Salut!

Doresc sa realizez un catalog ce poate contine un numar oarecare de categorii, care la randul lor pot contine un numar oarecare de subcategorii si asa mai departe.

Imi poate spune cineva care ar fi metoda optima de abordare a acestui lucru? Fiecare categorie are salvata in baza de date intr-un camp valoarea categoriei-parinte. Totusi am ceva dificultati in a construi propriu zis arborele cu datele din baza de date.

Va multumesc!

Scris: Vin Ian 11, 2008 4:36 pm
de mihaitha
parsarea o faci recursiv. Eu unul cand fac asa ceva, categoriile de baza (level 1) le pun cu parent_id null. Functia o faci de genul asta:
[php]
<?php
mysql_connect(); //etc etc.

function parse_categories($id_parent) {
$comparare = ($id_parent == null) ? 'IS NULL' : '= ' . $id_parent;
$q = mysql_query('SELECT * FROM categorii WHERE parent_id ' . $comparare);

while ($r = mysql_fetch_object($q)) {
echo 'afiseaza categoria'; // afisezi cum vrei aici

parse_categories($r->id);
}
}

parse_categories(null);
?>
[/php]
spor la lucru.

Scris: Vin Ian 11, 2008 4:41 pm
de cyberdog
Multumesc mult!
Solutia ta este perfecta!

Scris: Vin Ian 11, 2008 7:30 pm
de Praetor

Scris: Vin Ian 11, 2008 8:38 pm
de cyberdog
Multumesc mult!
Este foarte interesant ceea ce se gaseste la acea adresa. Am sa studiez in dealiu metoda oferita acolo.
Deocamdata, am implementat metoda lui mihaitha si pe aceasca cale ii multumesc din nou!

Scris: Lun Ian 14, 2008 12:00 pm
de mihaitha

Scris: Lun Ian 14, 2008 2:26 pm
de Praetor
@mihaitha
Nu sint scripturile mele. Iar metoda descrisa pe sitepoint era descrisa si prin ceva white papers pe site la mysql :) . E considerata mai rapida si mai efectiva decat cea recursiva.
Dar hei, eu nu sint programator :) si poate nu inteleg ce zic altii prin engleza.

Scris: Sâm Feb 09, 2008 3:40 am
de lazy

Scris: Sâm Feb 09, 2008 3:34 pm
de mihaitha