2016-04-03 10 views
1

私は、それぞれの名前shipping_infosと注文2テーブル名を持っています。私は2つのテーブルから複数の列を取得したいと思います。 2つのテーブルは、user_idカラムである同じカラムを共有します。私はこのコードを試していますが、それでも私はnullを返します。どうすればいいですか?SQLデータベースの2つのテーブルから複数の列からデータを取得するにはどうすればよいですか?

<?php 
    include ('classes/functions.php'); 

if(isset($_POST['user_id'])){ 
$user_id = $_POST['user_id']; 
$check_receipt = "select 
shipping_infos.shipping_name,shipping_infos.shipping_address, 
shipping_infos.shipping_contact,shipping_infos.shipping_email, 
    orders.order_date,orders.trx_id,orders.tracking_num from 
shipping_infos inner join orders on shipping_infos.user_id = orders.user_id  
where user_id= '".$user_id."';"; 
     $run_receipt_checking = mysqli_query($con, $check_receipt); 
     $result = array(); 
    while($row = mysqli_fetch_array($run_receipt_checking)){ 
    array_push($result, 
    array(
      'shipping_name'=>$row[2], 
      'shipping_address'=>$row[3], 
      'shipping_contact'=>$row[4], 
      'shipping_email'=>$row[5], 
      'order_date'=>$row[8], 
      'trx_id'=>$row[1], 
      'tracking_num'=>$row[2],    
)); 
} 
    echo json_encode(array("result"=>$result)); 
} ?> 
+1

を今、私はちょうどこのコードはSQLインジェクションに実行可能であることを追加する必要があり、パンチに私を打つgofr1。既にmysqliを使用しているので、[値のバインド方法を学んでください](http://php.net/manual/en/mysqli-stmt.bind-param.php)。 – Xorifelse

答えて

0

は、この文字列で検索してください:

$check_receipt = "select si.shipping_name, 
     si.shipping_address, 
     si.shipping_contact, 
     si.shipping_email, 
     o.order_date, 
     o.trx_id, 
     o.tracking_num 
from shipping_infos si 
inner join orders o 
    on si.user_id = o.user_id  
where si.user_id='".$user_id."';"; 

そして、ここで変更します。

array_push($result, 
    array(
      'shipping_name'=>$row[0], 
      'shipping_address'=>$row[1], 
      'shipping_contact'=>$row[2], 
      'shipping_email'=>$row[3], 
      'order_date'=>$row[4], 
      'trx_id'=>$row[5], 
      'tracking_num'=>$row[6],    
)); 
+0

うわー、ありがとう、それは動作します。 –

+0

@CheongCharlene私の喜び! – gofr1

関連する問題