Ver Mensaje Individual
  #1 (permalink)  
Antiguo 23/12/2013, 05:24
Avatar de guardarmicorreo
guardarmicorreo
 
Fecha de Ingreso: noviembre-2012
Ubicación: Córdoba
Mensajes: 1.153
Antigüedad: 11 años, 5 meses
Puntos: 84
filtrar objetos de mysqli_query

Según la documentación de PHP, mysqli_query

Cita:
Retorna FALSE si hay fallas. Si una consulta del tipo SELECT, SHOW, DESCRIBE o EXPLAIN es exitosa la funcion mysqli_query() retornara El objeto de la clase mysqli_result. Para otras consultas mysqli_query() retornara TRUE si tiene exito.
El problema es que en mi caso puede ocurrir que en la BD puede no haber resultados que devolver a la consulta.

En caso de que la BD esté vacía, el return de un método o una función me genera un "undefined" de la variable a retornar después de haber construido el array con los valores.

se me ha ocurrido que para que esto no ocurra puedo hacer lo siguiente

Código PHP:
Ver original
  1. class Tryclass extends Connect
  2. {
  3.     /*
  4.      * las propiedades
  5.      */
  6.      
  7.      //el resultado de un metodo
  8.      private    $tryresult;
  9.      
  10.      public function    tryfunction()
  11.      {
  12.          $sql   =   "SELECT *   FROM    trytable";
  13.          
  14.          $result_conexion   =   $this->connect($sql);
  15.          
  16.          if($result_conexion  !== FALSE  AND $result_conexion->lengths !==NULL)
  17.          {
  18.             while ( $value = mysqli_fetch_array( $result_conexion, MYSQLI_ASSOC ))
  19.             {
  20.                 $tryresult[] =   $value;
  21.             }
  22.          }
  23.          else
  24.          {
  25.             $tryresult    =   FALSE;
  26.          }
  27.        
  28.             return $tryresult;
  29.     }
  30. }

El filtro estaría en el if antes del while.

De manera que si no hay nada en la BD genere un FALSE para indicar en el front-end que no hay nada que recorrer en el foreach para el array y de esa manera que no genere tampoco un error en el foreach.

¿Existe algún otro método mejor de hacerlo?
__________________
Ayúdame a hacerlo por mi mismo.

Última edición por guardarmicorreo; 23/12/2013 a las 05:32