🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: es.comp.lenguajes.php
Article #175

Re: Ordenar registros según campo 'orden'

#175
From: "Álvaro G. Vicario"
Date: Wed, 18 Feb 2009 12:39
54 lines
3355 bytes
Javi escribi�:
> Tengo una tabla, por hacerlo m�s sencillo, con tres campos, id, nombre
> y orden. El campo orden es INT y tiene el n�mero de orden en el que se
> quieren mostrar los resultados, la consulta ordena los resultados por
> dicho campo.
> 
> Quiero poder ordenar los registros de la siguiente forma: si quiero
> que el registro que tiene el orden 5 pase a ser el 2, por ejemplo, que
> el 5 pase a ser el 2, que el 2 sea 3, que el 3 sea 4 y que el 4 sea 5.
> En definitiva, que lo inserte, no que sustituya.

�No has escrito *nada* de c�digo todav�a? Sin ver siquiera qu� pinta 
tiene tu estructura de datos cualquier respuesta ser�a un poco ponerse a 
divagar...

En cualquier caso yo pasar�a del "orden": usar�a un array y considerar�a 
su orden impl�cito. En la secci�n de arrays tienes funciones para dar y 
tomar:

	http://es2.php.net/manual/en/ref.array.php

No es muy �ptimo pero cuando quieres cambiar el orden suele ser mucho 
m�s f�cil crear un array nuevo. De todos modos te copio unas funciones 
para manipular arrays que me escrib� hace un tiempo, aunque no est�n muy 
probadas porque al final no las us� xD

	/**
	 * Inserta (o mueve) al principio de $array el elemento $clave con $valor
	 */
	private function array_asoc_insertar(&$array, $clave, $valor){
		if( isset($array[$clave]) ){
			unset($array[$clave]);
		}
		$array = array_merge(array($clave => $valor), $array);
	}


	/**
	 * Elimina de $array (si existe) el elemento $clave
	 */
	private function array_asoc_eliminar(&$array, $clave){
		if( isset($array[$clave]) ){
			unset($array[$clave]);
		}
	}




-- 
-- http://alvaro.es - �lvaro G. Vicario - Burgos, Spain
-- Mi sitio sobre programaci�n web: http://bits.demogracia.com
-- Mi web de humor al ba�o Mar�a: http://www.demogracia.com
--
Technical Details
Message-ID: <gngvi4$inr$1@news.motzarella.org>
Path: arc1-ca.pugleaf.net!g2news1.google.com!news1.google.com!border1.nntp.dca.giganews.com!nntp.giganews.com!newsfeed00.sul.t-online.de!newsfeed01.sul.t-online.de!t-online.de!newsfeed.straub-nv.de!news.motzarella.org!motzarella.org!news.motzarella.org!not-for-mail
References: <7eded1a0-77c1-4564-91d9-744c32443a92@b16g2000yqb.googlegroups.com>

Show Full Headers
Complete Article Headers
X-Google-Thread: 107579,9a02d81a5464e2d6
X-Google-Attributes: gid107579,domainid0,public,usenet
X-Google-Language: SPANISH,ASCII
Path: arc1-ca.pugleaf.net!g2news1.google.com!news1.google.com!border1.nntp.dca.giganews.com!nntp.giganews.com!newsfeed00.sul.t-online.de!newsfeed01.sul.t-online.de!t-online.de!newsfeed.straub-nv.de!news.motzarella.org!motzarella.org!news.motzarella.org!not-for-mail
From: "Álvaro G. Vicario"
 <alvaro.NOSPAMTHANX@demogracia.com>
Newsgroups: es.comp.lenguajes.php
Subject: Re: Ordenar registros según campo 'orden'
Date: Wed, 18 Feb 2009 13:39:30 +0100
Organization: A noiseless patient Spider
Lines: 54
Message-ID: <gngvi4$inr$1@news.motzarella.org>
References: <7eded1a0-77c1-4564-91d9-744c32443a92@b16g2000yqb.googlegroups.com>
Mime-Version: 1.0
Content-Type: text/plain; charset=ISO-8859-1; format=flowed
Content-Transfer-Encoding: 8bit
X-Trace: news.eternal-september.org U2FsdGVkX1//kuE5G8x8YuvXQblwPZOZU/VIQTCXw2cCojKnzkTy+ReXB8BJKRBAGLV7VIrjLJQpkTTUn8n4tf1caf3fAazgDE628hZnoUyB5ZJzOchCwMjNZBBzgnbKlf8zTVxUd9w=
X-Complaints-To: Please send complaints to abuse@motzarella.org with full headers
NNTP-Posting-Date: Wed, 18 Feb 2009 12:39:32 +0000 (UTC)
In-Reply-To: <7eded1a0-77c1-4564-91d9-744c32443a92@b16g2000yqb.googlegroups.com>
X-Auth-Sender: U2FsdGVkX1/ZU9OwdXmZ7VBwBqxvV/fdbXX/YDLF51c=
Cancel-Lock: sha1:ObDgAWHHahIDgcNPLTWE4UtQVyg=
User-Agent: Thunderbird 2.0.0.19 (Windows/20081209)