У меня есть следующая таблица:Вывод Результаты Подготовленные заявления
| id | name | age |
|----|-------|-----|
| 1 | Peter | 23 |
| 2 | Amie | 34 |
| 3 | Eddy | 45 |
| 4 | Peter | 56 |
| 5 | Eddy | 67 |
Теперь я хочу, чтобы получить возраст всех пользователей с именем Peter
.
JS:
function getAge() {
$.ajax({
type : "POST",
url : "backend.php",
data : {
q : "user",
name : 'Peter'
},
success : function(data) {
console.log(data)
if (data.length > 0) {
} else {
console.log("empty")
}
},
error : function(jqXHR, status, error) {
console.log(status, error);
}
});
}
PHP:
if (isset ($_POST)) {
if ($_POST ['q'] == "user") {
$name = $_POST ["name"];
$stmt = $link->prepare ("SELECT age FROM tab1 WHERE name= ?");
$stmt->bind_param ("s", $name);
$stmt->execute();
$stmt->store_result();
if ($stmt->num_rows >= 1) {
echo "Yes"; // only this Yes is being returned
$arr = array();
while ($stmt->fetch()) {
$arr [] = $name;
}
return $arr;
} else {
echo "0 records found";
}
$link->close();
}
Вместо массива с 23
и 56
, я только получить Yes
.
Так как я могу получить массив с возрастом?
вам нужно 'Эхо $ обр;' вместо 'вернуть $ обр;', потому что вы используете Аякс – developer
Вы вторите содержимое '$ arr' в формате, который вы определяете (возможно, используя json, но это действительно зависит от вас), а в скрипте js обрабатываются полученные данные и отображаются так, как вы этого хотите. – Shadow
'echo json_encode ($ arr);' вместо 'return $ arr;' будет работать, я думаю (если вы хотите, чтобы JSON вернулся в браузер) – ADyson