Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/63.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何从sql数据库中的两个表中的多列中获取数据?_Php_Mysql_Sql_Mysqli - Fatal编程技术网

Php 如何从sql数据库中的两个表中的多列中获取数据?

Php 如何从sql数据库中的两个表中的多列中获取数据?,php,mysql,sql,mysqli,Php,Mysql,Sql,Mysqli,我有两个表名,每个表名为shipping_infos和orders。我想从这两个表中得到多个列。这两个表共享一个相同的列,即用户id列。我一直在尝试这段代码,但是它仍然返回null。我该怎么写呢 <?php include ('classes/functions.php'); if(isset($_POST['user_id'])){ $user_id = $_POST['user_id']; $check_receipt = "select shipping_infos.

我有两个表名,每个表名为shipping_infos和orders。我想从这两个表中得到多个列。这两个表共享一个相同的列,即用户id列。我一直在尝试这段代码,但是它仍然返回null。我该怎么写呢

 <?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));
} ?>
尝试此查询:

$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],            
));
请尝试以下查询:

$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],            
));

gofr1击败了我,现在我只需要补充一点,这段代码对于SQL注入是可行的。既然您已经在使用mysqli,.gofr1,我就要补充一点,这段代码对SQL注入是可行的。既然你已经在使用mysqli,@CheongCharlene我很乐意@我的荣幸!