<?php

class db
{

    public $conn;


    function __construct($database = 'jev', $prefix = 'elegaysv')
    {
        $ip = 'ewg.dedicated.co.za';
        $user = 'Code2';
        $pass = "EWG2Cod!@#";
        $db = $database;
        $this->conn = mysqli_connect($ip, $prefix . "_" . $user, $pass, $prefix . '_' . $db);
    }

    function insert($Query = '')
    {

        $this->conn->query($Query);
        return $this->conn->insert_id;
    }
    function query($Query = '')
    {

        $this->conn->query($Query);
        return  $this->conn->query($Query);
    }

    function CheckAccount($email)
    {
    }

    function Update($tableName, $columns = [], $values = [], $where = '1', $devmode = False)
    {

        $this->table = $tableName;

        if (count($columns) == count($values)) {


            $queryDatabase[] = "UPDATE $this->table SET ";
            $i = 0;
            foreach ($columns as $colls) {

                $queryDatabaseCols[] = "`$colls` = '$values[$i]'";

                $i++;
            }
            $queryDatabase[] = implode(',', $queryDatabaseCols);

            $queryDatabase[] = " WHERE $where";

            if ($devmode == True) {

                echo implode('', $queryDatabase);
            } else {

                // echo implode('',$queryDatabase);

                return $this->conn->query(implode('', $queryDatabase));
            }
        } else {
            return "values and columns not same length";
        }
    }

    function exec_query($tableName, $columns = [], $joinType = '', $joinTable = '', $table1Column = '', $table2Column = '', $where = '1', $orderBy = "AND 1", $devMode = False)
    {

        $this->table = $tableName;

        if ($columns[0] == '*') {

            $results = "";
            $join = strlen($joinType) > 1 ? " a $joinType JOIN $joinTable b ON a.$table1Column = b.$table2Column " : '';


            $queryDatabase = "SELECT * FROM `$this->table` $join WHERE $where $orderBy";


            $results = $this->conn->query($queryDatabase);


            if (!$results)
                var_dump($results);

            if ($devMode == True) {

                echo $queryDatabase;
            } else {
                return $results;
            }
        } else {
            $queryColumns = [];

            foreach ($columns as $col) {

                $queryColumns[] = " $col ";
            }

            $queryColumns = implode(' , ', $queryColumns);

            $queryDatabase = "SELECT $queryColumns FROM `$this->table` WHERE $where $orderBy";


            $results = $this->conn->query($queryDatabase);


            if ($results->num_rows > 0) {

                if ($devMode == True) {

                    echo $queryDatabase;
                } else {
                    echo $queryDatabase;

                    // return $results;
                }
            } else {

                return "$queryDatabase";
            }
        }
    }
}
