29/11/2011, 18:18
|
| | Fecha de Ingreso: febrero-2011
Mensajes: 18
Antigüedad: 13 años, 10 meses Puntos: 9 | |
armar objetos dinamicamente Hola y saludos a todos, los cuento, estoy trabajanado con una clase de php para mysql fantastica, no tiene nombre como tal "Database Abstraction class 1606" la encontre en classphp.org
funcioan asi:
require_once('../clases/crdb.php');
//aki me conecto normalmente a mysql
$db=new crdb($conexion_db);
$db->debug=false; //si se coloca en true, muestra los querys hechos por la clase crdb
$query = $db->users(); //users es el nombre de la tabla
$total_registros = count($query);
//luego bueno hay muchos metodos para obtener los resultados, aki un ejemplo
$query = $db->users->limit(0,20)->desc_order_by()->fields('alias','nombre');
$i=0;
foreach($query as $v){
$codigo[$i] = $v->cod;
$nombre[$i] = $v->nombre;
$apellido[$i] = $v->apellido;
$alias[$i] = $v->alias;
$estatus[$i] = $v->estatus;
$nivel[$i] = $v->nivel;
$boleta[$i] = $v->boletines;
$i++;
}
asi asi asi... muy bueno porque nunca lanzo nungun sql molestos (SELECT * FROM)
en si el problema biene a la hora de hacer filtros, la clase tine un metodo para condiciones "WHERE"
NOTA: soy nuevo trabajando con php y con objetos
$query = $db->users->nombre('danny'); //where nombre = 'danny'
$query = $db->users->nombre('!=','danny'); //where nombre != 'danny'
$query = $db->users->nombre('like'.'%danny'); //where nombre like '%danny'
lo que yo quisiera es hacer algo como almar los objetos para fabricar mi query dinamicamente;
algo como esto:
query = $db->users;
if(isset($_POST['filtro_nombre'])){
query .= ->nombre('like'.'%danny')
}
if(isset($_POST['filtro_apellido])){
query .= ->apellido('like'.'%alfonzo')
}
y que el resultado sea:
query = $db->users->nombre('like'.'%danny')->apellido('like'.'%alfonzo');
pero los objetos no los puedo manipular como si fueran cadenas
alguno de ustedes tiene idea de como hacer aca?
GRACIAS
Última edición por GatorV; 30/11/2011 a las 09:40 |