<?php
/**
* *
* * please don't remove this comment block
* *
* * @author phptricks Team - Mohammad Anzawi
* * @author_uri https://phptricks.org
* * @uri https://github.com/anzawi/php-database-class
* * @version 5.0.0
* * @licence MIT -> https://opensource.org/licenses/MIT
* * @package PHPtricks\Orm
*
*/
namespace PHPtricks\Orm\Operations;
trait Other
{
/**
* How to Use:
*
* $db = PHPtricks\Orm\Database::connect();
* $db->table("blog")->where("vote", ">", 2)->select();
* echo $db->dataView();
*/
public function dataView()
{
// get columns count to create the table
$colsCount = count($this->firstRecord());
// if no data received so return no data found!
if ($colsCount <= 0) {
return config("pagination.no_data_found_message");
}
// to fix for counter -> on array we want to counter from columns count -1
// on object we want the records count
if (is_array($this->_results) && isset($this->_results[0])
&& is_array($this->_results[0])) {
$colsCount -= 1;
}
// get Columns name's
$colsName = array_keys((array) $this->firstRecord());
// init html <table> tag
$html = "<table border=1><thead><tr>";
/**
* create table header
* its contain table columns names
*/
foreach ($colsName as $colName) {
$html .= "<th>";
// get column name
/**
* the getColumnName() function define in (config_function.php) file
* this function replace (_) to space for example (column_name -> Column Name)
* of separate words (columnName -> Column Name)
*/
$html .= getColumnName($colName);
$html .= "</th>";
}
// end table header tag and open table body tag
$html .= "</tr></thead><tbody>";
// loop all results to create the table (tr's and td's)
foreach ((array) $this->results() as $row) {
$row
= (array) $row; // make sure the $row is array and not an object
if (count($row) > 1) {
$html .= "<tr>"; // open tr tag
// loop all columns in row to create <td>'s tags
for ($i = 0; $i <= $colsCount; $i++) {
$html .= "<td>";
$html .= $row[$colsName[$i]]; // get current data from the row
$html .= "</td>";
}
$html .= "</tr>";
} else // first method is called not select
{
$html .= "<td>";
$html .= $row[0]; // get current data from the row
$html .= "</td>";
}
}
$html .= "</tbody></table>";
return $html; // return created table
}
/**
* get first row from query results
*
* @return array
*/
public function firstRecord()
{
$results = (array) $this->_results;
if (count($results)) {
return isset($results[0]) ? $results[0] : $results;
}
return [];
}
}
|