2014-10-01 111 views
1

我需要一個PHP數組,用於存儲來自MySQL的數據並在以後的JQuery中使用。 從MySQL表提交後從PHP表格讀取PHP數組的格式

student_id class_id score 
001 01 A 
001 02 B 
002 02 A 

在JQuery的樣本數據,我想訪問這些數據作爲data.student_id [I] .class_id [I] .score 如何可以構造PHP數組?

我在view_student.php當前代碼(可以選擇多於一個student_id數據,類標識碼)

$student_id = $_POST['student_id']; 
$class_id= $_POST['class_id']; 

$student_array = array(); 

for($j=0;$j<sizeof($student_id);$j++) { 
    $query = "SELECT class_id, score FROM student"; 
    $query .= " WHERE student_id='".$student_id[$j]."'"; 

    for($i=0;$i<sizeof($class_id);$i++){ 
     if($i==0) { 
      $query .= " AND class_id=".$class_id[$i]; 
     } else { 
      $query .= " OR class_id=".$class_id[$i]; 
     } 
    } 

    if($student_sql=$connection->query($query)){ 
     $student_php = array(); 
     $student_row_php = array(); 

     while($student_row_sql=$student_sql->fetch_array(MYSQLI_ASSOC)){ 
      $student_row_php["student_id"]=$sale_row_sql['student_id']; 
      $student_row_php["score"]=$sale_row_sql['score']; 
      array_push($student_php, $student_row_php); 
     } 
    } 

    $student_array[$student_id[$j]]=$student_php; 
} 
echo json_encode($student_array); 

在JavaScript中,我需要data.student_id [0] .class_id [0] .score代替數據。 001 [0] .score

<script> 
$(document).ready(function() { 
    $('form').submit(function(event) { 
     event.preventDefault();/

     var postForm = new FormData(this); 

     $.ajax({ 
      type  : 'POST', 
      url   : 'view_student.php', 
      data  : postForm, 
      processData: false, 
      contentType: false, 
      dataType : 'json', 
      success  : function(data) { 
       $('#score').html('<font color="#FFFFFF"> <strong>'+data.001[0].score+'</strong> </font>'); 

      } 
     }); 

    }); 
}); 

+1

'data.student_id [0] .class_id [0] .score' - 這並沒有什麼意義。爲什麼不'data [0] .student_id','data [0] .class_id','data [0] .score'? – wavemode 2014-10-01 03:57:31

+0

我真的很喜歡你的想法來訪問每個屬性。但是,我想知道如何獲得每個班級的學生成績。如果我們使用數據[0] .score,我們只能爲每個學生訪問一個分數。如果我錯了,請糾正我。非常感謝@wavemode。 – nguyen 2014-10-01 04:30:57

+0

我想我們可以使用數據[student_id] [class_id] .score訪問每個班級的學生成績。再次感謝@wavemode。 – nguyen 2014-10-01 05:01:53

回答

0

嘗試添加這使其復位鍵索引:

$student_array = array_values($student_array); // simple reindex 
echo json_encode($student_array); 

因爲最終他們都已經由學生ID分組,$student_id[$j](包含001, 002等),重置鍵,這樣就可以通過你的數字索引訪問,而不是使用.001這是學生證

他們,