Code: Select all
$logged_user = mysqli_real_escape_string($conn, $_GET["logged_user"]);
$sql = "
SELECT
u.*,
(
3959 * acos(
cos(radians(52.41357)) *
cos(radians(u.lat)) *
cos(radians(u.lng) - radians(-1.51314816)) +
sin(radians(52.41357)) *
sin(radians(u.lat))
)
) AS distance,
CASE
WHEN l.to_user IS NOT NULL THEN 'true'
ELSE 'false'
END AS isLiked
FROM clients u
LEFT JOIN likes l
ON u.userID = l.to_user
AND l.from_user = '$logged_user'
HAVING distance < 10
ORDER BY distance
LIMIT 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);
Ich habe das Feld „hasViewed“ hinzugefügt und füge es hinzu, aber es ist das gleiche Ergebnis wie bei „isLiked“: -
Code: Select all
CASE
WHEN l.to_user IS NOT NULL THEN 'true'
ELSE 'false'
END AS hasViewed
Code: Select all
LEFT JOIN viewed l
ON u.userID = l.to_user
AND l.from_user = '$logged_user'
Code: Select all
CASE
WHEN l.to_user IS NOT NULL THEN 'true'
ELSE 'false'
END AS isLiked,
CASE
WHEN 2.to_user IS NOT NULL THEN 'true'
ELSE 'false'
END AS hasViewed
FROM clients u
LEFT JOIN likes l
ON u.userID = l.to_user
AND l.from_user = '$logged_user',
LEFT JOIN viewed 2
ON u.userID = 2.to_user
AND 2.from_user = '$logged_user'
Schwerwiegender Fehler: Nicht erfasste mysqli_sql_Exception: Sie haben einen Fehler in Ihrem
SQL-Syntax; Überprüfen Sie im Handbuch, das Ihrer MariaDB-Serverversion entspricht, auf die richtige Syntax für die Verwendung in der Nähe von „to_user IS NOT NULL THEN
'true' ELSE 'false' END AS hasViewed ...' in Zeile 19 inC:\Users\julia\OneDrive\Desktop\XAMPP\htdocs\info2.php:46 Stack Trace:
#0 C:\Users\julia\OneDrive\Desktop\XAMPP\htdocs\info2.php(46): mysqli_query(Object(mysqli), '\r\nSELECT \r\n ...') #1 {main} thrownin C:\Users\julia\OneDrive\Desktop\XAMPP\htdocs\info2.php in Zeile 46
Ist das möglich oder muss ich einen anderen Ansatz ausprobieren, der im Grunde alles ist, was ich frage.