2014-11-18 1 views
-2

나는 자바 스크립트에 대한 SQL 쿼리의 결과를 얻고 싶다. 따라서 json_encode 메서드를 사용하라는 많은 솔루션을 발견했습니다. 이제mysqli 쿼리 이상한 배열 결과의 json_encode

$sql = "SELECT idDozent FROM Dozent;"; 
    $rows = array(); 
    $result = $con->query($sql); 
    while($row = $result->fetch_array()) { 
     $rows[] = $row; 
    } 

내 자바 스크립트 코드에 내가 쓴 : 나는이 코드를 작성

var jsonarray = <?php echo json_encode($rows); ?>; 

내 표는 다음과 같습니다

idDozent | Name 
7  | ... 
8  | ... 

하지만 배열이 포함

[{"0":"7","idDozent":"7"},{"0":"8","idDozent":"8"}] 

내가 뭘 잘못하고 있니?

어떻게 배열의 레코드 하나에 액세스 할 수 있습니까?

감사

+0

무엇 정확히 당신의 질문입니까? 이것은 정확히 예상 된 결과입니다. JS에서는'jsonarray [0] .idDozent' 즉 – kero

+0

을 통해 JS에 액세스 할 수 있습니다. 배열은 괜찮습니다.'alert (jsonarray [0] .idDozent); ' – Steve

+0

아, 그래. 뭔가 잘못 했어. 접근하는 법을 몰랐어. 감사. – blckbird

답변

0

, 다음 연관 배열을 반환하기 위해 MySQL의 쿼리를 변경 :

//while($row = $result->fetch_array()) { 
while($row = $result->fetch_assoc()) { 
... 

var jsonarray = <?php echo json_encode($rows); ?>; 
console.log(jsonarray[0].idDozent); 

http://php.net/manual/en/mysqli-result.fetch-assoc.php

0

사용이 : 당신은 당신의 코드에서 PHP로 $rows[] = ...를 사용할 때

$rows[$row['idDozent']] = $row['Name']; 

자동으로 배열에 키를 추가합니다. 이것 대신 자신 만의 키를 지정할 수 있습니다! 그러나 중복 된 키를 사용하는 것을 숙지하십시오. 자바 스크립트 배열은 배열의 중복 (숫자 및 문자열 속성 이름)를 싶지 않는 그러나 경우에, 좋은 것을