2012-06-14 6 views
0

나는이 PHP 구문을 가지고 있고 예상대로 작동합니다인코딩 JSON 연합회 가져 오기 및 가져 오기 배열

$sqldata = mysql_query(" 
SELECT FirstName, LastName, NumberOfChildren, SchoolTuition FROM User WHERE User.Username = '$Username' LIMIT 1; 
"); 

$rows = array(); 
while($r = mysql_fetch_assoc($sqldata)) { 
    $rows[] = $r; 
} 

echo json_encode($rows); 

이제 문제는 내가 총 수업료 (NumberOfChildren * SchoolTuition)를 계산하고자하고 있어야합니다 json_encode() 함수보다 먼저 수행해야합니다. 내 클라이언트는 데이터베이스에 하나의 추가 열을 추가하고 싶지 않습니다.

그래서 PHP를 사용하여이 TOTAL 학교 수업을 계산하고 $ rows 배열을 json_encode 앞에 배열의 최신 값으로 다시 넣어야합니다.

먼저 $ rows [2]와 $ rows [3]을 얻기 위해 mysql_fetch_array를 사용하여 계산했지만, 이미 mysql_fetch_assoc을 사용하고 있기 때문에이 mysql_fetch_array는 작동하지 않습니다.

마지막으로, mysql_fetch_assoc은 2 차원 배열을 생성합니다. array_push 함수는 오른쪽, 1 개 차원 배열을 이용하면서 밀어

Array ([0] => Array ([FirstName] => Mary [LastName] => Smith [NumberOfChildren] => 3 [SchoolTuition] => 2000)) 

: I이 인 print_r ($ 행)을 사용할 때,이 때문에 표시?

제발 친절하게 제게이 문제의 해결책을주십시오. 고마워요.

답변

6

열을 추가하지 않고 SQL로만 계산할 수 있습니다.

SELECT FirstName, LastName, NumberOfChildren, SchoolTuition, 
    (NumberOfChildren * SchoolTuiton) AS TotalSchoolTuiton 
FROM User WHERE User.Username = '$Username' LIMIT 1 
+1

당신은 19초 ... +1 –

+0

나를 이길 그리고 난 설명을 추가! ;) – Sherlock

+1

그리고 명확성을 위해 중괄호를 추가했습니다.) –

3
SELECT FirstName, LastName, NumberOfChildren, SchoolTuition, NumberOfChildren*SchoolTuition AS TotalTuition FROM User WHERE User.Username = '$Username' LIMIT 1;