Magento Create custom Database Table with Module

Today, We want to share with you Magento Create custom Database Table.
In this post we will show you create Magento custom modules, hear for How to create table in a custom module in magento we will give you demo and example for implement.In this post, we will learn about Create a module with custom database table in Magento 2 with an example.

Magento Create custom Database Table with Module

There are the Following The simple About Magento Create custom Database Table with Module Full Information With Example and source code.here simple company = Namespace as well as = defines. Here I have step by step explained all The main files required module structure module with custom database table in Magento.

/app/code/local///

	Block/
	controllers/
	etc/
	Model/
	Mysql4/
	/
	sql/
	_setup/

Activate Stock_exchange

/app/etc/stock_exchanges/_.xml

<?xml version=“1.0”?>
<config>
<stock_exchanges>
<[company]_[Stock_exchange]>
<active>true</active>
<codePool>local</codePool>
</[company]_[Stock_exchange]>
</stock_exchanges>
</config>

Make Controller

/app/code/local///controllers/IndexController.php

<?php
class __IndexController extends Mage_Core_Controller_Front_Action
{
public function indexAction()
{
$this->loadLayout();
$this->renderLayout();
}
}

Make Configuration XML

Magento Create custom Database Table Config files

/app/code/local///etc/config.xml

<?xml version=“1.0”?>
<config>
<stock_exchanges>
<[company]_[Stock_exchange]>
<version>0.1.0</version>
</[company]_[Stock_exchange]>
</stock_exchanges>
<frontend>
<routers>
<[stock_exchange]>
<use>standard</use>
<args>
<stock_exchange>[company]_[Stock_exchange]</stock_exchange>
<frontName>[stock_exchange]</frontName>
</args>
</[stock_exchange]>
</routers>
<layout>
<updates>
<[stock_exchange]>
<file>[stock_exchange].xml</file>
</[stock_exchange]>
</updates>
</layout>
</frontend>
<global>
<models>
<[stock_exchange]>
<class>[company]_[Stock_exchange]_Model</class>
<resourceModel>[stock_exchange]_mysql4</resourceModel>
</[stock_exchange]>
<[stock_exchange]_mysql4>
<class>[company]_[Stock_exchange]_Model_Mysql4</class>
<entities>
<[stock_exchange]>
<table>[stock_exchange]</table>
</[stock_exchange]>
</entities>
</[stock_exchange]_mysql4>
</models>
<resources>
<[stock_exchange]_setup>
<setup>
<stock_exchange>[company]_[Stock_exchange]</stock_exchange>
</setup>
<connection>
<use>core_setup</use>
</connection>
</[stock_exchange]_setup>
<[stock_exchange]_write>
<connection>
<use>core_write</use>
</connection>
</[stock_exchange]_write>
<[stock_exchange]_read>
<connection>
<use>core_read</use>
</connection>
</[stock_exchange]_read>
</resources>
<blocks>
<[stock_exchange]>
<class>[company]_[Stock_exchange]_Block</class>
</[stock_exchange]>
</blocks>
<helpers>
<[stock_exchange]>
<class>[company]_[Stock_exchange]_Helper</class>
</[stock_exchange]>
</helpers>
</global>
</config>

Make Helper

/app/code/local///Helper/Data.php

<?php
class __Helper_Data extends Mage_Core_Helper_Abstract
{
}

Make Models

/app/code/local///Model/.php

<?php
class <company>_<Stock_exchange>_Model_<Stock_exchange> extends Mage_Core_Model_Abstract
{
public function _construct()
{
parent::_construct();
$this->_init(‘<stock_exchange>/<stock_exchange>’);

/app/code/local///Model/Mysql4/.php

<?php
class <company>_<Stock_exchange>_Model_Mysql4_<Stock_exchange> extends Mage_Core_Model_Mysql4_Abstract
{
public function _construct()
{
$this->_init(‘<stock_exchange>/<stock_exchange>’, ‘<stock_exchange>_id’);
}
}

/app/code/local///Model/Mysql4//Collection.php

<?php
class <company>_<Stock_exchange>_Model_Mysql4_<Stock_exchange>_Collection extends Mage_Core_Model_Mysql4_Collection_Abstract
{
public function _construct()
{
//parent::__construct();
$this->_init(‘<stock_exchange>/<stock_exchange>’);
}
}

Magento Create custom Database Table Tutorials

SQL Setup

/app/code/local///sql/_setup/mysql4-install-0.1.0.php

simple Magento – Create Custom Module with Custom Database Table Step by step

<?php
$installer = $this;
$installer->startSetup();
$installer->run(“
— DROP TABLE IF EXISTS {$this->getTable(‘<stock_exchange>’)};
CREATE TABLE {$this->getTable(‘<stock_exchange>’)} (
`<stock_exchange>_id` int(11) unsigned NOT NULL auto_increment,
`title` varchar(255) NOT NULL default ”,
`content` text NOT NULL default ”,
`status` smallint(6) NOT NULL default ‘0’,
`created_time` datetime NULL,
`update_time` datetime NULL,
PRIMARY KEY (`<stock_exchange>_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
“);
$installer->endSetup();

Template Design

/app/design/frontend///layout/.xml

/layout/.xml

<?xml version=“1.0”?>
<layout version=“0.1.0”>
<[stock_exchange]_index_index>
<reference name=“content”>
<block type=“[stock_exchange]/[stock_exchange]” name=“[stock_exchange]” />
</reference>
</[stock_exchange]_index_index>
</layout>

/app/design/frontend///layout/.xml

<?xml version=“1.0”?>
<layout version=“0.1.0”>
<[stock_exchange]_index_index>
<reference name=“content”>
<block type=“core/template” name=“[stock_exchange]” template=“[stock_exchange]/[stock_exchange].phtml” />
</reference>
</[stock_exchange]_index_index>
</layout>

/app/design/frontend///template//.phtml

<h4><?php echo $this->__(‘Stock_exchange List’) ?></h4>
<?php
/*
$infoStock = Mage::getModel(‘<stock_exchange>/<stock_exchange>’)->load(1);
echo $infoStock->get<Stock_exchange>Id();
echo $infoStock->getTitle();
echo $infoStock->getContent();
echo $infoStock->getStatus();
*/

/*
$i = 0;
$datacollect = Mage::getModel(‘<stock_exchange>/<stock_exchange>’)->getCollection();
$datacollect->setPageSize(5);
$datacollect->setCurPage(2);
$size = $datacollect->getSize();
$cnt = count($datacollect);
foreach ($datacollect as $item) {
$i = $i+1;
$item->setTitle($i);
echo $item->getTitle();
}
$datacollect->walk(‘save’);
*/

/*
$dataObj = Mage::getModel(‘<stock_exchange>/<stock_exchange>’)->load(1);
$dataObj->setTitle(‘Welcome To Pakainfo.com’);
$dataObj->save();
*/

Directory Additions

/app/code/local///

	Block/
	Adminhtml/
	/
	Edit/
	Tab/
	controllers/
	Adminhtml/
	etc/
	Helper/
	Model/
	Mysql4/
	/
	sql/
	_setup/

Blocks

/app/code/local///Block/Adminhtml/.php

<?php
class <company>_<Stock_exchange>_Block_Adminhtml_<Stock_exchange> extends Mage_Adminhtml_Block_Widget_Grid_Container
{
public function __construct()
{
$this->_controller = ‘adminhtml_<stock_exchange>’;
$this->_blockGroup = ‘<stock_exchange>’;
$this->_headerText = Mage::helper(‘<stock_exchange>’)->__(‘Product Manager’);
$this->_addButtonLabel = Mage::helper(‘<stock_exchange>’)->__(‘Add Item’);
parent::__construct();
}
}

/app/code/local///Block/Adminhtml//Edit.php

<?php
class <company>_<Stock_exchange>_Block_Adminhtml_<Stock_exchange>_Edit extends Mage_Adminhtml_Block_Widget_Form_Container
{
public function __construct()
{
parent::__construct();
$this->_objectId = ‘id’;
$this->_blockGroup = ‘<stock_exchange>’;
$this->_controller = ‘adminhtml_<stock_exchange>’;
$this->_updateButton(‘save’, ‘label’, Mage::helper(‘<stock_exchange>’)->__(‘Save Item’));
$this->_updateButton(‘delete’, ‘label’, Mage::helper(‘<stock_exchange>’)->__(‘Delete Item’));
}
public function getHeaderText()
{
if( Mage::registry(‘<stock_exchange>_data’) && Mage::registry(‘<stock_exchange>_data’)->getId() ) {
return Mage::helper(‘<stock_exchange>’)->__(“Edit Item ‘%s'”, $this->htmlEscape(Mage::registry(‘<stock_exchange>_data’)->getTitle()));
} else {
return Mage::helper(‘<stock_exchange>’)->__(‘Add Item’);
}
}
}

/app/code/local///Block/Adminhtml//Grid.php

<?php
class <company>_<Stock_exchange>_Block_Adminhtml_<Stock_exchange>_Grid extends Mage_Adminhtml_Block_Widget_Grid
{
public function __construct()
{
parent::__construct();
$this->setId(‘<stock_exchange>Grid’);
// This is the primary key of the database
$this->setDefaultSort(‘<stock_exchange>_id’);
$this->setDefaultDir(‘ASC’);
$this->setSaveParametersInSession(true);
}
protected function _prepareCollection()
{
$datacollect = Mage::getModel(‘<stock_exchange>/<stock_exchange>’)->getCollection();
$this->setCollection($datacollect);
return parent::_prepareCollection();
}
protected function _prepareColumns()
{
$this->addColumn(‘<stock_exchange>_id’, array(
‘header’ => Mage::helper(‘<stock_exchange>’)->__(‘ID’),
‘align’ =>‘right’,
‘width’ => ’50px’,
‘index’ => ‘<stock_exchange>_id’,
));
$this->addColumn(‘title’, array(
‘header’ => Mage::helper(‘<stock_exchange>’)->__(‘Title’),
‘align’ =>‘left’,
‘index’ => ‘title’,
));
/*
$this->addColumn(‘content’, array(
‘header’ => Mage::helper(‘<stock_exchange>’)->__(‘Product Content’),
‘width’ => ‘150px’,
‘index’ => ‘content’,
));
*/
$this->addColumn(‘created_time’, array(
‘header’ => Mage::helper(‘<stock_exchange>’)->__(‘Creation Time’),
‘align’ => ‘left’,
‘width’ => ‘120px’,
‘type’ => ‘date’,
‘default’ => ‘–‘,
‘index’ => ‘created_time’,
));
$this->addColumn(‘update_time’, array(
‘header’ => Mage::helper(‘<stock_exchange>’)->__(‘Update Time’),
‘align’ => ‘left’,
‘width’ => ‘120px’,
‘type’ => ‘date’,
‘default’ => ‘–‘,
‘index’ => ‘update_time’,
));
$this->addColumn(‘status’, array(
‘header’ => Mage::helper(‘<stock_exchange>’)->__(‘Status’),
‘align’ => ‘left’,
‘width’ => ’80px’,
‘index’ => ‘status’,
‘type’ => ‘options’,
‘options’ => array(
1 => ‘Active’,
0 => ‘Inactive’,
),
));
return parent::_prepareColumns();
}
public function getRowUrl($row)
{
return $this->getUrl(‘*/*/edit’, array(‘id’ => $row->getId()));
}
}

/app/code/local///Block/Adminhtml//Edit/Form.php

<?php
class <company>_<Stock_exchange>_Block_Adminhtml_<Stock_exchange>_Edit_Tab_Form extends Mage_Adminhtml_Block_Widget_Form
{
protected function _prepareForm()
{
$form = new Varien_Data_Form();
$this->setForm($form);
$fieldset = $form->addFieldset(‘<stock_exchange>_form’, array(‘legend’=>Mage::helper(‘<stock_exchange>’)->__(‘Product information’)));
$fieldset->addField(‘title’, ‘text’, array(
‘label’ => Mage::helper(‘<stock_exchange>’)->__(‘Title’),
‘class’ => ‘required-entry’,
‘required’ => true,
‘name’ => ‘title’,
));
$fieldset->addField(‘status’, ‘select’, array(
‘label’ => Mage::helper(‘<stock_exchange>’)->__(‘Status’),
‘name’ => ‘status’,
‘values’ => array(
array(
‘value’ => 1,
‘label’ => Mage::helper(‘<stock_exchange>’)->__(‘Active’),
),
array(
‘value’ => 0,
‘label’ => Mage::helper(‘<stock_exchange>’)->__(‘Inactive’),
),
),
));
$fieldset->addField(‘content’, ‘editor’, array(
‘name’ => ‘content’,
‘label’ => Mage::helper(‘<stock_exchange>’)->__(‘Content’),
‘title’ => Mage::helper(‘<stock_exchange>’)->__(‘Content’),
‘style’ => ‘width:98%; height:400px;’,
‘wysiwyg’ => false,
‘required’ => true,
));
if ( Mage::getSingleton(‘adminhtml/session’)->get<Stock_exchange>Data() )
{
$form->setValues(Mage::getSingleton(‘adminhtml/session’)->get<Stock_exchange>Data());
Mage::getSingleton(‘adminhtml/session’)->set<Stock_exchange>Data(null);
} elseif ( Mage::registry(‘<stock_exchange>_data’) ) {
$form->setValues(Mage::registry(‘<stock_exchange>_data’)->getData());
}
return parent::_prepareForm();
}
}

/app/code/local///Block/Adminhtml//Edit/Tabs.php

<?php
class <company>_<Stock_exchange>_Block_Adminhtml_<Stock_exchange>_Edit_Tabs extends Mage_Adminhtml_Block_Widget_Tabs
{
public function __construct()
{
parent::__construct();
$this->setId(‘<stock_exchange>_tabs’);
$this->setDestElementId(‘edit_form’);
$this->setTitle(Mage::helper(‘<stock_exchange>’)->__(‘News Information’));
}
protected function _beforeToHtml()
{
$this->addTab(‘form_section’, array(
‘label’ => Mage::helper(‘<stock_exchange>’)->__(‘Product Information’),
‘title’ => Mage::helper(‘<stock_exchange>’)->__(‘Product Information’),
‘content’ => $this->getLayout()->createBlock(‘<stock_exchange>/adminhtml_<stock_exchange>_edit_tab_form’)->toHtml(),
));
return parent::_beforeToHtml();
}
}

/app/code/local///Block/Adminhtml//Edit/Tab/Form.php

<?php
class <company>_<Stock_exchange>_Block_Adminhtml_<Stock_exchange>_Edit_Tab_Form extends Mage_Adminhtml_Block_Widget_Form
{
protected function _prepareForm()
{
$form = new Varien_Data_Form();
$this->setForm($form);
$fieldset = $form->addFieldset(‘<stock_exchange>_form’, array(‘legend’=>Mage::helper(‘<stock_exchange>’)->__(‘Product information’)));
$fieldset->addField(‘title’, ‘text’, array(
‘label’ => Mage::helper(‘<stock_exchange>’)->__(‘Title’),
‘class’ => ‘required-entry’,
‘required’ => true,
‘name’ => ‘title’,
));
$fieldset->addField(‘status’, ‘select’, array(
‘label’ => Mage::helper(‘<stock_exchange>’)->__(‘Status’),
‘name’ => ‘status’,
‘values’ => array(
array(
‘value’ => 1,
‘label’ => Mage::helper(‘<stock_exchange>’)->__(‘Active’),
),
array(
‘value’ => 0,
‘label’ => Mage::helper(‘<stock_exchange>’)->__(‘Inactive’),
),
),
));
$fieldset->addField(‘content’, ‘editor’, array(
‘name’ => ‘content’,
‘label’ => Mage::helper(‘<stock_exchange>’)->__(‘Content’),
‘title’ => Mage::helper(‘<stock_exchange>’)->__(‘Content’),
‘style’ => ‘width:98%; height:400px;’,
‘wysiwyg’ => false,
‘required’ => true,
));
if ( Mage::getSingleton(‘adminhtml/session’)->get<Stock_exchange>Data() )
{
$form->setValues(Mage::getSingleton(‘adminhtml/session’)->get<Stock_exchange>Data());
Mage::getSingleton(‘adminhtml/session’)->set<Stock_exchange>Data(null);
} elseif ( Mage::registry(‘<stock_exchange>_data’) ) {
$form->setValues(Mage::registry(‘<stock_exchange>_data’)->getData());
}
return parent::_prepareForm();
}
}

Controller

simple Magento controller for Magento Create custom Database Table.

/app/code/local///controllers/Adminhtml/Controller.php

<?php
class <company>_<Stock_exchange>_Adminhtml_<Stock_exchange>Controller extends Mage_Adminhtml_Controller_Action
{
protected function _initAction()
{
$this->loadLayout()
->_setActiveMenu(‘<stock_exchange>/items’)
->_addBreadcrumb(Mage::helper(‘adminhtml’)->__(‘Items Manager’), Mage::helper(‘adminhtml’)->__(‘Product Manager’));
return $this;
}
public function indexAction() {
$this->_initAction();
$this->_addContent($this->getLayout()->createBlock(‘<stock_exchange>/adminhtml_<stock_exchange>’));
$this->renderLayout();
}
public function editAction()
{
$<stock_exchange>Id = $this->getRequest()->getParam(‘id’);
$<stock_exchange>Model = Mage::getModel(‘<stock_exchange>/<stock_exchange>’)->load($<stock_exchange>Id);
if ($<stock_exchange>Model->getId() || $<stock_exchange>Id == 0) {
Mage::register(‘<stock_exchange>_data’, $<stock_exchange>Model);
$this->loadLayout();
$this->_setActiveMenu(‘<stock_exchange>/items’);
$this->_addBreadcrumb(Mage::helper(‘adminhtml’)->__(‘Product Manager’), Mage::helper(‘adminhtml’)->__(‘Product Manager’));
$this->_addBreadcrumb(Mage::helper(‘adminhtml’)->__(‘Product News’), Mage::helper(‘adminhtml’)->__(‘Product News’));
$this->getLayout()->getBlock(‘head’)->setCanLoadExtJs(true);
$this->_addContent($this->getLayout()->createBlock(‘<stock_exchange>/adminhtml_<stock_exchange>_edit’))
->_addLeft($this->getLayout()->createBlock(‘<stock_exchange>/adminhtml_<stock_exchange>_edit_tabs’));
$this->renderLayout();
} else {
Mage::getSingleton(‘adminhtml/session’)->addError(Mage::helper(‘<stock_exchange>’)->__(‘Product does not exist’));
$this->_redirect(‘*/*/’);
}
}
public function newAction()
{
$this->_forward(‘edit’);
}
public function saveAction()
{
if ( $this->getRequest()->getPost() ) {
try {
$postData = $this->getRequest()->getPost();
$<stock_exchange>Model = Mage::getModel(‘<stock_exchange>/<stock_exchange>’);
$<stock_exchange>Model->setId($this->getRequest()->getParam(‘id’))
->setTitle($postData[‘title’])
->setContent($postData[‘content’])
->setStatus($postData[‘status’])
->save();
Mage::getSingleton(‘adminhtml/session’)->addSuccess(Mage::helper(‘adminhtml’)->__(‘Product was successfully saved’));
Mage::getSingleton(‘adminhtml/session’)->set<Stock_exchange>Data(false);
$this->_redirect(‘*/*/’);
return;
} catch (Exception $e) {
Mage::getSingleton(‘adminhtml/session’)->addError($e->getMessage());
Mage::getSingleton(‘adminhtml/session’)->set<Stock_exchange>Data($this->getRequest()->getPost());
$this->_redirect(‘*/*/edit’, array(‘id’ => $this->getRequest()->getParam(‘id’)));
return;
}
}
$this->_redirect(‘*/*/’);
}
public function deleteAction()
{
if( $this->getRequest()->getParam(‘id’) > 0 ) {
try {
$<stock_exchange>Model = Mage::getModel(‘<stock_exchange>/<stock_exchange>’);
$<stock_exchange>Model->setId($this->getRequest()->getParam(‘id’))
->delete();
Mage::getSingleton(‘adminhtml/session’)->addSuccess(Mage::helper(‘adminhtml’)->__(‘Product was successfully deleted’));
$this->_redirect(‘*/*/’);
} catch (Exception $e) {
Mage::getSingleton(‘adminhtml/session’)->addError($e->getMessage());
$this->_redirect(‘*/*/edit’, array(‘id’ => $this->getRequest()->getParam(‘id’)));
}
}
$this->_redirect(‘*/*/’);
}

public function gridAction()
{
$this->loadLayout();
$this->getResponse()->setBody(
$this->getLayout()->createBlock(‘importedit/adminhtml_<stock_exchange>_grid’)->toHtml()
);
}
}

XML Configuration Changes

/app/code/local///etc/config.xml

<?xml version=“1.0”?>
<config>
<stock_exchanges>
<[company]_[Stock_exchange]>
<version>0.1.0</version>
</[company]_[Stock_exchange]>
</stock_exchanges>
<frontend>
<routers>
<[stock_exchange]>
<use>standard</use>
<args>
<stock_exchange>[company]_[Stock_exchange]</stock_exchange>
<frontName>[stock_exchange]</frontName>
</args>
</[stock_exchange]>
</routers>
<layout>
<updates>
<[stock_exchange]>
<file>[stock_exchange].xml</file>
</[stock_exchange]>
</updates>
</layout>
</frontend>
<admin>
<routers>
<[stock_exchange]>
<use>admin</use>
<args>
<stock_exchange>[company]_[Stock_exchange]</stock_exchange>
<frontName>[stock_exchange]</frontName>
</args>
</[stock_exchange]>
</routers>
</admin>
<adminhtml>
<menu>
<[stock_exchange] stock_exchange=“[stock_exchange]”>
<title>Magento Create custom Database Table -[Stock_exchange]</title>
<sort_order>71</sort_order>
<children>
<items stock_exchange=“[stock_exchange]”>
<title>Manage Items</title>
<sort_order>0</sort_order>
<action>[stock_exchange]/adminhtml_[stock_exchange]</action>
</items>
</children>
</[stock_exchange]>
</menu>
<acl>
<resources>
<all>
<title>Allow Everything</title>
</all>
<admin>
<children>
<[stock_exchange]>
<title>[Stock_exchange] Stock_exchange</title>
<sort_order>200</sort_order>
</[stock_exchange]>
</children>
</admin>
</resources>
</acl>
<layout>
<updates>
<[stock_exchange]>
<file>[stock_exchange].xml</file>
</[stock_exchange]>
</updates>
</layout>
</adminhtml>
<global>
<models>
<[stock_exchange]>
<class>[company]_[Stock_exchange]_Model</class>
<resourceModel>[stock_exchange]_mysql4</resourceModel>
</[stock_exchange]>
<[stock_exchange]_mysql4>
<class>[company]_[Stock_exchange]_Model_Mysql4</class>
<entities>
<[stock_exchange]>
<table>[stock_exchange]</table>
</[stock_exchange]>
</entities>
</[stock_exchange]_mysql4>
</models>
<resources>
<[stock_exchange]_setup>
<setup>
<stock_exchange>[company]_[Stock_exchange]</stock_exchange>
</setup>
<connection>
<use>core_setup</use>
</connection>
</[stock_exchange]_setup>
<[stock_exchange]_write>
<connection>
<use>core_write</use>
</connection>
</[stock_exchange]_write>
<[stock_exchange]_read>
<connection>
<use>core_read</use>
</connection>
</[stock_exchange]_read>
</resources>
<blocks>
<[stock_exchange]>
<class>[company]_[Stock_exchange]_Block</class>
</[stock_exchange]>
</blocks>
<helpers>
<[stock_exchange]>
<class>[company]_[Stock_exchange]_Helper</class>
</[stock_exchange]>
</helpers>
</global>
</config>

XML Layout

/app/design/adminhtml///layout/.xml

Last step for the Magento Create custom Database with Table full Source code.

<?xml version=“1.0”?>
<layout version=“0.1.0”>
<[stock_exchange]_adminhtml_[stock_exchange]_index>
<reference name=“content”>
<block type=“[stock_exchange]/adminhtml_[stock_exchange]” name=“[stock_exchange]” />
</reference>
</[stock_exchange]_adminhtml_[stock_exchange]_index>
</layout>

Angular 6 CRUD Operations Application Tutorials

Read :

Summary

You can also read about AngularJS, ASP.NET, VueJs, PHP.

I hope you get an idea about Magento – Create Custom Module with Custom Database Table.
I would like to have feedback on my Pakainfo.com blog.
Your valuable feedback, question, or comments about this article are always welcome.
If you enjoyed and liked this post, don’t forget to share.


Related FAQ

Here are some more FAQ related to this Article:

  1.   Disable button after click html in jQuery - prevent multiple clicks
  2.   AngularJS Live Search Box using PHP MySqli
  3.   How to Send Text Messages SMS Gateway - PHP SMS API
  4.   PHP artisan dump-autoload Fix "class not found"
  5.   PHP Autocomplete Input tags with Dynamic Data using jquery Ajax
  6.   PHP String Cleanup Functions with Example
  7.   PHP Filter Multidimensional Array Examples
  8.   Top 5 Free Dynamic ZIP Generation Libraries in PHP
  9.   CSS Glowing Border Blue Input Focus Highlights
  10.   Woocommerce Get product tags in array
Tags:, , , ,