Pagina de start a forumului Forum PHP Romania - Discutii despre PHP, MySQL, Javascript, AJAX, etc Forum PHP Romania - Discutii despre PHP, MySQL, Javascript, AJAX, etc
Comunitatea PHP Romania
 

functie recursiva
Vezi mesajul original

 
       Pagina de start a forumului Forum PHP Romania - Discutii despre PHP, MySQL, Javascript, AJAX, etc -> Cod PHP
Subiectul anterior :: Subiectul următor  
Autor Mesaj
gabyrusu



Data înscrierii: 11/Iun/2006
Mesaje: 33
Locație: Brasov

Trimis: Mar Apr 22, 2008 9:53 am    Titlul subiectului: functie recursiva  

salut, ma poate ajuta cineva in urmatoarea problema?

am in baza de date o tabela "categorii". am nevoie de o functie recursiva care sa imi afle toate subcategoriile unei anumite categorii.

Structura tabelei este urmatoarea:

"CREATE TABLE IF NOT EXISTS `categorii` (
`id` int(11) NOT NULL auto_increment,
`name` varchar(255) NOT NULL default '',
`parent` int(11) default '0',
`image` varchar(255) NOT NULL,
`active` enum('Yes','No') default 'No',
`data` date default NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=10;"

subcategoriile sunt de fapt tot categorii dar au ca si parinte id-ul unei categorii. categoriile parinte au ca si parinte 0.

arborescenta merge pe 5 nivele si de aceea am nevoie de aceasta functie care sa-mi afle toti copiii unei categorii parinte.

adika o arborescenta de genul:

Categorie
^ Subcategorie 1
^ Subcategorie 1 1
......
si asa mai departe
Sus  
Quber



Data înscrierii: 27/Iun/2006
Mesaje: 799
Locație: localhost

Trimis: Mar Apr 22, 2008 10:06 am    Titlul subiectului:  

de ce nu faci 2 tabele ca sa fie mai simplu..?
Sus  
kyron



Data înscrierii: 16/Sep/2004
Mesaje: 539
Locație: Bucuresti

Trimis: Mar Apr 22, 2008 10:08 am    Titlul subiectului:  

de ce sa se complice cu 2 tabele ?
Sus  
Quber



Data înscrierii: 27/Iun/2006
Mesaje: 799
Locație: localhost

Trimis: Mar Apr 22, 2008 10:24 am    Titlul subiectului:  

@kyron, eu cred ca cu 2 tabele e mai usor de facut..!
daca la urma urmei vrei sa lesi tabela asta trebuie sa faci inca un cimp sub numele category_id si aici pui id la categoria parinte..!

deja faci un select de genu:
Cod:
$result = mysql_query("SELECT * FROM categorii WHERE parent != 0");
while ($row = mysql_fetch_array($result))
{
     $results = mysql_query("SELECT * FROM categorii WHERE category_id = " . $row['id']);
while ($rows = mysql_fetch_array($results))
{
echo $rows['name'];
}
}
Sus  
mihaitha



Data înscrierii: 04/Mai/2007
Mesaje: 1600
Locație: Sibiu

Trimis: Mar Apr 22, 2008 10:35 am    Titlul subiectului:  

S-a mai discutat. Nu e greu sa cauti. Trebuie doar sa incerci.
http://www.phpromania.net/forum/viewtopic.php?p=78969
Sus  
kyron



Data înscrierii: 16/Sep/2004
Mesaje: 539
Locație: Bucuresti

Trimis: Mar Apr 22, 2008 10:42 am    Titlul subiectului:  

Cod:   function getSubcategorii($categorieID)
{
    $categorieID = mysql_real_escape_string($categorieID);
    $rezultat = array();
    while ($categorieID != 0)
    {
        $query = "SELECT name, parent FROM categorii WHERE id = $categorieID AND id <> '0' ";
                 
        $result = mysql_query($query);
       
        array_push($rezultat,$categorieID);
       
        $categorieID = mysql_result($result,0,'parent');
    }

    return array_reverse($rezultat);
}


o sa ai returnat un array cu id-urile subcategoriilor. Daca vrei ca rray-ul sa contina numele lor si nu id-ul se poate modifica foarte usor
Sus  
PHPRomania Bot
Bot Member


Data înscrierii: 27/Dec/2007
Mesaje: 1
Locaţie: Server Google
Trimis: Mie Dec 26, 2007 7:01 pm   Titlul subiectului: Ad  

Sus  
 
       Pagina de start a forumului Forum PHP Romania - Discutii despre PHP, MySQL, Javascript, AJAX, etc -> Cod PHP
Pagina 1 din 1


Powered by phpBB 2.0.22 © 2001, 2002 phpBB Group
Varianta în limba română: Romanian phpBB online community