Получить товары из базы OpenCart

Решение, как получить товары из базы данных для CMS OpenCart

Рассмотрим на примере вывода товаров в форму в select

  1. /catalog/controller/form/form.php
    <?php
    class ControllerFormForm extends Controller {
    	public function index() {
    		$this->document->setTitle('Запрос в техническую поддержку');
    		$this->document->setDescription($this->config->get('config_meta_description'));
    		$this->data['heading_title'] = $this->config->get('config_title');
    		if (file_exists(DIR_TEMPLATE . $this->config->get('config_template') . '/template/form/form.tpl')) {
    			$this->template = $this->config->get('config_template') . '/template/form/form.tpl';
    			$this->data['template'] = $this->config->get('config_template');
    		} else {
    			$this->template = 'test_market/template/form/form.tpl';
    		}
    
    		$this->children = array(
    			'common/column_left',
    			'common/column_right',
    			'common/content_top',
    			'common/content_bottom',
    			'common/footer',
    			'common/header'
    		);
    		$this->response->setOutput($this->render());
    	}
    }
    ?>
  2. /catalog/view/theme/test_market/template/form/form.tpl
    <?php
    echo $header; ?>
    <?php echo $column_left; ?>
    <?php echo $column_right; ?>
          <div id="content">
    <?php
    // ваш адрес где находится, хостится ваша база данных
    $sdd_db_host='localhost';
    // Имя базы данных с которой вы хотите работать, так как их может быть множество
    $sdd_db_name='*****';
    // логин доступ к базе данных
    $sdd_db_user='*****';
    // пароль доступа к базе данных
    $sdd_db_pass='*******';
    // устанавливаем связь с сервером
    @mysqli_connect($sdd_db_host,$sdd_db_user,$sdd_db_pass);
    // переключаемся на нужную нам базу данных
    @mysql_select_db($sdd_db_name);
    // в какой кодировке получать данные от клиента
    @mysql_query('set character_set_client="utf8"');
    // в какой кодировке получать данные от БД для вывода клиенту
    @mysql_query('set character_set_results="utf8"');
    // кодировка в которой будут посылаться служебные команды для сервера
    @mysql_query('set collation_connection="utf8_general_ci"');
    ?>
    
    
    <div class="support">
    	<h2>Информация об устройстве</h2>
    	<form  method="POST" name="category" enctype="multipart/form-data" action="/system/form.php">
    	<select name="category" onchange="document.forms['category'].submit()">
    	<?php
    	if (empty($_GET['category'])){echo '<option  size="5">Выберите устройство</option>';}else {}
    	$result=mysql_query('SELECT * FROM `oc_category` WHERE top = "1"');
    	while($row=mysql_fetch_array($result))
    	{ // выводим данные
    	if ($_GET['category'] == $row['category_id']) { $selected = "selected";}else { $selected = "";}
    	$result12=mysql_query('SELECT * FROM `oc_category_description` WHERE category_id = "'.$row['category_id'].'" ');
    	$row12 = mysql_fetch_array($result12);
    	echo '<option value="'.$row['category_id'].'" size="25" '.$selected.'>'.$row12['name'].'</option> ';
    	}
    	?>
    	</select>
    	</form>
    	<form  method="POST" name="parent" enctype="multipart/form-data" action="/system/form.php">
    	<?php
    	if (empty($_GET['category'])){}else {echo '<input type="hidden" name="category" value="'.$_GET['category'].'">';}
    	if (empty($_GET['category'])){$result13=mysql_query('SELECT * FROM `oc_category` WHERE parent_id = "130" ');}else {$result13=mysql_query('SELECT * FROM `oc_category` WHERE parent_id = "'.$_GET['category'].'"');}
    	$num_ans=mysql_fetch_row ($result13);
    	$data = mysql_num_rows($result13);
    	if ($data==0){
    	}elseif ($data==2){} else{
    	echo '</br><select name="parent"  onchange="this.form.submit()">';
    	while($row13=mysql_fetch_array($result13))
    	{ // выводим данные
    	if ($_GET['parent'] == $row13['category_id']) { $selectedd = "selected";}else { $selectedd = "";}
    	$result14=mysql_query('SELECT * FROM `oc_category_description` WHERE category_id = "'.$row13['category_id'].'" ');
    	$row14 = mysql_fetch_array($result14);
    	echo '<option value="'.$row14['category_id'].'" size="25" '.$selectedd.'>'.$row14['name'].'</option> ';
    	}
    	}
    	?>
    	</select>
    	</form>
    	<br>
    	<form  name="product" method="POST"  action="/system/form.php">
    
    	<?php
    	if(empty($_GET['category'])){
    	$result2=mysql_query('SELECT * FROM `oc_product_to_category` ');
    	}elseif(empty($_GET['parent'])){
    	$result2=mysql_query('SELECT * FROM `oc_product_to_category` WHERE category_id = "'.$_GET['category'].'" ');
    	}else{
    	$result2=mysql_query('SELECT * FROM `oc_product_to_category` WHERE category_id = "'.$_GET['parent'].'" ');
    	}
    	if (empty($_GET['category']))
    	{}else {
    
    	echo '<select name="product" >';
    	while($row2=mysql_fetch_array($result2)){ // выводим данные
    	$result3 = mysql_query('SELECT * FROM `oc_product_description` WHERE product_id= "'.$row2['product_id'].'" ');
    	$row3 = mysql_fetch_array($result3);
    	echo '<option value="'.$row3['name'].'" size="25">'.$row3['name'].'</option> ';
    	}
    	echo ' </select><br>';
    	}
    	if (empty($_GET['category']))
    	{}else {
    	$result15=mysql_query('SELECT * FROM `oc_category_description` WHERE category_id = "'.$_GET['category'].'" ');
    	$row15 = mysql_fetch_array($result15);
    	echo '<input type="hidden" name="category" value="'.$_GET['category'].'">';
    	echo '<input type="hidden" name="categoryname" value="'.$row15['name'].'">';
    	}
    	if (empty($_GET['parent']))
    	{}else {
    	$result16=mysql_query('SELECT * FROM `oc_category_description` WHERE category_id = "'.$_GET['parent'].'" ');
    	$row16 = mysql_fetch_array($result16);
    	echo '<input type="hidden" name="parent" value="'.$_GET['parent'].'">';
    	echo '<input type="hidden" name="parentname" value="'.$row16['name'].'">';
    	}
    	 ?>
    	 	<input type="text" name="serialnumber" value="" placeholder="Серийный номер"><br>
    	 	<textarea name="usermessage" cols="30" rows="10" placeholder="Подробно опишите дефект или неисправность, при запросе прошивки также подробно опишите симптомы неисправности"></textarea><br>
    		<h2>Личные данные</h2>
    	 	<input type="text" name="username" value="" placeholder="Ваше имя"><br>
    	 	<input type="text" name="useremail" value="" placeholder="Ваш E-mail"><br>
    	 	<input type="text" name="userphone" value="" placeholder="Ваш телефон"><br>
    	 	<input type="text" name="usercity" value="" placeholder="Город"><br>
    		<input type="submit" value="Отправить" class="button">
    	</form>
    </div>
    
               <?php echo $content_top; ?>
               <h1 style="display: none;"><?php echo $heading_title; ?></h1>
               <?php echo $content_bottom; ?>
         </div>
    <?php echo $footer; ?>
  3. /system/form.php
    <?php
    $category = $_POST['category'];
    $parent = $_POST['parent'];
    if(($_POST['category']>= "0")  && ($_POST['parent']== ""))
    {
     $backurl="http://site.ru/index.php?route=form/form&category=$category";
     print "<script language='Javascript'><!--
    function reload() {location = "$backurl"}; setTimeout('reload()', 0);
    //--></script>
    ";
    }else {
     $backurl="http://site.ru/index.php?route=form/form&category=$category&parent=$parent";
     print "<script language='Javascript'><!--
    function reload() {location = "$backurl"}; setTimeout('reload()', 0);
    //--></script>
    ";
    }
    
    if(($_POST['category']>= "0")  && ($_POST['product']== ""))
    {
    
    }
    else
    {
    	$to= "mail@site.com";
    	$subject = "Техническая поддержка";
    	$headers= "Content-type: text/html; charset=UTF-8rn";
    	$message = '<p><b>Категория:</b> '.$_POST['categoryname'].'/'.$_POST['parentname'].'</p>
    			<p><b>Продукт:</b> '.$_POST['product'].'</p>
    			<p><b>Серийный номер:</b> '.$_POST['serialnumber'].'</p>
    			<p><b>Вопрос:</b> '.$_POST['usermessage'].'</p>
    			<hr>
    			<p><b>Имя:</b>'.$_POST['username'].'</p>
    			<p><b>E-mail:</b> '.$_POST['useremail'].'</p>
    			<p><b>Телефон:</b> '.$_POST['userphone'].'</p>
    			<p><b>Город:</b> '.$_POST['usercity'].'</p>';
    	mail($to, $subject, $message, $headers);
    }
    ?>
Продолжая использовать веб- сайт beta-code.ru, вы даете согласие на обработку файлов cookie, пользовательских данных (сведения о местоположении; тип и версия ОС; тип и версия Браузера; тип устройства и разрешение его экрана; источник откуда пришел на сайт пользователь; с какого сайта или по какой рекламе; язык ОС и Браузера; какие страницы открывает и на какие кнопки нажимает пользователь; ip-адрес) в целях функционирования сайта, проведения ретаргетинга и проведения статистических исследований и обзоров. Если вы не хотите, чтобы указанные данные обрабатывались, покиньте сайт.
Принять