Кто нибудь объяснит что хотел разработчик - MySQL
Формулировка задачи:
Я не могу понять что эта функция делает (разбираюсь в чужом "движке"), а еще я не понимаю что за прифексы M и S около название полей.... Просто что за бред зачем их так перечислять объясните мнеее
public function Friends_Updates($uid, $lastid, $lastmid, $lastsid) {
$moresharequery = "";
if ($lastsid) {
$moresharequery = " and S.share_id > '" . $lastsid . "' ";
}
/* More Button*/
$morequery="";
if($lastid) {
//build up the query
$morequery=" and M.msg_id<'".$lastid."' ";
}
if($lastmid) {
//build up the query
$morequery=" and M.msg_id>'".$lastmid."' ";
}
$data = null;
/*More Button End*/
$v=mysqli_query($this->db,"SELECT share_id FROM message_share") or die(mysqli_error($this->db));
if(mysqli_num_rows($v)) {
//The query to select friend messages
$query=mysqli_query($this->db,"(SELECT DISTINCT
M.msg_id,
M.uid_fk,
M.shared_uid_fk,
M.shared_msg_id_fk,
M.last_shared_uid_fk,
M.message,
M.hide_show_comment,
M.hide_show_share,
M.postPrivacy,
M.lovedPost,
M.hashTag,
M.share_count,
S.created,
M.like_count,
M.comment_count,
U.username,
M.uploads,
S.uid_fk AS share_uid,
S.ouid_fk AS share_ouid
FROM
messages M
JOIN message_share S ON M.msg_id = S.msg_id_fk
JOIN friends F ON F.friend_two = S.uid_fk OR S.uid_fk = '$uid'
JOIN users U ON S.ouid_fk = U.uid
WHERE
F.friend_one='$uid'
AND U.uid != F.friend_one
AND U.status='1'
AND F.role='fri'
$moresharequery
)
UNION
(SELECT DISTINCT
M.msg_id,
M.uid_fk,
M.shared_uid_fk,
M.shared_msg_id_fk,
M.last_shared_uid_fk,
M.message,
M.hide_show_comment,
M.postPrivacy,
M.hide_show_share,
M.lovedPost,
M.hashTag,
M.share_count,
M.created,
M.like_count,
M.comment_count,
U.username,
M.uploads,
'0' AS share_uid,
'0' AS share_ouid
FROM
messages M
JOIN users U ON M.uid_fk = U.uid
JOIN friends F ON M.uid_fk = F.friend_two
WHERE
F.friend_one='$uid'
AND U.status='1'
$morequery ) order by created desc limit " .$this->perpage) or die(mysqli_error($this->db));
} else {
$query = mysqli_query($this->db,"SELECT DISTINCT M.msg_id, M.uid_fk,M.shared_uid_fk,M.shared_msg_id_fk,M.last_shared_uid_fk, M.message,M.hide_show_comment,M.postPrivacy,M.hide_show_share,M.lovedPost,M.hashTag,M.like_count,M.comment_count, M.created,U.username,M.uploads FROM messages M, users U, friends F WHERE U.status='1' AND M.uid_fk=U.uid AND M.uid_fk = F.friend_two AND F.friend_one='$uid' $morequery order by M.msg_id desc limit " .$this->perpage) or die(mysqli_error($this->db));
}
//Store the result
while($row=mysqli_fetch_array($query)) {
// Store the result into array
$data[]=$row;
}
if(!empty($data)) {
// Store the result into array
return $data;
}
}Решение задачи: «Кто нибудь объяснит что хотел разработчик»
textual
Листинг программы
SELECT T1.id AS Id1, T2.id AS Id2
Объяснение кода листинга программы
T1- это таблица или представление данных, которое содержит столбецid.T2- это таблица или представление данных, которое также содержит столбецid.Id1- это псевдоним для столбцаidиз таблицы или представления данныхT1.Id2- это псевдоним для столбцаidиз таблицы или представления данныхT2.- SELECT - это оператор, который используется для выбора данных из одной или нескольких таблиц или представлений.
- AS - это оператор, который используется для создания псевдонима для столбца или выражения в запросе.
- Id1, Id2 - это псевдонимы, которые используются в запросе для обозначения выбранных столбцов.
- В данном случае, запрос выбирает столбцы
idиз таблиц или представленийT1иT2. - Запрос возвращает два столбца:
Id1иId2, которые являются псевдонимами для столбцовidиз таблиц или представленийT1иT2соответственно. - Ваш запрос не содержит оператора
FROM, поэтому мы не можем точно сказать, откуда берутся данные. Вероятно, это опечатка или пропущенная часть запроса. - Ваш запрос также не содержит оператора
WHERE, который обычно используется для фильтрации данных. - Ваш запрос возвращает только столбцы
Id1иId2, поэтому мы не знаем, какие другие данные могут быть включены в результат. - Ваш запрос не содержит оператора
GROUP BYилиHAVING, поэтому мы не можем сказать, как данные будут сгруппированы или отфильтрованы. - Ваш запрос не содержит оператора
ORDER BY, поэтому мы не можем сказать, как данные будут отсортированы. - Ваш запрос не содержит оператора
LIMIT, поэтому мы не можем сказать, сколько строк будет возвращено. - Ваш запрос не содержит оператора
INTO, поэтому мы не знаем, куда будут сохранены результаты. - Ваш запрос не содержит оператора
JOIN, поэтому мы не можем сказать, как таблицы будут объединены. - Ваш запрос не содержит оператора
SUBQUERY, поэтому мы не можем сказать, есть ли вложенные запросы. - Ваш запрос не содержит оператора
DISTINCT, поэтому мы не можем сказать, какие данные будут уникальными. - Ваш запрос не содержит оператора
UNION, поэтому мы не можем сказать, какие другие запросы могут быть объединены с этим.