$iBlockId = 10;
$sectionId = 53;
$filter = [
'IBLOCK_ID' => $iBlockId,
'ACTIVE' => 'Y',
'IBLOCK_SECTION_ID' => $sectionId
];
$select = [
'ID', 'IBLOCK_ID', 'countElements'
];
$runtime = [
'elements' => [
'data_type' =>"Bitrix\Iblock\ElementTable",
'reference' => [
'=this.IBLOCK_ID' => 'ref.IBLOCK_ID',
'=this.ID' => 'ref.IBLOCK_SECTION_ID',
'=this.ACTIVE' => 'ref.ACTIVE',
],
//'join_type' => "LEFT"
],
'countElements' => [
'data_type' => 'integer',
'expression' => ['count(%s)', 'elements.ID']
]
];
$res = Bitrix\Iblock\SectionTable::getList(
[
'filter' => $filter,
'select' => $select,
'runtime' => $runtime
]
);
while($section = $res->fetch())
{
\Bitrix\Main\Diag\Debug::dump($section, $section['ID']);
}
global $USER_FIELD_MANAGER;
$value = $USER_FIELD_MANAGER->GetUserFieldValue('CRM_DEAL', 'UF_CRM_1446923077',1585568);
// 1585568 - ID элемента
Class 'ZipArchive' not found
вроде модуль ZipArchive автоматически идёт
exit('Ошибка подключения к базе данных!');
дважды глупость. Пользователю сайта не интересно читать, что у тебя сломалось - база данных или деньги на пиво кончились. Как программисту, тебе эта бессмысленная фраза тем более бесполезна, она ничего не говорит о том, ЧТО КОНКРЕТНО сломалось, чтобы ты мог исправитьif ($numRows > 0) {
бессмысленный кусок кодаwhile ($row = $result->fetch_assoc()) {
заменяется на $result->fetch_all(MYSQLI_ASSOC)
$this->connect()
коннектимся каждый раз, чтобы выполнить запрос, серьёзно?class Handler extends Dbh
ВООБЩЕ непонятно зачемclass Dbh
{
public $conn;
public function __construct($config)
{
mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$this->conn = new mysqli(...$config);
$this->conn->set_charset('utf8mb4');
}
public function preparedQuery($sql, $params, $types = '')
{
$types = $types ?: str_repeat('s', count($params));
$stmt = $this->conn->prepare($sql);
$stmt->bind_param($types, ...$params);
$stmt->execute();
return $stmt;
}
public function selectResult($sql, $params, $types = '')
{
if (!$params) {
return $this->conn->query($sql);
}
return $this->preparedQuery($sql, $params, $types)->get_result();
}
public function selectAll($sql, $params = [], $types = '')
{
return $this->selectResult($sql, $params, $types)->fetch_all(MYSQLI_ASSOC);
}
public function selectAssoc($sql, $params = [], $types = '')
{
return $this->selectResult($sql, $params, $types)->fetch_assoc();
}
public function selectRow($sql, $params = [], $types = '')
{
return $this->selectResult($sql, $params, $types)->fetch_row();
}
public function selectCell($sql, $params = [], $types = '')
{
$row = $this->selectRow($sql, $params, $types);
return $row ? $row[0] : false;
}
}
position.php
class Position
{
protected $dbh;
public function __construct(Dbh $dbh)
{
$this->dbh = $dbh;
}
// Получаем все позциии из БД и возвращаем их в массиве $output если записей больше нуля
public function getAllPositions()
{
return $this->dbh->selectAll('SELECT * FROM positions');
}
protected function addPosition($content)
{
$count = $this->dbh->selectCell('SELECT count(*) FROM positions');
if ($count < 10) {
$this->dbh->preparedQuery("INSERT INTO positions (content) VALUES (?)", [$content]);
}
}
protected function deletePosition($id)
{
$this->dbh->preparedQuery("DELETE FROM positions WHERE id = ?", [$id]);
}
//Поиск позиций в БД по столбцу content
protected function searchPosition($content)
{
$content = "%$content%";
return $this->dbh->selectAll('SELECT * FROM positions WHERE content LIKE ?',[$content]);
}
}
return [
'db' => [
'host' => '127.0.0.1',
'username' => '',
'password' => '',
'dbname' => '',
'port' => 3306,
],
];
$config = require 'config.php';
$dbh = new Dbh($config['db']);
$position = new Position($dbh);
switch ($_GET['action']) {
case 'getpositions':
$output = $position->getAllPositions();
echo json_encode($output);
break;
case 'addposition':
$content = $_GET['content'];
$position->addPosition($content);
break;
case 'getsearchpositions':
$content = $_GET['content'];
$output = $position->searchPosition($content);
echo json_encode($output);
break;
case 'deleteposition':
$id = $_GET['id'];
$position->deletePosition($id);
break;
default:
header("HTTP/1.0 400 Bad Request");
}
это вообще реально?
foreach ($arr as $item) {
$id = $item['id_product_attribute'];
if (!isset($result[$id])) {
$result[$id] = $item;
} else {
$result[$id]['attribute_name'] .= ', '.$item['attribute_name'];
}
}
laravel нежели на CMS- битрикс?
прикрутить личный кабинет пользователя, с графиками + vue
1) Удобная система ( админ панель) с быстрой тех поддержкой
2) Много функционала из коробки
3) Удобно интегрировать с CRM битрикс
масштабировать проект очень сложно