13/12/2004, 17:57
|
| Moderador extraterrestre | | Fecha de Ingreso: diciembre-2001 Ubicación: Madrid
Mensajes: 6.987
Antigüedad: 22 años, 4 meses Puntos: 61 | |
Pues la verdad es que me ha servido! No he entrado aún a mirar lo de los nodos, pero para ver si era lo que quería he hecho unas pruebas y ha funcionado!!
He modificado un poco el código que proponían porque yo tengo un campo con el id y otro con el nombre y el alemán este tan simpático sólo tenía el campo del nombre. Y la función ha quedado así: Código PHP: // $parent is the parent of the children we want to see // $level is increased when we go deeper into the tree, // used to display a nice indented tree function display_children($parent, $level) { // retrieve all children of $parent $result = mysql_query('SELECT * FROM categorias '. 'WHERE pende="'.$parent.'";'); // display each child while ($row = mysql_fetch_array($result)) { // indent and display the title of this child //Aquí hice otro cambio porque quería que mostrara un combo con las opciones echo "<option value='".$row['id']."'>".str_repeat(' ',$level).$row['nombre']."</option>\n"; // call this function again to display this // child's children display_children($row['id'], $level+1); } } Básicamente lo que hace es lo que no quería hacer (jeje). Hace varias consultas: va id por ide viendo los que dependen de él y los va poniendo debajo. Es muy ingenioso en su forma! Se basa en que ninguna subcategoría va a tener un id anterior a la categoría que lo envuelve (como es lógico ya que para meter una cosa dentro de otra debes hacer antes el continente que el contenido).
Y luego en el código de la página pongo: Código PHP:
<select name="categoria"> <option>Seleccione la categoría</option> <?echo "<select name='categoria'>"; display_children('',0); ?> </select> En cuanto mire lo de los nodos os comento
__________________ Cómo escribir
No hay pregunta tonta, sino tonto que quiere seguir en la ignorancia. |