class DBMain
{
public $conn;
public $table;
function __construct($database = 'pro_art_bronze_jobcards', $prefix = 'elegaysv')
{
$myfile = fopen($_SERVER['DOCUMENT_ROOT'] . "/WebBuilder/name.txt", "r") or die("Unable to open file!");
$data = fread($myfile, filesize($_SERVER['DOCUMENT_ROOT'] . "/WebBuilder/name.txt"));
$data_name = $data;
fclose($myfile);
$myfile = fopen("/home/elegaysv/quickstart_inv_files/$data_name.txt", "r") or die("Unable to open file!");
$data = fread($myfile, filesize("/home/elegaysv/quickstart_inv_files/$data_name.txt"));
$data_sniplits = explode(';', $data);
$user = explode(':', $data_sniplits[1]);
$pass = explode(':', $data_sniplits[2]);
$db = explode(':', $data_sniplits[0]);
fclose($myfile);
$ip = 'ewg.dedicated.co.za';
$user = $user[1];
$pass = $pass[1];
$db = $db[1];
$this->conn = mysqli_connect($ip, $prefix . "_" . $user, $pass, $prefix . '_' . $db);
}
function insert($Query = '')
{
$this->conn->query($Query);
return $this->conn->insert_id;
}
public function query(string $query): mysqli_result
{
$exec = $this->conn->query($query);
if (!$exec) {
throw new Exception($this->conn->error);
}
return $exec;
}
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 = "", $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";
}
}
}
function add_log($log_text, $table_name, $affected_record_id)
{
if (strlen($log_text) < 1) {
echo "PLEASE SUPPLY A LOG REASON";
} else {
$date = date('Y-m-d H:i', strtotime('+ 2 Hours'));
self::insert("INSERT INTO `logs` (`proart_accounting_users_id`,`log`,`date_time`,`table_name`,`affected_record`) VALUES ({$_SESSION['user_id']},'" . strtoupper($log_text) . "','$date','$table_name',$affected_record_id)");
}
}
}
class WebApp
{
public $db;
function __construct()
{
$db = new DBMain();
$this->db = $db;
session_start();
?>
}
function landing_page($text)
{
echo "
$text
";
}
function big_button($page_pointer = '', $text = '', $button_class = 'button')
{ ?>
}
function pageHeading($text = '', $container_div_class = 'form_container')
{
echo "$text
";
}
function form_input_empty_single($table_name, $href_action_after_completion = '', $custom_select_query = [], $input_class_name = 'input', $select_class_name = 'select', $label_class_name = 'label', $button_class = 'button', $container_div_class = 'form_container', $line_breaks = true)
{
echo "";
$results = $this->db->query("SELECT COLUMN_NAME,CHARACTER_MAXIMUM_LENGTH,IS_NULLABLE FROM INFORMATION_SCHEMA.COLUMNS WHERE table_name = '$table_name'and table_schema = '{$_SESSION['db_name']}'");
while ($row = $results->fetch_assoc()) {
$column_name = $row['COLUMN_NAME'];
$max_legth = $row['CHARACTER_MAXIMUM_LENGTH'];
$is_nullabe = $row['IS_NULLABLE'];
if ($column_name == 'record_id') {
continue;
} else {
$js_cul_names_arr[] = $column_name;
$js_nullable[] = $is_nullabe;
if (strpos($column_name, '_id')) {
$link_table_name = substr($column_name, 0, strpos($column_name, '_id'));
if ($line_breaks) {
echo "
";
}
echo "";
if ($line_breaks) {
echo "
";
}
echo "";
if ($line_breaks) {
echo "
";
}
} else {
if ($line_breaks) {
echo "
";
}
echo "";
if ($line_breaks) {
echo "
";
}
if (strpos($column_name, 'password') > 0) {
$type = 'password';
$data[$column_name] = '';
} else
if (strpos($column_name, 'email') > 0) {
$type = 'email';
} elseif (strpos($column_name, 'date') > 0) {
$type = 'date';
} else {
$type = 'text';
}
echo "";
if ($line_breaks) {
echo "
";
}
}
}
}
if ($line_breaks) {
echo "
";
}
echo "";
echo "
";
?>
}
function form_input_edit_single($table_name, $data_record_id, $href_action_after_completion = 'none', $custom_select_query = [], $input_class_name = 'input', $select_class_name = 'select', $label_class_name = 'label', $button_class = 'button', $container_div_class = 'form_container', $line_breaks = true)
{
if (strlen($data_record_id) < 1) {
echo "data received : " . $data_record_id;
} else {
echo "";
$data_result = $this->db->exec_query($table_name, ['*'], '', '', '', '', "record_id = $data_record_id");
$data = $data_result->fetch_assoc();
if ($data == NULL) {
echo "
NO DATA RECEVIED FROM THE DATABASE WITH RECORD ID OF $data_record_id
";
}
$results = $this->db->query("SELECT COLUMN_NAME,CHARACTER_MAXIMUM_LENGTH,IS_NULLABLE FROM INFORMATION_SCHEMA.COLUMNS WHERE table_name = '$table_name'and table_schema = '{$_SESSION['db_name']}'");
while ($row = $results->fetch_assoc()) {
$column_name = $row['COLUMN_NAME'];
$max_legth = $row['CHARACTER_MAXIMUM_LENGTH'];
$is_nullabe = $row['IS_NULLABLE'];
if ($column_name == 'record_id') {
continue;
} else {
$js_cul_names_arr[] = $column_name;
$js_nullable[] = $is_nullabe;
if (strpos($column_name, '_id')) {
$link_table_name = substr($column_name, 0, strpos($column_name, '_id'));
if ($line_breaks) {
echo "
";
}
echo "";
if ($line_breaks) {
echo "
";
}
echo "";
if ($line_breaks) {
echo "
";
}
echo "";
} else {
if ($line_breaks) {
echo "
";
}
echo "";
if ($line_breaks) {
echo "
";
}
if (strpos($column_name, 'password') > 0) {
$type = 'password';
$data[$column_name] = '';
} else
if (strpos($column_name, 'email') > 0) {
$type = 'email';
} elseif (strpos($column_name, 'date') > 0) {
$type = 'date';
} else {
$type = 'text';
}
echo "";
if ($line_breaks) {
echo "
";
}
}
}
}
if ($line_breaks) {
echo "
";
}
echo "";
echo "
";
?>
}
}
function find_string_in_string($heystack, $needle)
{
preg_match("/\b" . $needle . "\b/", str_replace('_', ' ', $heystack), $match, PREG_OFFSET_CAPTURE);
if (strlen($match[0][0]) > 0) {
return true;
} else {
return false;
}
}
function search_basic($table_name, $page_pointer = '', $custom_select_query = [], $container_div_class = 'form_container', $input_class_name = 'input', $select_class_name = 'select', $label_class_name = 'label', $button_class = 'button')
{
echo "";
$results = $this->db->query("SELECT COLUMN_NAME,CHARACTER_MAXIMUM_LENGTH,IS_NULLABLE FROM INFORMATION_SCHEMA.COLUMNS WHERE table_name = '$table_name' and table_schema = '{$_SESSION['db_name']}'");
while ($row = $results->fetch_assoc()) {
$column_name = $row['COLUMN_NAME'];
$max_legth = $row['CHARACTER_MAXIMUM_LENGTH'];
$is_nullabe = $row['IS_NULLABLE'];
if ($column_name == 'record_id') {
continue;
} else {
$js_cul_names_arr[] = $column_name;
$js_nullable[] = $is_nullabe;
if (strpos($column_name, '_id')) {
$link_table_name = substr($column_name, 0, strpos($column_name, '_id'));
echo "";
} else {
if (self::find_string_in_string($column_name, 'password') > 0) {
$type = 'password';
$data[$column_name] = '';
} else
if (self::find_string_in_string($column_name, 'date') > 0) {
$type = 'date';
} else {
$type = 'text';
}
echo "";
}
}
}
echo "
";
echo "";
echo "";
echo "";
echo "
";
?>
}
}
$WebApp = new WebApp();