join() public method

This method allows you to concatenate joins for the final SQL statement.
public join ( string $joinTable, string $joinCondition, string $joinType = '' ) : MysqliDb
$joinTable string The name of the table.
$joinCondition string the condition.
$joinType string 'LEFT', 'INNER' etc.
return MysqliDb
 /**
  * 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;
 }
示例#2
0
文件: dbObject.php 项目: Basheir/AFix
 /**
  * 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;
 }
示例#3
0
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);
}
示例#6
0
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);
    }
}