Foros del Web » Programando para Internet » PHP »

Diferentes consulta para una misma tabla

Estas en el tema de Diferentes consulta para una misma tabla en el foro de PHP en Foros del Web. He editado mi pregunta para un mejor entendimiento: Tengo una clase con tres métodos de lista (según requerimiento) Código PHP: public function  lista1 ( $valor ) { ...
  #1 (permalink)  
Antiguo 20/09/2021, 22:10
Avatar de bandolera  
Fecha de Ingreso: abril-2009
Mensajes: 604
Antigüedad: 12 años, 7 meses
Puntos: 7
Pregunta Diferentes consulta para una misma tabla

He editado mi pregunta para un mejor entendimiento:
Tengo una clase con tres métodos de lista (según requerimiento)

Código PHP:
public function lista1($valor) {
    try {
            
$sql "SELECT campo1, campo2, campo3, campo4, ... campoN FROM tabla WHERE CONDICION X";
            
/** codigo **/
            
$row $stmt->fetch(PDO::FETCH_ASSOC);
            
$lista = new clase();
            
$lista->set_campo1($row['campo1']);
            
$lista->set_campo2($row['campo2']);
            
$lista->set_campo3($row['campo3']);
            
$lista->set_campo4($row['campo4']);
            (...)
            
$lista->set_campoN($row['campoN']);
            return 
$lista;
        }
}

public function 
lista2($valor) {
    try {
            
$sql "SELECT campo1, campo2 FROM tabla WHERE CONDICION Y";
            
/** codigo **/
            
$row $stmt->fetch(PDO::FETCH_ASSOC);
            
$lista = new clase();
            
$lista->set_campo1($row['campo1']);
            
$lista->set_campo2($row['campo2']);
            return 
$lista;
        }
}

public function 
lista3($valor) {
    try {
            
$sql "SELECT campo1, campo4, campo5, campo8 FROM tabla WHERE CONDICION Z";
            
/** codigo **/
            
$row $stmt->fetch(PDO::FETCH_ASSOC);
            
$lista = new clase();
            
$lista->set_campo1($row['campo1']);
            
$lista->set_campo4($row['campo4']);
            
$lista->set_campo5($row['campo5']);
            
$lista->set_campo8($row['campo8']);
            return 
$lista;
        }

Las clases lista2 y lista3 muestran menos campos que lista1. Es necesario tener tres o más clases que hace casi lo mismo?
O puedo usar para todos los casos lista1 y solo trabajar con lo que necesito?
O existe otra forma de hacerlo?
__________________
Todos somos iguales. NO! a la violencia de género.

Última edición por bandolera; 21/09/2021 a las 10:53
  #2 (permalink)  
Antiguo 24/09/2021, 11:37
Avatar de eits  
Fecha de Ingreso: junio-2005
Ubicación: valladolid, yucatán
Mensajes: 1.655
Antigüedad: 16 años, 5 meses
Puntos: 88
Respuesta: Diferentes consulta para una misma tabla

puedes crear una view en tu base de datos, si no estoy mal(y si lo estoy que alguien me corrija) cuando creas una vista la primera vez que se hace la consulta se guarda el resultado en una tabla virtual, posteriormente tus consultas serán a esa tabla y puedes filtrar por campos y así es mas rápido creo que esa sería otra opción
__________________
El amor es la locura mas lucida que tiene el hombre.- Andres Henestrosa
la tristeza no existe, solo es... la ausencia de la felicidad.
  #3 (permalink)  
Antiguo 24/09/2021, 12:19
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.538
Antigüedad: 10 años
Puntos: 968
Respuesta: Diferentes consulta para una misma tabla

Podrías echar mano de una condición para modificar la consulta en lo que respecta a los campos y las condiciones, de tal forma que harías todo en un mismo método.

__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand



La zona horaria es GMT -6. Ahora son las 05:15.