Получить товары из базы 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-8\r\n"; $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); } ?>
Похожие решения:
Создано: 21.09.2019
Просмотров: 14

Комментарии

Написать