Foros del Web » Programando para Internet » PHP »

dar prioridad a articulos en mysql

Estas en el tema de dar prioridad a articulos en mysql en el foro de PHP en Foros del Web. Sres: tengo un requerimiento que no puedo cumplir. un cliente me pide poder elegir cualquiera de los artículos de la base de datos, y hacer ...
  #1 (permalink)  
Antiguo 19/02/2008, 07:16
Avatar de arielcasanova  
Fecha de Ingreso: octubre-2004
Ubicación: Bahía Blanca - Argentina
Mensajes: 332
Antigüedad: 19 años, 6 meses
Puntos: 1
dar prioridad a articulos en mysql

Sres: tengo un requerimiento que no puedo cumplir.
un cliente me pide poder elegir cualquiera de los artículos de la base de datos, y hacer que aparezca primero en los listados, y elegir cualquier otro y que aparezca segundo y al otro día elegir otro para que esté primero y así.
No sé qué campo agregar a la tabla productos que me permita establecer un orden que cuando sea modificado, no deba modificar a su vez a todos los demás (la tabla actualmente tiene 60 productos, pero se espera que tenga unos 500 en breve).
Si alguien tiene idea de cómo puedo encarar esto, agradeceré la ayuda, porque no se me ocurre nada.
Estoy trabajando en PHP y MySQL
__________________
Ariel Casanova
diseño y desarrollo web estratégico
www.emporia.com.ar
  #2 (permalink)  
Antiguo 19/02/2008, 07:34
Avatar de destor77  
Fecha de Ingreso: noviembre-2004
Ubicación: Gálvez, Santa Fe, Argentina
Mensajes: 2.654
Antigüedad: 19 años, 5 meses
Puntos: 43
Re: dar prioridad a articulos en mysql

mmm lo que se me ocurre es que a la tabla de las noticias le pongas un campo llamado peso, y que sea numerico entonces si lo quiere primero se le agrega 1, si lo quiere segundo 2 .... etc, y despues ordena la busqueda segun el peso de la noticia. Seguro hay otra opcion se me ocurrio esto viendo como los nuke manejan la posicion de los bloques ;)

salu2
  #3 (permalink)  
Antiguo 19/02/2008, 07:52
Avatar de arielcasanova  
Fecha de Ingreso: octubre-2004
Ubicación: Bahía Blanca - Argentina
Mensajes: 332
Antigüedad: 19 años, 6 meses
Puntos: 1
Re: dar prioridad a articulos en mysql

Gracias Destor; te comento: yo pensé en eso, pero que pasa si ya hay una noticia con peso 1, y el tipo quiere que aparezca otra arriba? Tendría que haber una consulta que update noticias set peso =1 where noticia=dos, pero como ya existe otra que tiene el peso uno, antes tendria que buscarla y modificarlo, poniéndole, peso=2. ¿pero si ya había otra en con peso 2 con anterioridad? Es un quilombo!!!
He visto otros sistemas con una flechita, que uno hace click, y el artículo sube una posición, desplazando al que tenía arriba, pero no sé cómo se hace eso!
¿alguna idea?
__________________
Ariel Casanova
diseño y desarrollo web estratégico
www.emporia.com.ar
  #4 (permalink)  
Antiguo 19/02/2008, 08:13
Avatar de popobcn
Moderador
 
Fecha de Ingreso: noviembre-2006
Ubicación: Cerdanyola del Vallès
Mensajes: 3.892
Antigüedad: 17 años, 5 meses
Puntos: 1142
Re: dar prioridad a articulos en mysql

ariel,

El sistema al que te refieres no es complicado de realizar, yo con el fin de simplificar el proceso lo que haría sería crear una página exclusivamente para ajustar este tipo de peso / valor de articulo y gestionaria el peso de los mismos de la siguiente manera:

1. Concretar con tu cliente la cantidad de ariticulos inciales con los que desea jugar, dado que dudo mucho que quieran estar manipulando constantemente 300 registros / articulos y se centrarán en aquellos que realmente desean explotar.

2. Con la seleccion inicial de los articulos indicada por el cliente, efectuaría una primera asignación (secuencial) de peso de articulo.

3. Gestion de peso: El peso lo puedes controlar facilmente, sumando o restando peso a los articulos anteriores o posteriores del articulo seleccionado o que se pretende mover.

En caso de que se desee bajar el articulo, simplemente tendriamos que restar 1 punto de valor a ese articulo y sumarselo al articulo anterior. O si por el contrario deseamos subir el articulo de posicion, operariamos a la inversa.

Espero haberte servido de ayuda.

Saludos
  #5 (permalink)  
Antiguo 19/02/2008, 10:57
Avatar de arielcasanova  
Fecha de Ingreso: octubre-2004
Ubicación: Bahía Blanca - Argentina
Mensajes: 332
Antigüedad: 19 años, 6 meses
Puntos: 1
Re: dar prioridad a articulos en mysql

Popobcn, muchísimas gracias por tu ayuda.
Mi pregunta es, si tengo un artículo en el puesto 25 y lo quiero llevar al puesto 10, ¿qué operación sql utilizo para restarle uno a todos los que estén del puesto 10 para arrriba?
__________________
Ariel Casanova
diseño y desarrollo web estratégico
www.emporia.com.ar
  #6 (permalink)  
Antiguo 19/02/2008, 11:01
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Re: dar prioridad a articulos en mysql

Puedes usar algo así:
Código:
UPDATE articulos SET posicion=posicion-1 WHERE posicion > 10
Saludos.
  #7 (permalink)  
Antiguo 19/02/2008, 11:10
Avatar de arielcasanova  
Fecha de Ingreso: octubre-2004
Ubicación: Bahía Blanca - Argentina
Mensajes: 332
Antigüedad: 19 años, 6 meses
Puntos: 1
Re: dar prioridad a articulos en mysql

Pero qué nabo que soy! Claro, GatorV, gracias.
Voy a ver de qué manera puedo implementar todo esto junto, y cuando lo tenga lo publico
__________________
Ariel Casanova
diseño y desarrollo web estratégico
www.emporia.com.ar
  #8 (permalink)  
Antiguo 19/02/2008, 12:16
Avatar de arielcasanova  
Fecha de Ingreso: octubre-2004
Ubicación: Bahía Blanca - Argentina
Mensajes: 332
Antigüedad: 19 años, 6 meses
Puntos: 1
Re: dar prioridad a articulos en mysql

SOLUCIÓN QUE APLICARÉ DE MOMENTO:

$sql = "SELECT * FROM dina_productos WHERE ubicacion = (SELECT max(ubicacion) FROM dina_productos)";
$result = mysql_query($sql, $conexion);
if ($row = mysql_fetch_array($result)){
mysql_field_seek($result,0);
do {
$ub40=$row['ubicacion'];
}
while ($row = mysql_fetch_array($result));
}
$ub41=($ub40+1);

$sql3= "UPDATE dina_productos SET ubicacion='$ub41' WHERE id='$id';";
$result3 = mysql_query($sql3, $conexion;


Gracias a todos.
__________________
Ariel Casanova
diseño y desarrollo web estratégico
www.emporia.com.ar
  #9 (permalink)  
Antiguo 26/02/2008, 05:57
Avatar de arielcasanova  
Fecha de Ingreso: octubre-2004
Ubicación: Bahía Blanca - Argentina
Mensajes: 332
Antigüedad: 19 años, 6 meses
Puntos: 1
Re: dar prioridad a articulos en mysql

Me faltó decir que en el front pongo order by ubicacion desc; la ubicación vendría a ser el peso, y el que más peso tiene, va más arriba.
__________________
Ariel Casanova
diseño y desarrollo web estratégico
www.emporia.com.ar
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 22:59.