Например, я могу вывести пользователей на определенном расстоянии, и это автоматически добавит поле расстояния. В идеале я хотел бы выполнить дополнительный запрос к другой таблице и добавить еще одно поле к выводу. Я пытаюсь объяснить это как можно лучше, поэтому, пожалуйста, потерпите, если это покажется вам странным.
Я изучил UNION и JOIN s, но не могу полностью понять концепцию.
Поэтому я могу выполнить запрос, чтобы получить пользователей на определенном расстоянии, как я уже сказал, из таблицы с именем пользователи Для простоты Я уже добавил LAT и LNG для исходных координат. :-
Код: Выделить всё
$logged_user = $_GET["logged_user"];
$sql = "SELECT
*,
(
3959 *
acos(cos(radians(52.41357)) *
cos(radians(lat)) *
cos(radians(lng) -
radians(-1.51314816)) +
sin(radians(52.41357)) *
sin(radians(lat )))
) AS distance
FROM users
HAVING distance < 10
ORDER BY distance LIMIT 0,99";
$result = mysqli_query($conn, $sql) or die("Error in Selecting " . mysqli_error($conn));
$userOnlineStatus = array();
while($row = mysqli_fetch_assoc($result)){
$userOnlineStatus[] = $row;
}
echo json_encode($userOnlineStatus);
Код: Выделить всё
[{"id":"10102","userID":"933ce029-e0b3-4e18-ad52-9e6c2019189b","name":"test","username":"test","verified":"YES","lat":"52.4194975","lng":"-1.5101260","status":"offline","distance":"0.4289222996651918"}],
Вторая таблица под названием isLike просто имеет 2 поля, from_user и to_user, from_user будет зарегистрированным_пользователем. В нынешнем виде я выполняю еще один отдельный запрос, например: -
Код: Выделить всё
$logged_user = $_GET["logged_user"];
$to_user = $_GET["to_user"];
$sql="SELECT * FROM likes WHERE to_user = '$to_user' AND logged_user = '$logged_user'";
$result = mysqli_query($conn, $sql) or die("Error in Selecting " . mysqli_error($conn));
if ($result->num_rows > 0) {
echo "true";
} else {
echo "false";
}
Поэтому я хотел бы проверить, есть ли в logged_user запись каждого из to_user из первого результата и добавьте новое поле с именем isLiked со значением true или false.
Идеальный результат: -
Код: Выделить всё
[{"id":"10102","userID":"933ce029-e0b3-4e18-ad52-9e6c2019189b","name":"b","username":"933","verified":"YES","lat":"52.4194975","lng":"-1.5101260","status":"offline","distance":"0.4289222996651918","isLiked":"true"}],
Итак, какой метод лучше, или я подхожу к этому совершенно неправильно? Я никого не прошу это делать, просто укажите мне правильное направление.
Заранее большое спасибо
Подробнее здесь: https://stackoverflow.com/questions/793 ... es-into-on