2016-07-19 19 views
0

ユーザーがアップロードできるファイルごとに5つのテーブルがあります。私は1つの配列に対応するデータを持つすべてのファイルを取得したいので、1つの配列に5つのファイルデータ。私はワークベンチでそれを実行する場合、私にすべての5件のファイルデータが得られますが、JSONオブジェクトが唯一の配列で、このクエリselect * from degree_files, profile_pictures, cpr_files, backgroundcheck_files, video_files where degree_files.user_id = :user_idを使用していますPHPでjsonオブジェクト内の1つの配列

user_id, file_type, file_size, file_name, file_new_name, file_path, date_created 

すべてのテーブルが同じ構造を持っています。

今はそれぞれのテーブルを個別にクエリしているため、すべてのデータを1つの配列に表示する方法や正しい解決方法を表示するにはどうすればよいですか?

私が試した:

$backgroundCheck = $user_home->runQuery("select * from degree_files, profile_pictures, cpr_files, backgroundcheck_files, video_files where degree_files.user_id = :user_id"); 
$backgroundCheck->execute(array(":user_id"=>$user_id)); 
$nanny_backgroundCheck_file = $backgroundCheck->fetchAll(PDO::FETCH_ASSOC); 


$file_name = array(); 
foreach ($nanny_backgroundCheck_file as $c){ 
    $file_name[] = $c['file_name']; 
} 

$arr[] = array('file_name'=>$file_name); 
echo json_encode($arr, JSON_UNESCAPED_UNICODE); 

そして、AJAX呼び出しを:

$.getJSON("PHP/nannyInfo.php", function(data) { 
     //SELECT2 DATA 
     $.each(data.nanny_backgroundcheck_file, function(index, data) { 
     console.log(data); 

     }); 

}); 

私がコンソールに表示どのような。

enter image description here

+0

' - あなたは何を見ますか? –

+0

@u_mulderは編集を確認します – raqulka

答えて

2

最初のクエリ。あなたは複数のテーブルから単一の列を取得しようとしていますね。もしそうなら、私はこの構文をお勧めしたい:

$sql = " 
    select file_name from degree_files where user_id = :user_id 
    UNION select file_name from profile_pictures where user_id = :user_id 
    UNION select file_name from cpr_files where user_id = :user_id 
    UNION select file_name from backgroundcheck_files where user_id = :user_id 
    UNION select file_name from video_files where user_id = :user_id"; 

を次に、実際のSQLの実行は、ほとんどOKですが、私はそれを簡素化したい:とき `はconsole.log(データ)だから、

$backgroundCheck = $db->prepare($sql); 
$backgroundCheck->execute(array(":user_id"=>1)); // 
$fileNames = $backgroundCheck->fetchAll(PDO::FETCH_COLUMN, 'file_name'); 

echo json_encode($fileNames, JSON_UNESCAPED_UNICODE); 
+0

私は準備が好きで、また元気な注射を守っています。 – Jakumi

+0

ありがとう、それはすでに質問で使用されていましたが: – jirka

+0

ああ、あなたは私の悪いよ、o) – Jakumi

関連する問題