2016-05-25 4 views
1

JOINを使用して2つのテーブルからローをフェッチし、alias.butを使用してjsonアレイにローを割り当てるとjsonデータを作成しません。mysqlのエイリアスでローをフェッチした後、jsonデータを生成できません。

ここはコードです。

$personal = $db->prepare('select pd.Id,pd.FirstName,pd.MiddleName,pd.LastName,pd.Gender,pd.Location,pd.Email,bd.BookTitle,bd.BookGenre,bd.BookWriter,bd.BookDescription from personaldetails pd,bookdetails bd where pd.Id = bd.UserId ORDER BY pd.Id DESC'); 

$personal->execute(); 
$json_data=array(); 
$id; 


foreach($personal as $row)//foreach loop 
{ 

    $json_array['id']=$row['pd.Id']; 
    $json_array['FirstName']=$row['pd.FirstName']; 
    $json_array['MiddleName']=$row['pd.MiddleName']; 
    $json_array['LastName']=$row['pd.LastName']; 
    $json_array['Gender']=$row['pd.Gender']; 
    $json_array['Location']=$row['pd.Location']; 
    $json_array['Email']=$row['pd.Email']; 
    $json_array['Mobile']=$row['pd.Mobile']; 
    $json_array['BookTtile']=$row['bd.BookTitle']; 
    $json_array['BookGenre']=$row['bd.BookGenre']; 
    $json_array['BookWriter']=$row['bd.BookWriter']; 
    $json_array['BookDescription']=$row['bd.BookDescription']; 

    //here pushing the values in to an array 
    array_push($json_data,$json_array); 
} 

header('Content-type: application/json'); 
echo json_encode($json_data); 

ありがとうございます!

答えて

0

クエリ結果からデータを取得するのを忘れるためです。

使用fetch_assoc()フェッチするデータと

$personal->execute(); 
$json_data=array(); 
while ($row = $personal->fetch_assoc()) {// fetch data from query 
    $json_array['id']=$row['Id']; // don't use table name before ID 
    $json_array['FirstName']=$row['FirstName'];// don't use table name FirstName 
................... 
} 
+0

ええ、それは働いています。おかげで多く – Cooolranjan

+0

何の問題?? – Saty

+0

しかし、それはjsonオブジェクト全体の最初のテーブルの列を複製しています。 重複を防止する方法はありますか?つまり、1番目のテーブルの1行と2番目の秒のテーブルをjson – Cooolranjan

関連する問題