Article View: es.comp.lenguajes.php
Article #175Re: Ordenar registros según campo 'orden'
From: "Álvaro G. Vicario"
Date: Wed, 18 Feb 2009 12:39
Date: Wed, 18 Feb 2009 12:39
54 lines
3355 bytes
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-mailReferences:
<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)