Foros del Web » Programando para Internet » PHP »

Mostrar resultados de una consulta: me muestra un registro menos

Estas en el tema de Mostrar resultados de una consulta: me muestra un registro menos en el foro de PHP en Foros del Web. La ayuda es para esta web sobre juegos para Nintendo DS . Al final de la ficha del juego, se muestran las etiquetas relacionadas con ...
  #1 (permalink)  
Antiguo 23/03/2009, 16:09
Avatar de -Defero-
Colaborador
 
Fecha de Ingreso: julio-2004
Ubicación: Guipúzcoa
Mensajes: 4.776
Antigüedad: 19 años, 9 meses
Puntos: 76
Mostrar resultados de una consulta: me muestra un registro menos

La ayuda es para esta web sobre juegos para Nintendo DS. Al final de la ficha del juego, se muestran las etiquetas relacionadas con el mismo (más tarde las etiquetas serán enlaces a listas de juegos que lleven la misma etiqueta). Las etiquetas las he metido en una tabla de nombre "etiquetas" (así de original soy), en las que hay únicamente dos campos: "etiqueta", y "ref_juego" (este segundo campo es el que sirve para identificar las etiquetas con el juego).

Primero, extraigo de la URL la referencia del juego:

Código PHP:
$referencia mysql_escape_string($HTTP_GET_VARS["ref"]); 
Que en el caso del juego enlazado es la referencia 71.

Luego me conecto a la base de datos:

Código PHP:
include("config.php");
$conexion mysql_connect($dbhost,$dbuser,$dbpasswd);
mysql_select_db($dbname,$conexion); 
Hago la consulta:

Código PHP:
    $consulta_etiquetas "select * from etiquetas WHERE ref_juego='$referencia'" ;
    
$resultado_etiquetas mysql_query($consulta_etiquetas); 
    
$registros_etiquetas mysql_fetch_array($resultado_etiquetas); 
Y le digo que me muestre los registros uno por uno:

Código PHP:
    $i 0;
    while (
$registros_etiquetas mysql_fetch_array($resultado_etiquetas)){
        if (
$i 100){
            echo 
"        <li>$registros_etiquetas[etiqueta]</li>
"
;
            
$i++;
            }
        } 
En la base de datos hay tres etiquetas con la referencia 71: "bleach", "acción" y "lucha". Bien, pues sólo me muestra dos etiquetas, omite siempre la primera. En los juegos que sólo tienen una etiqueta, no muestra nada.

Imagino que será una pequeña tontería que se me escapa, pero llevo dándole vueltas un buen rato, y no veo el error. ¿Alguien lo ve?
__________________
abogado en Errenteria + procuradora en San Sebastián = equipo imparable
  #2 (permalink)  
Antiguo 23/03/2009, 16:13
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Respuesta: Mostrar resultados de una consulta: me muestra un registro menos

Hola, Defero.tk.

Eso sucede porque antes de entrar al bloque while, ejecutas esta línea:
Código php:
Ver original
  1. $registros_etiquetas = mysql_fetch_array($resultado_etiquetas);

Por lo que el primer registro ya es recuperado.

Además, veo que usas la variable $i para limitar los registros mostrados, es mejor usar LIMIT en la misma consulta para hacerlo (es más rápido).

Saludos .
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #3 (permalink)  
Antiguo 23/03/2009, 16:21
Avatar de -Defero-
Colaborador
 
Fecha de Ingreso: julio-2004
Ubicación: Guipúzcoa
Mensajes: 4.776
Antigüedad: 19 años, 9 meses
Puntos: 76
Respuesta: Mostrar resultados de una consulta: me muestra un registro menos

Muchas gracias, David. Sabía que sería una bobería, pero es como esos ejercicios de matemáticas, en los que pasas y repasas, y siempre cometes el mismo fallo.
__________________
abogado en Errenteria + procuradora en San Sebastián = equipo imparable
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 21:09.