Я довольно новичок в веб-разработке, и у меня возникает следующая проблема:
Я выполняю вызов API из моего набора текста следующим образом:
let postData = new FormData();
postData.append('action', 'getNextSongs')
postData.append('start', this.result.length)
postData.append('searchTerm', this.searchTerm)
this.data = this.http.post(this.url, postData)
this.data.subscribe(data =>{
console.log(data);
this.result = this.result.concat(data);
})
А вот код в API:
$start = $_POST["start"];
$searchTerm = $_POST["searchTerm"];
if(empty($searchTerm))
{
$sql = "SELECT * FROM songs ORDER BY nameFromPath ASC LIMIT 30 OFFSET $start";
}
else
{
$sql = "SELECT * FROM songs WHERE nameFromPath LIKE '%$searchTerm%' OR interpret LIKE '%$searchTerm%' ORDER BY nameFromPath ASC LIMIT 30 OFFSET $start";
}
$result = $conn->query($sql);
$songs = array();
if (mysqli_num_rows($result)>0) {
// output data of each row
while($row = $result->fetch_assoc()) {
array_push($songs, $row);
//echo json_encode($row);
}
} else {
echo "0 results";
}
echo json_encode($songs);
Это работает нормально, но если запрос возвращает 0 результатов (если поисковый запрос не соответствует никому), php возвращает "0 результатов". Если это произойдет, я получаю следующую ошибку в консоли разработчика в chrome:
SyntaxError: Unexpected token r in JSON at position 2 at JSON.parse (<anonymous>)
text: "0 results[]"
Моя цель - просто обработать нулевые результаты в машинописи, например, показать сообщение «больше нет результатов». Как мне этого добиться?