Foros del Web » Programando para Internet » PHP »

Ordenar categorias

Estas en el tema de Ordenar categorias en el foro de PHP en Foros del Web. Como seria la lógica para ordenar categorías? creo que un grafico es mas explicito que palabras esa información sale de la siguiente base de datos ...
  #1 (permalink)  
Antiguo 16/05/2005, 23:22
Avatar de alexis77  
Fecha de Ingreso: diciembre-2003
Mensajes: 119
Antigüedad: 14 años
Puntos: 0
Ordenar categorias

Como seria la lógica para ordenar categorías?
creo que un grafico es mas explicito que palabras



esa información sale de la siguiente base de datos

CREATE TABLE `cat_categoria` (
`id_categoria` int(3) NOT NULL auto_increment,
`categoria` varchar(255) default NULL,
`fecha` date NOT NULL default '0000-00-00',
`ordenar` int(5) NOT NULL default '0',
PRIMARY KEY (`id_categoria`)
) TYPE=MyISAM AUTO_INCREMENT=9 ;

--
-- Volcar la base de datos para la tabla `cat_categoria`
--

INSERT INTO `cat_categoria` VALUES (1, 'Categoria 1', '2005-05-17', 0);
INSERT INTO `cat_categoria` VALUES (2, 'Categoria 2', '2005-05-17', 0);
INSERT INTO `cat_categoria` VALUES (3, 'Categoria 3', '2005-05-17', 0);
INSERT INTO `cat_categoria` VALUES (4, 'Categoria 4', '2005-05-17', 0);
INSERT INTO `cat_categoria` VALUES (5, 'Categoria 5', '2005-05-17', 0);
INSERT INTO `cat_categoria` VALUES (6, 'Categoria 6', '2005-05-17', 0);
INSERT INTO `cat_categoria` VALUES (7, 'Categoria 7', '2005-05-17', 0);

Intente de muchas formas pero no me funciona
Ojala que me puedan ayudar
  #2 (permalink)  
Antiguo 17/05/2005, 00:06
 
Fecha de Ingreso: enero-2004
Ubicación: Salto
Mensajes: 484
Antigüedad: 13 años, 11 meses
Puntos: 2
No se cual es la lógica q buscas, pero en SQL puedes usar la sentencia ORDER BY (ordenar por)
Esto te ordenaria en el orden inverso
Código PHP:
SELECT FROM tu_tabla ORDER BY tu_columna DESC 
Lo q te daría como resultado
7, 'Categoria 7', '2005-05-17', 0
6, 'Categoria 6', '2005-05-17', 0
5, 'Categoria 5', '2005-05-17', 0
4, 'Categoria 4', '2005-05-17', 0
Ordenados por ID, en este caso.
Saludos cuidate
__________________
Dios dira que esto no es justo, pero lo sera...
  #3 (permalink)  
Antiguo 17/05/2005, 10:15
Avatar de DINASEN  
Fecha de Ingreso: marzo-2003
Mensajes: 997
Antigüedad: 14 años, 9 meses
Puntos: 1
alexis77 creo que lo que quieres es algo parecido o igual also modulos nuke que les puede cambiar el orden de aparicion...

Si es asi yo haria lo siguiente

Cuando des de alta una categoria mira el id de la ultima que tienes dada de alta, sumale 1 multiplicalo por 10 he insertalo en orden, te preguntaras pro que por 10 pues muy simple si creas el orden consecutivo es decir 1,2,3,4,5,etc si la 4 la quieres poenr la 3 tendrias que liar mucho si lo haces con cierto margen tendrias mas ventaja ya que solo tendrias que cambiar el orden de 1

para la modificacion si es bajada sumale 11 y si es subida restale 11 y tendras el tema resuelto

ejemplo

tenemos
1->categoria1->10
2->categoria2->20
3->categoria3->30
4->categoria4->40

Bien si quieres subir la categoria 3 para arriba al restarle 11 nos queda 19 con lo cual se queda por encima de la 2.....

en los select para presentar los datos ordena por el campo ordenar

Espero que te sirva

Un Saludo
  #4 (permalink)  
Antiguo 17/05/2005, 23:14
Avatar de alexis77  
Fecha de Ingreso: diciembre-2003
Mensajes: 119
Antigüedad: 14 años
Puntos: 0
Como que no he sido lo suficientemente explicito con mi planteamiento

basandome en el grafico



es como el planteaminto de DINASEN con la diferencia de ordenar de uno en uno mediante el campo orden

id categoria orden
4 ->categoria1-> 1
2 ->categoria2-> 2
1 ->categoria3-> 3
4 ->categoria4-> 4

y me saldria en orden desc

hasta aqui lo tengo claro

aqui es donde no se como hacer
trabjando mendiante las flechitas(rojas) arriba o abajo

primero hago mi consulta al tabla categorias
una vez echa la consulta hago la comparacion

si id es <= al id de la consulta
que reste -1

si id >= al id de la conulta
que sume + 1

pero cuando llegue al primer registro que no reste y lo mismo cuando llegue al ultimo registro

ahora no pongo el script como tal porque mi srvidor se cayo justo ahora.....
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 15:04.