Foros del Web » Programando para Internet » PHP »

Obtener posición en un SELECT

Estas en el tema de Obtener posición en un SELECT en el foro de PHP en Foros del Web. Hola amigos, Tengo un query que selecciona una serie de filas que cumplen con cierto requisito. Necesito saber la posición de cada fila en esa ...
  #1 (permalink)  
Antiguo 14/04/2009, 02:11
 
Fecha de Ingreso: noviembre-2008
Mensajes: 259
Antigüedad: 15 años, 4 meses
Puntos: 1
Obtener posición en un SELECT

Hola amigos,

Tengo un query que selecciona una serie de filas que cumplen con cierto requisito.

Necesito saber la posición de cada fila en esa nueva lista (la generada por el query), de manera que pueda decir: "Estamos en la foto 8 de 34 en el Album row[Album]".

Os dejo el código: Claramente debería cambiar ese row[idFoto] por la variable que me devuelva la posición en el query actual de dicha foto, pero no sé determinar esta posición!
Gracias!

Código PHP:
$result2 mysql_query("SELECT * FROM fotos WHERE Album='".$row['Album']."' AND size!=1");
$row2 mysql_num_rows($result2);
echo 
"<font face=Arial size=2 color=#000033>"."Foto "."<b>"$row['idFoto']."</b>"." de "."<b>".($row2+1)."</b>"
  #2 (permalink)  
Antiguo 14/04/2009, 06:19
 
Fecha de Ingreso: abril-2008
Mensajes: 435
Antigüedad: 16 años
Puntos: 10
Respuesta: Obtener posición en un SELECT

Hola
pues seguramente cada fila tiene un id, es ese id el que vas a utilizar para saber la posicion del registro

saludos
  #3 (permalink)  
Antiguo 14/04/2009, 06:28
 
Fecha de Ingreso: noviembre-2008
Mensajes: 259
Antigüedad: 15 años, 4 meses
Puntos: 1
Respuesta: Obtener posición en un SELECT

Eso funciona bien cuando selecciono TODO y sin restricciones.

Pero cuando selecciono con un WHERE, el id se mantiene pero yo quiero saber la posición de esa foto.

Ejemplo:

id Foto
1 abc
2 acd
3 dba
4 aei

Cuando selecciono con restricciones (SELECT WHERE), me quedaría algo así:
id Foto
3 dba
4 aei

Yo quiero que me devuelva el id 3 en posición 1 en el SELECT.

Espero haber sido explícito!!

GRacias!
  #4 (permalink)  
Antiguo 14/04/2009, 06:42
 
Fecha de Ingreso: abril-2008
Mensajes: 435
Antigüedad: 16 años
Puntos: 10
Respuesta: Obtener posición en un SELECT

Lo que podes hacer es contar los registros que te devuelve la consulta y a partir de ahi trabajarlos ya con php, por ejemplo si usas el tipico while para imprimir los registros
while (......... = mysql_fetch_row($consulta))

ahi haces todo lo que tengas que hacer y abajo agregas una fila de una tabla con un contador, el numero de foto es el que empieza en uno y se incrementa en cada iteracion del while y el numero total de fotos es lo que sale del count de la consulta.
espero haber sido claro

saludos
  #5 (permalink)  
Antiguo 14/04/2009, 09:35
 
Fecha de Ingreso: marzo-2009
Mensajes: 20
Antigüedad: 15 años, 1 mes
Puntos: 0
Respuesta: Obtener posición en un SELECT

Muy similar a lo que propone Adell. Si lo que deseas es listar los resultados con un “id falso” o mejor dicho un listado numerado según resulte de la(s) restricción(es) de la Consulta

Puedes hacer algo como esto:
Código PHP:
$contador 1;
while(
$fila mysql_fetch_array($result2))
{
    echo 
$fila["idFoto"].' de '.$contador .'<br>';
    
$contador $contador 1

  #6 (permalink)  
Antiguo 14/04/2009, 17:55
 
Fecha de Ingreso: abril-2008
Mensajes: 435
Antigüedad: 16 años
Puntos: 10
Respuesta: Obtener posición en un SELECT

el ejemplo que propone nestoroc es algo parecido a lo que dije yo, pero segun como lo planteas va a tener el mismo problema de antes ya que si pedis el idfoto se va a saltear las fotos que no coincidan con la consulta y en algunos casos te puede quedar foto 5 de 1 por ejemplo.
la correccion seria la siguiente

Código PHP:
$contador 1;
while(
$fila mysql_fetch_array($result2))
{
    echo 
$contador.' de '.$count .'<br>';
    
$contador $contador 1
}  
//donde la variable $count es la cantidad de registros que devuelve la consulta 
saludos
  #7 (permalink)  
Antiguo 14/04/2009, 17:56
 
Fecha de Ingreso: abril-2008
Mensajes: 435
Antigüedad: 16 años
Puntos: 10
Respuesta: Obtener posición en un SELECT

perdon se me duplico el post hagan el favor de borrarlo
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 23:03.