нужен небольшой тестовый проект на 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 года назад
Для запуска NFT коллекции надо разработать смарт-контракт на блокчейне Solana. Нужно написать смарт-контракт, который позволит конечному пользователю сайта по запросу (нажатие на кнопку + оплата указанной суммы с кошелька экосистемы Solana, то есть Sollet ...
Веб-программирование2 заявкиЗакрыт3 года назадНашей команде требуется Wordpress developer. Наш сайт https://vatcompliance.co/ создан на WordPress. И нам необходимо добавлять новые страницы на сайт, которые нам отрисовывает дизайнер. Необходима верстка и программирование.
Веб-программирование4 заявкиЗакрыт3 года назадНаписать скрипт на php на действующий сайт. Оставляйте ваш телеграм для подробностей
Веб-программирование1 исполнительЗавершен4 года назадДобрый день, Коллеги! Требуется небольшая доработка админки сайта, а так же взять проект на дальнейшую поддержку. От вас жду высокий уровень Laravel+Vue и стоимость часа ТЗ скину в овет на ...
Веб-программирование5 заявокЗакрыт3 года назадДобрый день. Требуется добавить украинский язык на сайт на движке Modx . У нас уже установлены языковые модули, есть русский и английский язык. Пишите, цену и срок.
Веб-программирование1 исполнительЗавершен3 года назадПодробности кандидатам, оставляйте ТЕЛЕГРАМ
Веб-программирование7 заявокЗакрыт3 года назад- Веб-программирование1 заявкаЗакрыт3 года назад
Необходимо сверстать дизайн, и установить cms drupal. Адаптив под мобилки. Дизайн выполнен очень просто без лишних заморочек. Дизайн сайта сделан в фигме. Часть страниц во вложении. ...
Веб-программирование8 заявокЗакрыт3 года назадДобрый день коллеги! Есть проект на laravel, нужно сделать правки по таблице 1. Сортировку делаем сначала отключенные авто, потом те что заканчивается срок, потом все остальные ...
Веб-программирование5 заявокЗакрыт3 года назад