У меня странная проблема, и я не знаю, откуда эта проблема. У меня есть mySQL база данных с именем weather-app
с таблицей cities
в этой таблице. У меня есть список всех городов США (столбцы city
и population
).
Позвольте мне выполнить запрос непосредственно на моем SQL дБ:
SELECT * FROM cities WHERE city LIKE 'boston' ORDER BY population DESC
В результате я получаю
1840000455 Boston MA 4637537
1840013902 Boston GA 1315
1840024721 Boston VA 674
1840026471 Boston PA 236
1840009492 Boston IN 130
1840026800 Boston KY 89
Тот же запрос непосредственно через мой PHP дает мне следующее:
1840013902 Boston GA 1315
1840024721 Boston VA 674
1840026471 Boston PA 236
1840009492 Boston IN 130
1840026800 Boston KY 89
Делает это для каждого запроса и только для первой строки.
Мой код:
index. html
<body>
<?php require_once("config/db.php")?>
<h2>Weather</h2>
<input type="text" name="city-search" class="city-search" id="city-search">
<ul class="result">
</ul>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script>
<script src="scripts/app.js"></script>
</body>
app. js
search.addEventListener("keyup", e =>{
let city = search.value;
if(city != ""){
loadCities(city);
}
});
const loadCities = (city) => {
$.ajax({
url: "config/fetch-cities.php",
method: "GET",
data: {
query: city
},
success: function(data){
results.innerHTML = data;
}
});
}
fetch-city. php
<?php
require("db.php");
if(isset($_GET["query"])){
$search = $_GET["query"];
$results = $conn->prepare("SELECT * FROM cities WHERE city LIKE '{$search}%'
ORDER BY population DESC");
}
$results->execute();
$row_count =$results->fetchColumn();
foreach ($results as $row) {
echo $row["city"] . "-" . $row["population"] ."<br/>";
}
?>
результат http://localhost:8080/weather-app/config/fetch-cities.php?query=Boston
: