Ver Mensaje Individual
  #1 (permalink)  
Antiguo 26/10/2006, 09:38
Mphystos
 
Fecha de Ingreso: octubre-2006
Mensajes: 3
Antigüedad: 18 años, 4 meses
Puntos: 0
Pregunta Please necesito ayuda

Hola a Todos
Me dieron esta funcion y me dijeron que hacia lo que yo buscaba, hacer una busqueda en forma de arbol en MySQL, la voy a escribir seguidamente abajo, alguien sabe si eso se puede pasar a PHP y MySQl, es decir si MySQL se traga trabajar con funciones de ese tipo y como seria en caso de que si???, estuve probando y no he tenido buenos resultados, de hecho no se ni para que gestor de BD esta hecha la funcion. Gracias, Saludos "Yo"

Esta es la Funcion:

CREATE FUNCTION dbo.DescendientesCategoria (@IDCategoria numeric)
RETURNS @retDescendientesCategoria2 TABLE (retIDCategoria numeric primary key)
AS
BEGIN
DECLARE @level int
DECLARE @retDescendientesCategoria TABLE (retIDCategoria numeric primary key, retlevel int)
INSERT INTO @retDescendientesCategoria VALUES (@IDCategoria, 1)
SELECT @level = 1
WHILE @level > 0
BEGIN
IF EXISTS (SELECT * FROM @retDescendientesCategoria WHERE retlevel = @level)
BEGIN
SELECT @IDCategoria = retIDCategoria
FROM @retDescendientesCategoria
WHERE retlevel = @level
INSERT INTO @retDescendientesCategoria2 VALUES (@IDCategoria)
DELETE FROM @retDescendientesCategoria
WHERE retlevel = @level
AND retIDCategoria = @IDCategoria
INSERT @retDescendientesCategoria
SELECT IDCategoria, @level + 1
FROM Categorias
WHERE IDCategoriaPadre = @IDCategoria
IF @@ROWCOUNT > 0
SELECT @level = @level + 1
END
ELSE
SELECT @level = @level - 1
END -- WHILE
RETURN
END