Foros del Web » Programando para Internet » PHP » Frameworks y PHP orientado a objetos »

Problema con classe para seleccioanr registros

Estas en el tema de Problema con classe para seleccioanr registros en el foro de Frameworks y PHP orientado a objetos en Foros del Web. Buenas tardes ando aqui un poco encodigado traigo un problema y ps quisiera ver si me pueden orientar en esto de las clases debido a ...
  #1 (permalink)  
Antiguo 15/10/2008, 14:42
 
Fecha de Ingreso: octubre-2008
Mensajes: 3
Antigüedad: 15 años, 6 meses
Puntos: 0
Problema con classe para seleccioanr registros

Buenas tardes ando aqui un poco encodigado traigo un problema y ps quisiera ver si me pueden orientar en esto de las clases debido a que estoy empezando con esto y me atore aqui.
lo que pasa es que estoy haciendo una seleccion de registros el select que estoy haciendo me tra como resultado 1300 registros pero la bronca es que se inibe el explorador esto pasa si lo hago con la calse sin la case me lo hace sin problemas
y el problema en cuestion es que tengoq ue resolver esto por medio de una clase.....
aqu les pongo el codigo que me esta haciendo esto
-------------------------------------------------------------
<?php
/**
* Nombredel archivo : CompararRegistros.php
* -Descripcion : Sincronizacion del catalogo

*/
include ('ClaseMySql.php');

class CompararRegistros
{
/**
* Nombre de Metodo : seleccionarRegistros
* -Parametros : $catalogoID
* -Return : Excepcion, si ocurre
* -Descripcion : Metodo Para Seleccionar los registros del catalogo Seleccionado.
*/

public function seleccionarRegistros($catalogoID)
{
try
{
$obj = new ClaseMySql;
$obj->query("SELECT * FROM tblproductos WHERE catalogoID='$catalogoID'");
$rs=$obj->obtenFila();
return $rs;
}
catch(Exception $e)
{
echo "Escepcion",$e;
}

}
}// Fin class CompararRegistros
?>


y de esta forma lo implemento
------------------------------------------------------------
<?
INCLUDE("CompararRegistros.php");

$obj = new CompararRegistros;

$i=0;
while($rs=$obj->seleccionarRegistros(1))
{
echo "<pre>";
print_r($rs[$i]);
echo "</pre>";
$i++;
}
?>


tambien lo intente de esta forma
------------------------------
<?
include("CompararRegistros.php");

$obj = new CompararRegistros;
$rs=$obj->seleccionarRegistros(1);
$i=0;
while( $rs )
{
echo "<pre>";
print_r($rs[$i]);
echo "</pre>";
$i++;
}
?>


espero tengan el teimpo y la paciencia para orientarme jajajaj
Saludos...
  #2 (permalink)  
Antiguo 16/10/2008, 01:47
 
Fecha de Ingreso: octubre-2004
Mensajes: 2.627
Antigüedad: 19 años, 6 meses
Puntos: 48
Respuesta: Problema con classe para seleccioanr registros

El problema es que la condicion que pones en el while siempre es cierta, por eso no sale del bucle.

En el primer caso siempre ejecutas la consulta, que a no ser que desde otro sitio estes modificando la tabla, siempre va a devolver el mismo resultado, distinto de falso.

En el segundo caso, $rs siempre tiene el mismo valor, y dentro del while no lo modificas, asi que si inicialmente no es fals, nunca lo es y por eso nunca sale del bucle.

La condicion del while debe ser algo que se modifique segun se ejecute el bucle.

Como no pones que devuelve obtenFila(), solo puedo suponer (por como lo usas) que devuelve un array con todas las filas devueltas por la consulta.

Siendo un array, cambiaria el while por un foreach (o un for usando la longitud del array):
Código PHP:
<?
include("CompararRegistros.php");

$obj = new CompararRegistros;
$rs=$obj->seleccionarRegistros(1);
foreach( 
$rs as $reg )
{
echo 
"<pre>";
print_r($reg);
echo 
"</pre>";
$i++;
}
?>
  #3 (permalink)  
Antiguo 18/10/2008, 12:09
Avatar de chechelopez  
Fecha de Ingreso: mayo-2007
Mensajes: 18
Antigüedad: 16 años, 11 meses
Puntos: 0
Respuesta: Problema con classe para seleccioanr registros

mmm con for seria algo así

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

$obj = new CompararRegistros;
$rs=$obj->seleccionarRegistros(1);
for(
$i=0$i<count($rs); $i++)
{
echo 
"<pre>";
print_r($rs[$i]);
echo 
"</pre>";
}
?>
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 02:16.