Необходимо разработать небольшой тестовый проект на Terraform для AWS. Проект должен включать создание и настройку облачной инфраструктуры. Ожидается качественная реализация и документация по развертыванию.
Запрос в MySQL
Добавил свойство функции $multiple, для приёма запроса в виде массива запросов. Сделал запрос на сообщения от друзей и запрос на глобальные сообщения (Get the user feed) в MySQL. Всё работает. Но мне ещё нужно было исключить из ленты заблокированного пользователя. Изменил запрос (Get the user feed 2). Теперь заблокированного пользователя нет в ленте, но теперь мне не нравится как выглядит последний запрос. Может кто нибудь сможет его поправить или изменить?
public function unique_multidim_array($array, $key) {
$temp_array = array();
$i = 0;
$key_array = array();
foreach($array as $val) {
if (!in_array($val[$key], $key_array)) {
$key_array[$i] = $val[$key];
$temp_array[$i] = $val;
}
$i++;
}
return $temp_array;
}
function getMessages($query, $type, $typeVal, $multiple = false) {
// QUERY: Holds the query string
// TYPE: [loadFeed, loadProfile, loadHashtags]
// TYPEVAL: Values for the JS functions
global $LNG, $CONF;
// Run the query
$result_array = array();
if(!$multiple){
$result = $this->db->query($query);
}else{
foreach ($query as $q) {
$result_array[] = $this->db->query($q);
}
}
// Set the result into an array
$rows = array();
if(!$multiple){
while($row = $result->fetch_assoc()) {
$rows[] = $row;
}
}else{
foreach ($result_array as $key => $value) {
while($row = $value->fetch_assoc()) {
$rows[] = $row;
}
}
}
$rows = $this->unique_multidim_array($rows, 'id');
// Get the user feed
$multiple = false;
if(empty($this->pages)) {
$multiple = true;
$query = array();
//запрос на глобальные сообщения с друзьями
$query[] = sprintf("(SELECT *
FROM `messages` USE INDEX(`news_feed`)
LEFT JOIN `users` ON `users`.`idu` = `messages`.`uid` AND `users`.`suspended` = 0
WHERE (`messages`.`uid` IN (%s)
AND `messages`.`page` = 0
AND `messages`.`group` = 0
AND `messages`.`public` != 0 %s%s)
ORDER BY `messages`.`id` DESC LIMIT %s)
UNION (SELECT *
FROM messages, users
WHERE users.suspended = 0
AND messages.group = 0
AND messages.public = 1
AND messages.public
AND messages.uid = users.idu %s %s
ORDER BY messages.id
DESC LIMIT %s)
ORDER BY `id` DESC LIMIT %s", $this->friendsList, $start, $from, ($this->per_page + 1), $start, $from, ($this->per_page + 1), ($this->per_page + 1));
}
$result = $this->getMessages($query, 'loadFeed', '\''.saniscape($value).'\'', $multiple);
return $result;
}
// Get the user feed // исключает из ленты заблокированного пользователя
$multiple = false;
if(empty($this->pages)) {
$multiple = true;
$query = array();
//запрос на глобальные сообщения с друзьями
$query[] = sprintf("(SELECT *,
IFNULL((SELECT GROUP_CONCAT(uid) from blocked WHERE `blocked`.`by`= %s), 0) AS blist
FROM `messages` USE INDEX(`news_feed`)
LEFT JOIN `users` ON `users`.`idu` = `messages`.`uid` AND `users`.`suspended` = 0
WHERE (`messages`.`uid` IN (%s)
AND `messages`.`page` = 0
AND `messages`.`group` = 0
AND `messages`.`public` != 0 %s%s)
ORDER BY `messages`.`id` DESC LIMIT %s)
UNION (SELECT *,
IFNULL((SELECT GROUP_CONCAT(uid) from blocked WHERE `blocked`.`by`= %s), 0) AS blist
FROM messages, users
WHERE users.suspended = 0
AND messages.group = 0
AND messages.public = 1
AND messages.public
AND messages.uid = users.idu %s %s
HAVING users.idu not in(blist)
ORDER BY messages.id
DESC LIMIT %s)
ORDER BY `id` DESC LIMIT %s", $this->id, $this->friendsList, $start, $from, ($this->per_page + 1), $this->id, $start, $from, ($this->per_page + 1), ($this->per_page + 1));
}
Заявки фрилансеров
Похожие заказы
- Веб-программирование1 заявкаЗакрыт4 года назад
Необходимо разработать смарт-контракт на блокчейне Solana для запуска NFT коллекции. Контракт должен обеспечивать генерацию NFT-токенов из рандомного набора графических элементов по запросу пользователя с учетом подключения кошелька и функции mint по установленной цене.
Веб-программирование2 заявкиЗакрыт4 года назадНаша команда ищет Wordpress developer для добавления новых страниц на сайт, созданный на WordPress. Необходимы навыки верстки и программирования. Дизайны страниц предоставляются командой дизайнеров.
Веб-программирование4 заявкиЗакрыт4 года назадТребуется разработать скрипт на PHP для действующего сайта. Ищем специалиста с опытом в веб-программировании, который сможет реализовать задачу. Основное внимание уделяется функциональности и интеграции скрипта в существующий проект.
Веб-программирование1 исполнительЗавершен4 года назадНеобходима доработка админки сайта на Laravel и Vue, а также организация дальнейшей поддержки проекта. Ожидается высокий уровень знаний в данных технологиях. Укажите стоимость часа работы. Техническое задание будет предоставлено после отклика.
Веб-программирование5 заявокЗакрыт4 года назадНеобходимо добавить украинский язык на сайт, работающий на движке Modx. Языковые модули для русского и английского языка уже установлены. Ожидается указание цены и сроков выполнения.
Веб-программирование1 исполнительЗавершен3 года назадНеобходимо создать фронтенд-приложение на VUE, используя готовое REST API. Подробности о проекте будут предоставлены подходящим кандидатам. Ожидается знание VUE и опыт работы с API.
Веб-программирование7 заявокЗакрыт4 года назадТребуется технический специалист для настройки передачи UTM меток с платформы Tilda в систему AmoCRM. Необходимы знания веб-программирования и опыт работы с данными инструментами.
Веб-программирование1 заявкаЗакрыт4 года назадТребуется разработка сайта консалтинговых услуг с использованием CMS Drupal. Необходимо сверстать простой адаптивный дизайн, основанный на макетах из Figma. Сайт включает главную страницу, услуги, контакты, новости, документацию и форум. Регистрация компаний и ограниченный доступ к некоторым страницам для зарегистрированных пользователей. Панель администратора для управления доступами.
Веб-программирование8 заявокЗакрыт4 года назадТребуются правки для проекта на Laravel. Необходимо реализовать сортировку авто в таблице, изменить стили кнопок и фонов в зависимости от состояния авто. Сортировка должна учитывать отключенные авто, авто с истекающим сроком и остальные. Ожидается информация о стоимости и сроках выполнения.
Веб-программирование5 заявокЗакрыт4 года назад