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. si tengo los sigientes registros: id_categoria, orden, categoria orden categoria 1 argentina 2 brasil 3 venezuel 4 españa 5 EE UU 6 francia 7 alemania ...
  #1 (permalink)  
Antiguo 04/05/2005, 00:43
Avatar de alexis77  
Fecha de Ingreso: diciembre-2003
Mensajes: 119
Antigüedad: 20 años, 4 meses
Puntos: 0
Ordenar categorias

si tengo los sigientes registros:


id_categoria, orden, categoria

orden categoria
1 argentina
2 brasil
3 venezuel
4 españa
5 EE UU
6 francia
7 alemania


etc

para esto tengo otro campo que se llama orden mediante este campo pienso ordenar pero no se como hacer, al momento de insertar a la db,
si elijo españa

tendria que hacer una validacion

si orden es igual a la variable $orden(españa = 4), que reste uno a todos los que menores o igual 4
y sume a tos los que son mayores a 4



ahora antes
1 1 argentina
2 2 brasil
3 4 españa
4 3 venezuel
5 5 EE UU
6 6 francia
7 7 alemania



per cuando llegue a 0 ya no siga restando y lo lo mismo cuando llegue al ultimo registro ya no siga sumando
  #2 (permalink)  
Antiguo 04/05/2005, 21:14
Avatar de alexis77  
Fecha de Ingreso: diciembre-2003
Mensajes: 119
Antigüedad: 20 años, 4 meses
Puntos: 0
alguna idea por favor....!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
  #3 (permalink)  
Antiguo 04/05/2005, 21:29
 
Fecha de Ingreso: noviembre-2003
Mensajes: 34
Antigüedad: 20 años, 5 meses
Puntos: 0
bueno creo q debes detallar mas tu problema y decir lo q quieras hacer.. a ver si te he entendido te refieres a crear un scriipt donde yo pueda elegir el orden de los paises al cual puede sibirlo solamante hasta el orden 1 y asi con todos?
  #4 (permalink)  
Antiguo 05/05/2005, 15:20
Avatar de alexis77  
Fecha de Ingreso: diciembre-2003
Mensajes: 119
Antigüedad: 20 años, 4 meses
Puntos: 0
creo a no es sido lu suficiente claro con el planteamiento de la pregunta

tengo una tabla con tres campos

CREATE TABLE `categoria` (
`id_categoria` int(3) NOT NULL auto_increment,
`categoria` varchar(255) default NULL,
`orden` tinyint(2) NOT NULL default '0',
PRIMARY KEY (`id_categoria`)
) TYPE=MyISAM AUTO_INCREMENT=0;


y quiero ordenarlos mediante el campo orden en forma DESC



Código PHP:
$query " SELECT * FROM categoria ORDER BY orden DESC";
$result mysql_query($query);
echo 
"Orden   Categorias";
while(
$rows mysql_fetch_array($result)){
    echo 
"<a href=\"?action=bajar\">" .$rows["orden"]. "<a> <a href=\"?action=subir\">" .$rows["orden"]. "<a>  " $rows["categoria"]."<br>";
}


//aqui aria el update al campo orden dependiendo de la action

if($action == "bajar"){
//esto seria en caso de la categoria seleccionada le reste uno, pero como hago con las demas categorias para restarle o sumarles
    
$query "UPDATE categoria SET orden = orden - 1 WHERE id_categoria = '$id'";
    
$result mysql_query($query);
}

if(
$acton == "subir"){    
    
$query "UPDATE categoria SET orden = orden + 1 WHERE id_categoria = '$id'";
    
$result mysql_query($query);
}

y el resultado de la consulta seria:

subir y esto va ser una flecha hacia arriba
bajar y esto va ser una fecha hacia abajo

  s argentina
b s brasil
b s venezuela
b s españa
b s EE UU
b s francia
b   alemania 
esta seria mi logica

no se si alguin tendra otro planteamiento, ojala que sí

y las categorias no necesariamente van a ser paises, solo las tome como ejem
ojala que me ayan entendido...
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 11:00.