2017-01-13 2 views
0

Мой Ajax выглядит следующим образом:Аякса получить JSon данные Mysqli

$.ajax({ 
     method: "GET", 
     url: 'yooarel.php?', 
     data: servicedata, 
     dataType: "JSON", 
     success: function(data){ 
     $("#count_math").html(data[0].cnt); 
     }  
    }); 
    } 

yooarel.php? Внутри у меня есть следующий PHP эхо-код.

$theclass = "SELECT _latin1 'math' as class"; 

$theschool = " 
    SELECT s.class, 
    COUNT(m.class) AS cnt 
    FROM ({$theclass}) s 
    LEFT 
    JOIN members m 
    ON m.class = s.class 
"; 
$theclose = "GROUP BY s.class"; 

$result = $con->query(" 
    {$theschool}{$theclass} 
"); 

$rows = $result->fetch_assoc(); 
echo json_encode($rows); 
mysqli_close($con); 

$con представляет собой соединение mysql. Запрос разбит, чтобы иметь место для условных событий. Сценарий здесь заключается в том, что я хочу получить оценку студентов из разных классов и вывести их счет.

В настоящее время код, который у меня есть, не работает, поскольку он сообщает мне, что cnt не определен.

Если я удалю dataType:"JSON" и удаляю ([0].cnt), то я могу проверить, что мои значения отображаются в div #count_math как список json.

Я в настоящее время привязана, чтобы разрешить это, используя fetch_assoc() вместо fetch_all(), потому что по какой-то причине fetch_all() работает только в моей локальной среде, а не на моем сервере Hostgator. Я пробовал обновить версию PHP, и это не сработало.

Дайте мне знать, если есть информация, которая должна была быть здесь.

+1

@ Radmation Если он не повторит его, как он получит клиента? – Barmar

ответ

1

fetch_assoc() просто возвращает один ряд. Если вам нужны все строки, вам нужно вызвать его в цикле.

$rows = array(); 
while ($row = $result->fetch_assoc()) { 
    $rows[] = $row; 
} 
echo json_encode($rows); 

fetch_all() работает только если у вас есть драйвер MYSQLND, я подозреваю, что ваш сервер Hostgator не имеет этого.

Смежные вопросы