Cita:
Iniciado por repara2 Ok, entonces haz de declarar un método por cada variable, cada método buscará y dará valor a una propiedad diferente:
Código PHP:
private function getCocheMarca($id){
$sql = "select marca from coches where coche = '$id'";
$query = mysql_query($sql);
while ($fetch = mysql_fetch_assoc($query)){
$return['marca'] = $fetch['marca'];
}
return $return;
}
private function getCocheColor($id){
$sql = "select color from coches where coche = '$id'";
$query = mysql_query($sql);
while ($fetch = mysql_fetch_assoc($query)){
$return['color'] = $fetch['color'];
}
return $return;
}
claro que esto te obliga a escribir un método por cada propiedad del objeto con su consiguiente mantenimiento. Lo normal sería un sólo método que le de valor a todas la propiedades.
Tendrías que analizar un poco por qué lo quieres así y si vale la pena. Si haces un método getCoche lo puedes invocar una vez y dar valor a todas las propiedades una sola vez. De la otra manera heces una select para cada propiedad. Según la base de datos, estructura, conexión, etc, etc, esto te puede complicar la cosas. Si intentas ahorrar o controlar los recursos de la db de esta manera no lográs nada porque aunque las selects son pequeñas tienes que conectarte cada vez, etc, etc,...
Claro que a partir de aquí ya decides tú en función a tu sistema.
Espero que sirva de algo, un saludo
Hola buenas,
Muchas gracias por tu respuesta,
Todo depende de cada caso, pero hacer una consulta a la base de datos que tenga por ejemplo SELECT * para un campo que no se va a usar y que puede ser muy grande, tampoco es correcto, yo tampoco me decanto por usar consultas independientes. Más bien, creo que optaré por hacer lo siguiente después de ver algunas opciones:
Crear un método por cada propiedad:
getCocheColor, getCocheMarca, etc
Y que cada uno de estos métodos, creen una consulta SQL, siendo el último objeto llamado getDataCoche, quien se encargue de hacer la consulta y asignar los valores a cada propiedad a través de su respectivo método.
No se si en la práctica será buena idea... lo intentaré..
Un saludo!