Tema destacado:
Autor
|
Tema: Estoy realizando un CMS (pequeña duda de lógica) (Leído 2,456 veces)
|
|
dimitrix
|
Castl! El problema es que el ID_padre no tiene nada que ver con el nivel, me explico. Si por ejemplo: Inicio ID=1 Donde Estamos ID=2 |-> En Valencia ID=3 |-> En Barcelona ID=4 |---> En Tarrassa ID=5 |---> Otros lugares ID=6 |-> En Alicante ID=7 |-> En Madrid ID=8 Servicios que ofrecemos ID=8 ID Padre sería Inicio ID_padre=0 Donde Estamos ID_padre=0 |-> En Valencia ID_padre=2 |-> En Barcelona ID_padre=2 |---> En Tarrassa ID=4 |---> Otros lugares ID=4 |-> En Alicante ID=2 |-> En Madrid ID=2 Servicios que ofrecemos ID=0 ¿Lo entendeis ahora? La razón de por que se hace así y no directamente de otra forma, es por que así desde el panel de control se puede mover las carpetas de un lugar a otro.
|
|
|
|
|
En línea
|
|
|
|
Castg!
Wiki
Desconectado
Mensajes: 1.187
|
Perfecto, agregá otra coluimna en tu base de datos: "njerarquia" siendo: Inicio njerarquia=0 Donde Estamos njerarquia=0 |-> En Valencia njerarquia=1 |-> En Barcelona njerarquia=1 |---> En Tarrassa njerarquia=2 |---> Otros lugares njerarquia=2 |-> En Alicante njerarquia=1 |-> En Madrid njerarquia=1 Servicios que ofrecemos ID=0 Así, ID_Padre queda intacto para lo que vos lo utilices, y mi función correría tranquila y correcta
|
|
|
|
|
En línea
|
|
|
|
|
dimitrix
|
Castg! hay un problema, por ejemplo: Inicio njerarquia=0 Donde Estamos njerarquia=0 |-> En Valencia njerarquia=1 |-> En Barcelona njerarquia=1 |---> En Tarrassa njerarquia=2 |---> Otros lugares njerarquia=2 |-> En Alicante njerarquia=1 |-> En Madrid njerarquia=1 Servicios que ofrecemos njerarquia=0 |-> webs njerarquia=1 |-> PHP njerarquia=1
¿Cómo podrías saber que 'webs' pertenece a 'Servicios que ofrecemos' y no a 'Donde estamos'.
|
|
|
|
|
En línea
|
|
|
|
Castg!
Wiki
Desconectado
Mensajes: 1.187
|
Es complicadisimo! No se si el problema es que te enquilombaste mucho! veo que puedo seguir haciendo, sino, me parece que vas a tener que cambiar de método, aunque no lo creo...
|
|
|
|
|
En línea
|
|
|
|
|
Freeze.
|
Tienes que organizarte mejor. Item y Subitem serían 2 tablas distintas. Cada Item principal debe tener un ID. Y los subitems un pID, con el que relacionarias. (ID padre). La cuestion es que solo funcionaria para un solo nivel, no encuentro la forma de hacerlo de otra forma sin agrander el numero de tablas de una manera poco estética.
|
|
|
|
|
En línea
|
|
|
|
|
bomba1990
|
bueno yo l otra ves tenia un problema muy parecido, no consegui la solucion absoluta, pero lo que hice fue que hice un algoritmo que revisara todo el array y a cada padre le pusiera sus hijos, y despues con bucles anidados irlos mostrandos, lo de los bucles anidados no me gustaba mucho, asi que trate de hacer una funcion recursiva, pero cuando la haci no daba error, pero toda la pantalla se ponia en blanco, la postee aqui pero nadie vio mi error, por eso me quede con los bucles anidados si te interesa ver el codigo me avisas y lo posteo.
|
|
|
|
|
En línea
|
|
|
|
|
dimitrix
|
bueno yo l otra ves tenia un problema muy parecido, no consegui la solucion absoluta, pero lo que hice fue que hice un algoritmo que revisara todo el array y a cada padre le pusiera sus hijos, y despues con bucles anidados irlos mostrandos, lo de los bucles anidados no me gustaba mucho, asi que trate de hacer una funcion recursiva, pero cuando la haci no daba error, pero toda la pantalla se ponia en blanco, la postee aqui pero nadie vio mi error, por eso me quede con los bucles anidados si te interesa ver el codigo me avisas y lo posteo.
Ok muchas gracias, lo haré hasta 4 niveles que nunca se suele usar tanto y listo! Muchas gracias a todos.
|
|
|
|
|
En línea
|
|
|
|
Castg!
Wiki
Desconectado
Mensajes: 1.187
|
Mirá, estoy corto de tiempo en este momento para realizar un script, tal vez más tarde pueda meterle un poco de mano, pero se me ocurrió esto: Cargas de la bd todos los items con id_padre=0. Recorres estos valores cargados uno por uno. Para cada uno, cargas de la bd todos los items con id_padre=id_item_actual (entendes?) y entonces vas guardando los datos en una variable array. --> RecursivoUna imagen te puede ayudar más: (cuando ya se está en el bucle, se encuentra una subcategoria y se empieza otro bucle, justamente se empieza OTRO bucle, para después completar el/los comenzados anteriormente. Con empezar bulce me refiero a llamar a una función cuando existan items con id_padre=item actual, asi quedaría Recursivo) 
|
|
|
|
|
En línea
|
|
|
|
|
dimitrix
|
Al final lo he conseguido hacer de otra forma, aunque el diseño es una *****, por lo menos se puede ver algo xD 
|
|
|
|
|
En línea
|
|
|
|
Castg!
Wiki
Desconectado
Mensajes: 1.187
|
Entonces como es que lo solucionaste?
|
|
|
|
|
En línea
|
|
|
|
|
dimitrix
|
Entonces como es que lo solucionaste?
Lo hice hasta 4 niveles, luego con un 'Count' contaba cuentas líneas se había impreso, después hacía un SELECT para mirar las secciones que existían en la db (count2). Si count==count2 todo perfecto. Si count!=count2 te muestra que ciertas secciones no se han mostrado y te da la opción de ir a un panel que ya había programado donde salen todas las secciones y puedes modificar el ID_padre (por si era de una sección que ya no existe) o cambiar a otra o dejarlo como está. (Puesto que en el menú, sí saldría bien, el problema lo tenía en el panel de control). Si quieres verlo te paso el code por privado. Muchas gracias
|
|
|
|
« Última modificación: 9 Marzo 2011, 15:31 por dimitrix »
|
En línea
|
|
|
|
|
|