Ver Mensaje Individual
  #1 (permalink)  
Antiguo 05/08/2010, 16:56
jfhernandeze
 
Fecha de Ingreso: agosto-2010
Mensajes: 1
Antigüedad: 13 años, 7 meses
Puntos: 0
Orden de ejecución de codigo en PHP

Hola,

Estoy haciendo un webapp con php.

Separe los objetos de la base de datos en objetos de PHP ej: new User();

Cuando hago una instancia de la clase: $hour=new Hour(56);
Le mando el id y lo que hace es que llama a un metodo que se llama getData que hace un query a la base de datos y llena los campos.

Funciona normalmente bien, pero al momento de borrar, hace el query de borrado antes que el select y de hecho no reconoce que hizo el delete, solo lo ejecuta.

ej:

$Hour=new Hour(10);

echo $Hour->delete();

echo $Hour->name;


Me despliega el $Hour->delete() en 0 como si el query no se hubiera realizado, tambien se manda a llamar el medoto queryDelete() en donde yo hago echo al query que se va a ajecutar y aún así no lo imprime pero si ejecuta el query.


Esto presenta una molestia porque tengo que utilizar info del objeto para validar si el usuario loggeado tiene permisos para borrarlo, y lo borra antes de que yo pueda validar eso.

El delete es:

function delete() {
$logged_user = new User(getUserId());
$response=0;
if ($logged_user->is_admin || $logged_user->username == $this->responsable) {
$response=queryDelete("hours",
"id=$this->id");
}
return $response;
}

el getData es:

function getData() {
$result = querySelect("id_assignment,hours_expended,comment, execution_date,responsable",
"hours",
"id=$this->id");

foreach ($result as $rec) {
$this->hours_expended = $rec[1];
$this->comment = $rec[2];
$this->execution_date = $rec[3];
$this->responsable = $rec[4];
$this->assignment = new Assignment($rec[0]);
}
}