2017-01-13 3 views
0

에서 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)을 삭제하면 내 값이 #count_math div에 json 목록으로 표시되는지 확인할 수 있습니다.

나는 현재 내 Hostgator에 서버를 어떤 이유로, fetch_all()는 내 로컬 환경에서 작동하기 때문에이 fetch_assoc() 대신 fetch_all() 사용하여 해결하기 위해 묶는하고 있지 않다. PHP 버전을 업데이트하려고 시도했지만 작동하지 않았습니다.

여기에 있어야 할 정보가 있다면 알려주십시오.

+1

@Radmation 그가 반향하지 않는다면 어떻게 클라이언트에게 전달 될까요? – Barmar

답변

1

fetch_assoc()은 단지 한 행을 반환합니다. 모든 행을 원하면 루프로 호출해야합니다.

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

fetch_all()은 당신이 당신의 Hostgator의 서버가이없는 나는 의심의 MYSQLND 드라이버가 작동합니다.