Добрый день!
Хочу обсудить 2 вопроса:
1. Написал код. Как его можно упростить, уменьшить кол-во запросов? А именно при выводе ФИО.
2. Как правильно реализовать поиск по ФИО покупателя. В данном запросе поиск осуществляется не корректно.
[CODE]<?if ($_POST["action"] == "id-orders") {
$filter = array();
if ($_POST["status"] != "ALL") {
$filter = array_merge($filter, array('@STATUS_ID' => $_POST["status"]));
}
if ($_POST["cancelorder"] == "yes") {
$filter = array_merge($filter, array("CANCELED" => "Y"));
}
if (!empty($_POST["FIO"])) {
$filter = array_merge($filter, array("%PROPERTY_VAL_BY_CODE_UF_PERSON" => $_POST["FIO"]));
}
$rsOrders = CSaleOrder::GetList(array('ID' => 'DESC'), $filter, false, array('iNumPage' => $_POST["nPage"], 'nPageSize' => 20), array('ID', 'DATE_INSERT'));
$rsOrders->NavStart();
//*** Список заказов ***//
while ($ar_id = $rsOrders->Fetch()) {
//Вывод фамилии
$arParams["SELECT"] = array("UF_*");
$rO = CSaleOrder::GetByID($ar_id["ID"]);
$rU = CUser::GetList($by = 'ID', $order = 'ASC', array("ID" => $rO["USER_ID"]), $arParams);
while ($aR = $rU->Fetch()){
//*****
?>
<div id="<?=$ar_id["ID"]?>" class="line_id"><b><?=$ar_id["ID"].":</b> ".date('d.m.y', strtotime($ar_id["DATE_INSERT"]))." - ".$aR["UF_PERSON"];?></div>
<?}}?>
[/CODE]