Foros del Web » Programando para Internet » PHP »

PHP Mysql ¿ como tipar, traerse datos, consultar tablas, columnas de la basededatos ?

Estas en el tema de PHP Mysql ¿ como tipar, traerse datos, consultar tablas, columnas de la basededatos ? en el foro de PHP en Foros del Web. 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 ...
  #1 (permalink)  
Antiguo 08/03/2012, 08:23
 
Fecha de Ingreso: enero-2012
Ubicación: España
Mensajes: 150
Antigüedad: 12 años, 9 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
  #2 (permalink)  
Antiguo 08/03/2012, 20:30
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años, 5 meses
Puntos: 2135
Respuesta: PHP Mysql ¿ como tipar, traerse datos, consultar tablas, columnas de la ba

Puedes pensar en usar un ORM como Doctrine que precisamente te permite optimizar todo eso y abstraer totalmente tu base de datos de tu sistema PHP.

Saludos.
  #3 (permalink)  
Antiguo 09/03/2012, 04:24
 
Fecha de Ingreso: enero-2012
Ubicación: España
Mensajes: 150
Antigüedad: 12 años, 9 meses
Puntos: 0
Respuesta: PHP Mysql ¿ como tipar, traerse datos, consultar tablas, columnas de la ba

Muchas gracias por tu respuesta,

¿ Que tal ADOdb Active Record ? ¿ hay grandes diferencias ? ¿ algun pro o contra en favor de uno u otro ?

Parece como que Doctrine es mas potente y ADOdb es mas sencillo.

Pero tambien hay muchisimos mas como "PdoMap : the PHP ORM relational mapper".

Bufff, no se por cual voy a decidirme, voy a seguir mirando.

Última edición por chemajmb; 09/03/2012 a las 05:41
  #4 (permalink)  
Antiguo 09/03/2012, 10:18
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años, 5 meses
Puntos: 2135
Respuesta: PHP Mysql ¿ como tipar, traerse datos, consultar tablas, columnas de la ba

ADOdb Active Record es diferente, si bien el principio es el mismo un ORM va mucho más allá, ya que es totalmente transparente, en lugar de usar SQL usas por ejemplo para Doctrine DQL, lo cual hace que el motor atrás del ORM sea totalmente transparente.

Saludos.

Etiquetas: columnas, consultar, formulario, mysql, registro, tabla, tablas, bases-de-datos
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 12:49.