Nie możesz wybrać więcej, niż 25 tematów Tematy muszą się zaczynać od litery lub cyfry, mogą zawierać myślniki ('-') i mogą mieć do 35 znaków.
 
 
 
 

122 wiersze
2.8 KiB

  1. <?php
  2. require_once '../st-xm/Common/Mysql.php';
  3. header("Access-Control-Allow-Origin:*");
  4. //把数组key值改为run_id+prod_id
  5. function change_key($a){
  6. $tmp=array();
  7. foreach($a as $k=>$v){
  8. $tmpk=$v['run_id'].'-'.$v['prod_id'];
  9. $tmp["$tmpk"]=$v;
  10. $tmp["$tmpk"]['id']=$k;
  11. }
  12. return $tmp;
  13. }
  14. //合并数组
  15. function multi_merge($a,$b){
  16. $arr = array();
  17. foreach($a as $k=>$r){
  18. if(isset($b[$k])){
  19. $arr[$k] = array_merge($r,$b[$k]);
  20. }else{
  21. $arr[$k] =$r;
  22. $arr[$k]['num2']=0;
  23. }
  24. }
  25. foreach($b as $k=>$r){
  26. if(!isset($arr[$k])){
  27. $arr[$k] =$r;
  28. $arr[$k]['num1']=0;
  29. }
  30. }
  31. return $arr;
  32. }
  33. $pdo = conn1();
  34. //从订单角度得到run_prod表的数据
  35. $sql1 = "SELECT
  36. l.line_id,
  37. m.run_id,
  38. m.prod_id,
  39. m.run_date,
  40. count(m.order_id) as num1
  41. FROM
  42. order_main m
  43. LEFT JOIN opera_line l ON m.PARENT_PROD_ID = l.line_id
  44. LEFT JOIN opera_tickets t on m.prod_id=t.TICKET_ID
  45. LEFT JOIN opera_line w on t.line_id=w.line_id
  46. WHERE
  47. m.PARENT_ORDER_ID <> 0
  48. AND m.run_date >= '2017-02-05'
  49. AND m.ORDER_VALID_STATUS = 1
  50. AND m.CANCEL_FLAG = 0
  51. AND m.PROD_ID <> 380001
  52. AND w.line_type in (255,256)
  53. AND m.ORDER_PROD_TYPE = 82
  54. group by run_id,prod_id
  55. order by m.run_date;";
  56. $res1 = $pdo->query($sql1);
  57. $res1->setFetchMode(PDO::FETCH_ASSOC);
  58. $arr1 = $res1->fetchAll();
  59. //run_prod表本身的数据
  60. $sql2="SELECT
  61. b.prod_id as line_id,
  62. b.run_id,
  63. a.prod_id,
  64. b.run_date,
  65. a.saled_count as num2
  66. FROM
  67. run_prod a
  68. LEFT JOIN run_main b ON a.run_id = b.run_id
  69. WHERE
  70. b.run_date >= '2017-02-05'
  71. and a.CANCEL_FLAG=0
  72. and a.SALED_COUNT<>0
  73. AND b.PROD_ID <> 0
  74. order by b.run_date;";
  75. $res2 = $pdo->query($sql2);
  76. $res2->setFetchMode(PDO::FETCH_ASSOC);
  77. $arr2 = $res2->fetchAll();
  78. //切换key值
  79. $arr1=change_key($arr1);
  80. //print_r($arr1);
  81. $arr2=change_key($arr2);
  82. /*print_r($arr1);
  83. print_r($arr2);
  84. exit;*/
  85. $arr=multi_merge($arr1,$arr2);
  86. ?>
  87. <!DOCTYPE html>
  88. <html>
  89. <head>
  90. <meta charset="UTF-8">
  91. <title>run_prod数据检测</title>
  92. <style type="text/css">
  93. td{
  94. border:1px solid;
  95. }
  96. </style>
  97. </head>
  98. <body>
  99. <h2 style="margin-left:20%">run_prod数据检测</h2>
  100. <table width="60%">
  101. <tr><td width="10%">ID</td><td width="10%">出发日期run_date</td><td width="10%">班次run_id</td><td width="10%">票种prod_id</td><td width="10%">实际订单数量</td><td width="10%">记录已售数量</td></tr>
  102. <?php $i=1; foreach($arr as $k=>$v ){?>
  103. <tr style="<?php if($v['num1']!=$v['num2']){echo 'color:red';} ?>"><td><?php echo $i;?></td><td><?php echo $v['run_date'];?></td><td><?php echo $v['run_id'];?></td><td><?php echo $v['prod_id'];?></td><td><?php echo $v['num1'];?></td><td><?php echo $v['num2'];?></td></tr>
  104. <?php $i++;}?>
  105. </table>
  106. </body>
  107. </html>