PHP Tutorial With MYSQL Coding
<?php
/**
* @author Bradley Weston <admin@webod.co.uk>
*/
if(version_compare(PHP_VERSION, 5, '<'))
die("Please upgrade your PHP.");
if(!class_exists('mysqli'))
die("Please install Mysqli extention.");
class DB_Search {
protected $DB = NULL;
protected $Keywords = NULL;
protected $searchTable = NULL;
protected $searchColumns = NULL;
protected $lastSearchResult = NULL;
function __construct (){
$this->Keywords = array();
$this->searchColumns = array();
}
function setSearchTable ($Tablename){
$this->searchTable = $Tablename;
}
function addSearchColumn ($Columnname){
$this->searchColumns[] = $Columnname;
}
function DB_Connect ($Hostname, $Username, $Password, $Name, $Port = 3306){
$this->DB = new mysqli(
$Hostname,
$Username,
$Password,
$Name,
$Port
);
}
function DB_Connect_Resource (mysqli &$Connection){
$this->DB = $Connection;
}
function addKeyword ($Keyword){
$this->Keywords[] = $Keyword;
}
function parseString ($String){
array_map(array($this, 'addKeyword'), explode(' ', $String));
}
protected function query (){
//You may want to make this query more percific to get exact results first
//this is just a basic search for keywords
$Q = '';
foreach($this->searchColumns as $Column){
foreach($this->Keywords as $Keyword){
$Q .= sprintf("`%s` = '%s' ", $Column, $Keyword);
}
}
$this->lastSearchResult = $this->DB->query(sprintf(
"SELECT * FROM `%s` WHERE %s",
$this->searchTable,
$Q
));
}
function getResult (){
if(!is_a($this->lastSearchResult, 'mysqli_result')) $this->query();
$Result = $this->lastSearchResult->fetch_assoc();
if($Result == NULL) return false;
return $Result;
}
}
//USAGE
$MyGlobalDBConnection = new mysqli('localhost', 'root', 'abcd1234', 'testdb');
$Search = new DB_Search;
$Search->DB_Connect_Resource($MyGlobalDBConnection);
$Search->setSearchTable('mytesttable');
$Search->addSearchColumn('keywords');
$Search->addSearchColumn('description');
$Search->addSearchColumn('product_name');
$Search->parseString('my test string');
while(false !== ($Result = $Search->getResult())){
print_r($Result);
}
protected function query (){
//You may want to make this query more percific to get exact results first
//this is just a basic search for keywords
$Q = '';
foreach($this->searchColum ns as $Column){
foreach($this->Keywords as $Keyword){
$Q .= sprintf("`%s` = '%s' ", $Column, $Keyword);
}
}
$this->lastSearchResult = $this->DB->query(sprintf(
"SELECT * FROM `%s` WHERE %s",
$this->searchTable,
$Q
));
<?php
/**
* @author Bradley Weston <admin@webod.co.uk>
*/
if(version_compare(PHP_VERSION, 5, '<'))
die("Please upgrade your PHP.");
if(!class_exists('mysqli'))
die("Please install Mysqli extention.");
class DB_Search {
protected $DB = NULL;
protected $Keywords = NULL;
protected $searchTable = NULL;
protected $searchColumns = NULL;
protected $lastSearchResult = NULL;
function __construct (){
$this->Keywords = array();
$this->searchColumns = array();
}
function setSearchTable ($Tablename){
$this->searchTable = $Tablename;
}
function addSearchColumn ($Columnname){
$this->searchColumns[] = $Columnname;
}
function DB_Connect ($Hostname, $Username, $Password, $Name, $Port = 3306){
$this->DB = new mysqli(
$Hostname,
$Username,
$Password,
$Name,
$Port
);
}
function DB_Connect_Resource (mysqli &$Connection){
$this->DB = $Connection;
}
function addKeyword ($Keyword){
$this->Keywords[] = $Keyword;
}
function parseString ($String){
array_map(array($this, 'addKeyword'), explode(' ', $String));
}
protected function query (){
//You may want to make this query more percific to get exact results first
//this is just a basic search for keywords
$Q = '';
foreach($this->searchColumns as $Column){
foreach($this->Keywords as $Keyword){
$Q .= sprintf("`%s` = '%s' ", $Column, $Keyword);
}
}
$this->lastSearchResult = $this->DB->query(sprintf(
"SELECT * FROM `%s` WHERE %s",
$this->searchTable,
$Q
));
}
function getResult (){
if(!is_a($this->lastSearchResult, 'mysqli_result')) $this->query();
$Result = $this->lastSearchResult->fetch_assoc();
if($Result == NULL) return false;
return $Result;
}
}
//USAGE
$MyGlobalDBConnection = new mysqli('localhost', 'root', 'abcd1234', 'testdb');
$Search = new DB_Search;
$Search->DB_Connect_Resource($MyGlobalDBConnection);
$Search->setSearchTable('mytesttable');
$Search->addSearchColumn('keywords');
$Search->addSearchColumn('description');
$Search->addSearchColumn('product_name');
$Search->parseString('my test string');
while(false !== ($Result = $Search->getResult())){
print_r($Result);
}
protected function query (){
//You may want to make this query more percific to get exact results first
//this is just a basic search for keywords
$Q = '';
foreach($this->searchColum
foreach($this->Keywords as $Keyword){
$Q .= sprintf("`%s` = '%s' ", $Column, $Keyword);
}
}
$this->lastSearchResult = $this->DB->query(sprintf(
"SELECT * FROM `%s` WHERE %s",
$this->searchTable,
$Q
));
0 Comments:
Post a Comment