/**
* Возвращает список товаров в указанной категории
* @param type $categoryId <p>id категории</p>
* @param type $page [optional] <p>Номер страницы</p>
* @return type <p>Массив с товарами</p>
*/
public static function getProductsListByCategory($categoryId, $page = 1)
{
$limit = Product::SHOW_BY_DEFAULT;
// Смещение (для запроса)
$offset = ($page - 1) * self::SHOW_BY_DEFAULT;
// Соединение с БД
$db = Db::getConnection();
// Текст запроса к БД
$sql = 'SELECT id, name, price, cy, availability, short_description, description, add_date, is_new FROM product '
. 'WHERE status = 1 AND category_id = :category_id '
. 'ORDER BY id DESC LIMIT :limit OFFSET :offset';
// Используется подготовленный запрос
$result = $db->prepare($sql);
$result->bindParam(':category_id', $categoryId, PDO::PARAM_INT);
$result->bindParam(':limit', $limit, PDO::PARAM_INT);
$result->bindParam(':offset', $offset, PDO::PARAM_INT);
// Выполнение коменды
$result->execute();
// Получение и возврат результатов
$i = 0;
$products = array();
while ($row = $result->fetch()) {
$products[$i]['id'] = $row['id'];
$products[$i]['name'] = $row['name'];
$products[$i]['price'] = $row['price'];
$products[$i]['cy'] = $row['cy'];
$products[$i]['short_description'] = $row['short_description'];
$products[$i]['description'] = $row['description'];
$products[$i]['availability'] = $row['availability'];
$products[$i]['add_date'] = $row['add_date'];
$products[$i]['is_new'] = $row['is_new'];
$i++;
}
return $products;
}
<div class="row">
<div class="col img">
<!-- img -->
</div>
<div class="col details">
<!-- name product -->
</div>
<div class="col ea-switch">
<!-- кнопка-->
<div class="act_actions_menu_icons" aria-label="Действия" role="button" onclick=""><span class="blind_label">Действия</span></div>
<!-- выпадающее меню-->
<div class="act_actions_menu">
<a href="update">редактировать</a>
<a href="delete">удалить</a>
<a href="views">скрыть</a>
</div>
</div>
</div>
<div class="row">
<div class="col img">
<!-- img -->
</div>
<div class="col details">
<!-- name product -->
</div>
<div class="col ea-switch">
<!-- кнопка-->
<div class="act_actions_menu_icons" aria-label="Действия" role="button" onclick=""><span class="blind_label">Действия</span></div>
<!-- выпадающее меню-->
<div class="act_actions_menu">
<a href="update">редактировать</a>
<a href="delete">удалить</a>
<a href="views">скрыть</a>
</div>
</div>
</div>
<!-- кнопка-->
<div class="act_actions_menu_icons" aria-label="Действия" role="button" onclick=""><span class="blind_label">Действия</span></div>
<!-- выпадающее меню-->
<div class="act_actions_menu">
<a href="update">редактировать</a>
<a href="delete">удалить</a>
<a href="views">скрыть</a>
</div>
<div class="row">
<div class="col img">
<!-- img -->
</div>
<div class="col details">
<!-- name product -->
</div>
<div class="col ea-switch">
<button onclick="myFunction()">Try it</button>
</div>
</div>
<div class="row">
<div class="col img">
<!-- img -->
</div>
<div class="col details">
<!-- name product -->
</div>
<div class="col ea-switch">
<button onclick="myFunction()">Try it</button>
</div>
</div>
<p>
и <br>
<script>
from.addEventListener('keyup', convert)
convert()
function convert() {
code.value = to.innerHTML = from.value
.replace(/\ {2,}/g, ' ') // максимум 1 пробел
.replace(/(\r\n|\r|\n){2,}/g, "<br><br>") // максимум 2 <br>
.replace(/(\r\n|\r|\n)/g, "<br>") // одиночные \n в <br>
.split('<br><br>').map(s=>`<p>${s}</p>`).join ("\n\n")
}
</script>
<form action="#" method="post" enctype="multipart/form-data">
<textarea name="description" id="from" cols="50" rows="12"></textarea>
<input type="submit" name="submit" class="btn btn-default" value="Сохранить">
</form>
</p>
<br>
, пробелами и всем прочим