@Urukhayy

Почему неверно возвращает обработчик php в ajax?

Мне надо посредством ajax, обработчика php и типа данных json получать из базы MySQL содержание ячейки age в строке, порядковый номер(не) в таблице которой 3. То есть в таблице есть 10 строк, в каждой строке по 20 ячеек. Одна из ячеек - age. Мне надо получить именно из 3-ей строки.

Код который пытался использоваться (не совсем верный, специально чтобы вы поняли что я хочу)

<?
include 'connect.php';
mysql_select_db("bd",$dbconnect) or die (mysql_error());
$query = mysql_query("SELECT * FROM `table`");
$res['Name'] = mysql_result($query,$Row,3);
echo json_encode($res);


Затем в скрипте JavaScript, в функции .Ajax я получу это поле таким образом:


success: function(data){
      var name = data.Name;
      alert(name);
}


Но там нет требуемого результата.
  • Вопрос задан
  • 2370 просмотров
Решения вопроса 1
HollowJ
@HollowJ
PHP разработчик
Судя по документации php.net/manual/ru/function.mysql-result.php, вторым параметром идет номер ряда, в Вашем случае это 3, третьим - номер поля, тоже 3.
Получаем:
<?
include 'connect.php';
mysql_select_db("bd",$dbconnect) or die (mysql_error());
$query = mysql_query("SELECT * FROM `table`");
$res['Name'] = mysql_result($query,3,3);
echo json_encode($res);

Также важно не забыть указать тип получаемых данных в $.ajax объекте, то есть:
$.ajax({
  url: ...,
  data: ...,
  dataType: 'json',
  success: function(response) {
    alert(response.Name);
  }
});
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
@andreyqin
include 'connect.php';
mysql_select_db('bd', $dbconnect);
$result = mysql_query('SELECT age FROM table WHERE id = 3');
$row = mysql_fetch_assos($result);
echo json_encode($row['age']);


success: function(data) {
    alert(data[0].age);
}
Ответ написан
Если я Вас правильно понял, то Вам нужно получить только одну цифру из колонки age из третьей записи в таблице. Тогда Ваш запрос должен быть "SELECT age FROM `table` WHERE id=3". Вернет параметр age у записи с id=3. Если id у нее другой и вам нужно именно третью по счету, то что-то такое "SELECT age FROM `table` LIMIT 2,1".
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы