Catalog pe mai multe nivele in php/mysql

Ai o întrebare legată de PHP? Incercăm să îi găsim soluţie. Sau poate doar vrei să publici un cod interesant.

Moderatori: Zamolxe, Moderatori

cyberdog
Average Member
Mesaje: 69
Membru din: Lun Mar 26, 2007 12:06 pm

Catalog pe mai multe nivele in php/mysql

Mesajde cyberdog » Vin Ian 11, 2008 4:19 pm

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!



Avatar utilizator
mihaitha
Senior Member
Mesaje: 2383
Membru din: Vin Mai 04, 2007 12:40 pm
Localitate: Sibiu
Contact:

Mesajde mihaitha » Vin Ian 11, 2008 4:36 pm

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.

cyberdog
Average Member
Mesaje: 69
Membru din: Lun Mar 26, 2007 12:06 pm

Mesajde cyberdog » Vin Ian 11, 2008 4:41 pm

Multumesc mult!
Solutia ta este perfecta!

Praetor
PHPRomania Supporter
Mesaje: 10
Membru din: Joi Ian 10, 2008 6:01 pm

Mesajde Praetor » Vin Ian 11, 2008 7:30 pm


cyberdog
Average Member
Mesaje: 69
Membru din: Lun Mar 26, 2007 12:06 pm

Mesajde cyberdog » Vin Ian 11, 2008 8:38 pm

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!

Avatar utilizator
mihaitha
Senior Member
Mesaje: 2383
Membru din: Vin Mai 04, 2007 12:40 pm
Localitate: Sibiu
Contact:

Mesajde mihaitha » Lun Ian 14, 2008 12:00 pm


Praetor
PHPRomania Supporter
Mesaje: 10
Membru din: Joi Ian 10, 2008 6:01 pm

Mesajde Praetor » Lun Ian 14, 2008 2:26 pm

@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.

lazy
New Member
Mesaje: 4
Membru din: Sâm Feb 09, 2008 3:27 am

Mesajde lazy » Sâm Feb 09, 2008 3:40 am


Avatar utilizator
mihaitha
Senior Member
Mesaje: 2383
Membru din: Vin Mai 04, 2007 12:40 pm
Localitate: Sibiu
Contact:

Mesajde mihaitha » Sâm Feb 09, 2008 3:34 pm



Înapoi la “Cod PHP”

Cine este conectat

Utilizatori ce ce navighează pe acest forum: Niciun utilizator înregistrat și 15 vizitatori