Ver Mensaje Individual
  #1 (permalink)  
Antiguo 08/03/2012, 08:23
chemajmb
 
Fecha de Ingreso: enero-2012
Ubicación: España
Mensajes: 150
Antigüedad: 12 años, 3 meses
Puntos: 0
PHP Mysql ¿ como tipar, traerse datos, consultar tablas, columnas de la basededatos ?

Buenas chicos,

Estoy haciendo mi primer gran proyecto en php y tengo un problemilla con traerme datos tipados de la base de datos y con tipar los datos de los formularios. ¿ Cual es una buena forma de atacar este problema ? Me gustaria saber una opcion sencilla que pueda implementar o usar un programador normal, que esta empezando.

¿ Hay algun tipo de solucion parecida a los datasets o datatable esos de .net para php ?

Por ahora la solucion que he pensado es:

Código PHP:
public function getCategorias$where ''$select ''$orderby '' )
    {
        
$this->preparaParametros$where$select$orderby );
        
$algo $this->bd->prepare($select ' from categorias ' $where $orderby );
        
$algo->execute();
        
$cate = array();
        
$algo->bindColumn('id'$cate['id'], PDO::PARAM_INT);
        
$algo->bindColumn('fkidcategoria'$cate['fkidcategoria'], PDO::PARAM_INT);
        
$algo->bindColumn('nombre'$cate['nombre'], PDO::PARAM_STR);
        
$algo->bindColumn('url_relativa'$cate['url_relativa'], PDO::PARAM_STR);
        
$algo->bindColumn('descripcion'$cate['descripcion'], PDO::PARAM_STR);
        
$algo->bindColumn('visible'$cate['visible'], PDO::PARAM_BOOL);
        
$algo->bindColumn('activo'$cate['activo'], PDO::PARAM_BOOL);
        
$i 0;
        
$categorias = array();
        while (
$row $algo->fetch(PDO::FETCH_BOUND)) {
            foreach(
$cate as $indice => $valor)
                
$categorias[$i][$indice] = $valor ;
            
$i++;
        }
        return 
$categorias;
    } 
Como podeis ver me saca un array donde en cada posicion esta un registro de la tabla categorias con los datos tipados:

Código:
array
  0 => 
    array
      'id' => int 2
      'fkidcategoria' => int 0
      'nombre' => string 'Sección Perros' (length=21)
      'url_relativa' => string 'perros' (length=6)
      'descripcion' => string 'AquÃ* puedes encontrar todo lo relacionado con el mundo de los perros.' (length=70)
      'visible' => boolean false
      'activo' => boolean true
  1 => 
    array
      'id' => int 3
      'fkidcategoria' => int 2
      'nombre' => string 'Comida humeda' (length=13)
      'url_relativa' => string 'comida-humeda' (length=13)
      'descripcion' => null
      'visible' => boolean false
      'activo' => boolean true

...... ( hay mas pero los he borrado )

  13 => 
    array
      'id' => int 31
      'fkidcategoria' => int 2
      'nombre' => string 'asdfa' (length=5)
      'url_relativa' => string 'sasdfasd' (length=8)
      'descripcion' => string 'asdfasd' (length=7)
      'visible' => boolean true
      'activo' => boolean true
Por ahora es la solucion que he encontrado para trabajar con los datos de las tablas de las bases de datos.

Es por eso que pido ayuda, algun consejo de como arreglar este problema o una mejor solucion para trabajar con php y mysql y no tener problema con los tipos y trabajar de una forma mas comoda o mas elegante.

Tambien me gustaria saber si cuando implementamos nuestros modelos en un MVC en PHP, es mejor definir los tipos de las columnas de las tablas de la base de datos, o es mejor que el modelo consulte estos tipos de la propia base de datos.

Muchas gracias a todos.

Última edición por chemajmb; 08/03/2012 a las 11:23