Foros del Web » Programando para Internet » PHP »

fetch_row no devuelve el ultimo resultado de la consulta

Estas en el tema de fetch_row no devuelve el ultimo resultado de la consulta en el foro de PHP en Foros del Web. Hola gente, Soy medio nueva con esto del PHP, les pido ayuda para el siguiente codigo que no esta funcionando bien: Código PHP: <?php  include( ...
  #1 (permalink)  
Antiguo 02/09/2010, 12:50
Avatar de gabi83  
Fecha de Ingreso: septiembre-2010
Ubicación: Baires
Mensajes: 7
Antigüedad: 13 años, 7 meses
Puntos: 0
fetch_row no devuelve el ultimo resultado de la consulta

Hola gente,
Soy medio nueva con esto del PHP, les pido ayuda para el siguiente codigo que no esta funcionando bien:

Código PHP:
<?php 
include("conexion.php");

$sql_seleccionar_it"SELECT id_item,titulo,pais,condicion,categoria,img01,estado
FROM items
WHERE estado=1
AND condicion=1
ORDER BY categoria,pais DESC"
;

$c_seleccionar_itmysql_query($sql_seleccionar_it$miconexion);

if (!
$row_seleccionar_it mysql_fetch_row($c_seleccionar_it)){ ?>
        <p style="margin-top:30px; font-size:16px; line-height:24px">Actualmente no hay propiedades a la venta.</p>

<?php 
} else { 
        while (
$row_seleccionar_it mysql_fetch_row($c_seleccionar_it)){ 
            echo 
$row_seleccionar_it[0];
            echo 
$row_seleccionar_it[1]; 
            echo 
$row_seleccionar_it[2]; 
            echo 
$row_seleccionar_it[3]; 
            echo 
$row_seleccionar_it[4]; 
            echo 
$row_seleccionar_it[5];
            echo 
$row_seleccionar_it[6];
            echo 
"<br/><br/>";
        }
}  
?>
Basicamente, realizo una consulta a la base de datos, si no tiene resultados muestro el mensaje "Actualmente no hay propiedades a la venta", sino uso el while y el fetch_row para mostrar los resultados.

El problema es que por algun motivo no muestra el ultimo resultado de la consulta, muestra uno menos que cuando hago la consulta en phpMyAdmin...

Alguien sabe por que puede ser?? Gracias :)
  #2 (permalink)  
Antiguo 02/09/2010, 12:58
 
Fecha de Ingreso: enero-2009
Ubicación: Neiva, Huila
Mensajes: 196
Antigüedad: 15 años, 3 meses
Puntos: 2
Respuesta: fetch_row no devuelve el ultimo resultado de la consulta

Uhmmm.... yo lo haria asi compadre...

<?php
include("conexion.php");

$sql_seleccionar_it= "SELECT id_item,titulo,pais,condicion,categoria,img01,esta do
FROM items
WHERE estado=1
AND condicion=1
ORDER BY categoria,pais DESC";

$c_seleccionar_it= mysql_query($sql_seleccionar_it, $miconexion);

if (mysql_num_rows($c_seleccionar_i)==0){ ?>
<p style="margin-top:30px; font-size:16px; line-height:24px">Actualmente no hay propiedades a la venta.</p>

<?php
} else {
while ($row_seleccionar_it = mysql_fetch_row($c_seleccionar_it)){
echo $row_seleccionar_it[0];
echo $row_seleccionar_it[1];
echo $row_seleccionar_it[2];
echo $row_seleccionar_it[3];
echo $row_seleccionar_it[4];
echo $row_seleccionar_it[5];
echo $row_seleccionar_it[6];
echo "<br/><br/>";
}
} ?>
  #3 (permalink)  
Antiguo 02/09/2010, 13:03
Avatar de geq
geq
 
Fecha de Ingreso: agosto-2006
Ubicación: Rosario
Mensajes: 655
Antigüedad: 17 años, 8 meses
Puntos: 22
Respuesta: fetch_row no devuelve el ultimo resultado de la consulta

Es como dice naciostars, me meto solamente para responder a tu pregunta con una explicación.

La función mysql_num_rows() carga en una variable una fila del resultado y automáticamente avanza una posición, de modo que si la ejecutamos nuevamente devolverá la próxima fila.

Al utilizarla como condición del if, la función se ejecuta para realizar la comparación. Como da verdadero (y está negado) pasa al else y ejecuta el while, pero ya se ha hecho una ejecución dentro del if, por lo tanto el while arrancará de la segunda fila.

Saludos!
  #4 (permalink)  
Antiguo 02/09/2010, 13:05
Avatar de gabi83  
Fecha de Ingreso: septiembre-2010
Ubicación: Baires
Mensajes: 7
Antigüedad: 13 años, 7 meses
Puntos: 0
Respuesta: fetch_row no devuelve el ultimo resultado de la consulta

naciostars: Funciona perfecto!!! Mil gracias :D
  #5 (permalink)  
Antiguo 02/09/2010, 13:06
 
Fecha de Ingreso: marzo-2010
Ubicación: Cali
Mensajes: 203
Antigüedad: 14 años, 1 mes
Puntos: 5
Respuesta: fetch_row no devuelve el ultimo resultado de la consulta

mira que el ultimo registro que no aparece aplique lo que pones despues del where en la consulta (estado=1, condicion = 1)tal vez puede ser por eso
  #6 (permalink)  
Antiguo 02/09/2010, 13:06
 
Fecha de Ingreso: enero-2009
Ubicación: Neiva, Huila
Mensajes: 196
Antigüedad: 15 años, 3 meses
Puntos: 2
Respuesta: fetch_row no devuelve el ultimo resultado de la consulta

ops perdon en el
if (mysql_num_rows($c_seleccionar_i)==0) me comi una t jajajaj debe ir
if (mysql_num_rows($c_seleccionar_it)==0),
y creo que geq hace referencia es a la funcion mysql_fetch_row()....

XD
  #7 (permalink)  
Antiguo 02/09/2010, 13:08
Avatar de gabi83  
Fecha de Ingreso: septiembre-2010
Ubicación: Baires
Mensajes: 7
Antigüedad: 13 años, 7 meses
Puntos: 0
Respuesta: fetch_row no devuelve el ultimo resultado de la consulta

Cita:
Iniciado por geq Ver Mensaje
Es como dice naciostars, me meto solamente para responder a tu pregunta con una explicación.

La función [URL="http://php.net/manual/es/function.mysql-num-rows.php"]mysql_num_rows()[/URL] carga en una variable una fila del resultado y automáticamente avanza una posición, de modo que si la ejecutamos nuevamente devolverá la próxima fila.

Al utilizarla como condición del if, la función se ejecuta para realizar la comparación. Como da verdadero (y está negado) pasa al else y ejecuta el while, pero ya se ha hecho una ejecución dentro del if, por lo tanto el while arrancará de la segunda fila.

Saludos!
Suponia que era algo asi por otra consulta que habia en el foro, pero no le encontraba la vuelta a donde estaba el error..

Gracias de vuelta, sobre todo por lo rapido de sus respuestas :)

Etiquetas: fetch, registro, row, ultimo
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 08:32.