This method allows you to concatenate joins for the final SQL statement.
/** * Function to join object with another object. * * @access public * @param string $objectName Object Name * @param string $key Key for a join from primary object * @param string $joinType SQL join type: LEFT, RIGHT, INNER, OUTER * * @return dbObject */ private function join($objectName, $key = null, $joinType = 'LEFT') { $joinObj = new $objectName(); if (!$key) { $key = $objectName . "id"; } $joinStr = MysqliDb::$prefix . $this->dbTable . ".{$key} = " . MysqliDb::$prefix . "{$joinObj->dbTable}.{$joinObj->primaryKey}"; $this->db->join($joinObj->dbTable, $joinStr, $joinType); return $this; }
/** * Function to join object with another object. * * @access public * @param string $objectName Object Name * @param string $key Key for a join from primary object * @param string $joinType SQL join type: LEFT, RIGHT, INNER, OUTER * @param string $primaryKey SQL join On Second primaryKey * * @return dbObject */ private function join($objectName, $key = null, $joinType = 'LEFT', $primaryKey = null) { $joinObj = new $objectName(); if (!$key) { $key = $objectName . "id"; } if (!$primaryKey) { $primaryKey = MysqliDb::$prefix . $joinObj->dbTable . "." . $joinObj->primaryKey; } if (!strchr($key, '.')) { $joinStr = MysqliDb::$prefix . $this->dbTable . ".{$key} = " . $primaryKey; } else { $joinStr = MysqliDb::$prefix . "{$key} = " . $primaryKey; } $this->db->join($joinObj->dbTable, $joinStr, $joinType); return $this; }
function getCupones($cliente_id, $numero) { $db = new MysqliDb(); $db->join("clientes c", "c.cliente_id=u.cliente_id", "LEFT"); if ($cliente_id != -1) { $db->where('u.cliente_id', $cliente_id); } if ($numero != -1) { $db->where('c.numero', $numero); } $result = $db->get('cupones u', null, 'u.numero, u.fecha, c.mail'); echo json_encode($result); }
/** * @descr Obtiene los productos. En caso de enviar un usuario_id != -1, se traerán todos los carritos. Solo usar esta opción cuando se aplica en la parte de administración */ function getCarritos($usuario_id) { $db = new MysqliDb(); if ($usuario_id != -1) { $db->where('c.usuario_id', $usuario_id); } $db->join("usuarios u", "u.usuario_id=c.usuario_id", "LEFT"); $results = $db->get('carritos c', null, 'c.carrito_id, c.status, c.total, c.fecha, c.usuario_id, u.nombre, u.apellido'); foreach ($results as $key => $row) { $db = new MysqliDb(); $db->where('carrito_id', $row['carrito_id']); $db->join("productos p", "p.producto_id=c.producto_id", "LEFT"); $productos = $db->get('carrito_detalles c', null, 'c.carrito_detalle_id, c.carrito_id, c.producto_id, p.nombre, c.cantidad, c.en_oferta, c.precio_unitario'); $results[$key]['productos'] = $productos; } echo json_encode($results); }
/** * @description Retorna las donaciones, en caso de ser la consulta de un usuario, solo trae las del usuario * @param $usuario_id */ function getDonaciones($usuario_id) { $db = new MysqliDb(); $where = ''; if ($usuario_id != -1) { $where = 'c.donador_id in (select usuario_id from proyectos p1 where p1.proyecto_id = p.proyecto_id)'; } $results = $db->rawQuery('donaciones c', null, 'c.donacion_id, c.status, c.total, c.fecha, c.usuario_id, u.nombre, u.apellido'); foreach ($results as $key => $row) { $db = new MysqliDb(); $db->where('donacion_id', $row['donacion_id']); $db->join("proyectos p", "p.proyecto_id=c.proyecto_id", "LEFT"); $proyectos = $db->get('donacion_detalles c', null, 'c.donacion_detalle_id, c.donacion_id, c.proyecto_id, p.nombre, c.cantidad, c.en_oferta, c.precio_unitario'); $results[$key]['proyectos'] = $proyectos; } echo json_encode($results); }
function login($mail, $password, $sucursal_id) { $db = new MysqliDb(); $db->where("mail", $mail); $db->join("direcciones d", "d.usuario_id=u.usuario_id", "LEFT"); $results = $db->get("usuarios u"); global $jwt_enabled; if ($db->count > 0) { if ($results[0]['social_login'] !== 0) { echo json_encode(-1); exit; } $hash = $results[0]['password']; if (password_verify($password, $hash)) { $results[0]['password'] = ''; // Si la seguridad se encuentra habilitada, retorna el token y el usuario sin password //$results[0]->sucursal = $sucursal_id; //-1 == web //Comente la linea de arriba xq me saltaba error. if ($jwt_enabled) { echo json_encode(array('token' => createToken($results[0]), 'user' => $results[0])); } else { echo json_encode(array('token' => '', 'user' => $results[0])); } addLogin($results[0]['usuario_id'], $sucursal_id, 1); } else { addLogin($results[0]['usuario_id'], $sucursal_id, 0); echo json_encode(-1); } } else { echo json_encode(-1); } }