|
@@ -50,6 +50,66 @@ class Table_day_k extends Table {
|
|
|
return $attr;
|
|
return $attr;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
+//用于连表查询之后的结(前复权表和日k表)
|
|
|
|
|
+ protected function struct1(){
|
|
|
|
|
+ $attr = array();
|
|
|
|
|
+ $attr['id'] = 'day_k_id';
|
|
|
|
|
+ $attr['timestamp'] = 'day_k_timestamp';
|
|
|
|
|
+ $attr['date'] = 'day_k_date';
|
|
|
|
|
+ $attr['code'] = 'day_k_code';
|
|
|
|
|
+ $attr['name'] = 'day_k_name';
|
|
|
|
|
+ $attr['open_price'] = 'day_k_open_price';
|
|
|
|
|
+ $attr['close_price'] = 'day_k_close_price';
|
|
|
|
|
+ $attr['highest_price'] = 'day_k_highest_price';
|
|
|
|
|
+ $attr['lowest_price'] = 'day_k_lowest_price';
|
|
|
|
|
+ $attr['increase_price'] = 'day_k_increase_price';
|
|
|
|
|
+ $attr['increase_ratio'] = 'day_k_increase_ratio';
|
|
|
|
|
+ $attr['turnover'] = 'day_k_turnover';
|
|
|
|
|
+ $attr['amount'] = 'day_k_amount';
|
|
|
|
|
+ $attr['value'] = 'day_k_value';
|
|
|
|
|
+ $attr['m5'] = 'day_k_m5';
|
|
|
|
|
+ $attr['m10'] = 'day_k_m10';
|
|
|
|
|
+ $attr['m20'] = 'day_k_m20';
|
|
|
|
|
+ $attr['m30'] = 'day_k_m30';
|
|
|
|
|
+ $attr['m60'] = 'day_k_m60';
|
|
|
|
|
+ $attr['m233'] = 'day_k_m233';
|
|
|
|
|
+ $attr['tradable_amount'] = 'day_k_tradable_amount';
|
|
|
|
|
+ $attr['tradable_value'] = 'day_k_tradable_value';
|
|
|
|
|
+ $attr['total_amount'] = 'day_k_total_amount';
|
|
|
|
|
+ $attr['total_value'] = 'day_k_total_amount';
|
|
|
|
|
+ $attr['profitable'] = 'day_k_profitable';
|
|
|
|
|
+ $attr['pb'] = 'day_k_pb';
|
|
|
|
|
+ $attr['pe_static'] = 'day_k_pe_static';
|
|
|
|
|
+ $attr['pe_dynamic'] = 'day_k_pe_dynamic';
|
|
|
|
|
+ $attr['pe_ttm'] = 'day_k_pe_ttm';
|
|
|
|
|
+//前复权表
|
|
|
|
|
+ $attr['qfq_id'] = 'day_k_qfq_id';
|
|
|
|
|
+ $attr['qfq_timestamp'] = 'day_k_qfq_timestamp';
|
|
|
|
|
+ $attr['qfq_date'] = 'day_k_qfq_date';
|
|
|
|
|
+ $attr['qfq_code'] = 'day_k_qfq_code';
|
|
|
|
|
+ $attr['qfq_name'] = 'day_k_qfq_name';
|
|
|
|
|
+ $attr['qfq_open_price'] = 'day_k_qfq_open_price';
|
|
|
|
|
+ $attr['qfq_close_price'] = 'day_k_qfq_close_price';
|
|
|
|
|
+ $attr['qfq_highest_price'] = 'day_k_qfq_highest_price';
|
|
|
|
|
+ $attr['qfq_lowest_price'] = 'day_k_qfq_lowest_price';
|
|
|
|
|
+ $attr['qfq_turnover'] = 'day_k_qfq_turnover';
|
|
|
|
|
+ $attr['qfq_amount'] = 'day_k_qfq_amount';
|
|
|
|
|
+
|
|
|
|
|
+ return $attr;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+ //从数据库取出的数据转化键值后输出
|
|
|
|
|
+ protected function dataToAttr2($data){
|
|
|
|
|
+ $r = array();
|
|
|
|
|
+ foreach($this->struct1() as $k => $v){
|
|
|
|
|
+
|
|
|
|
|
+ $r[$k] = $data[$v];
|
|
|
|
|
+ }
|
|
|
|
|
+ return $r;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
|
|
|
/****
|
|
/****
|
|
|
* @param $attr
|
|
* @param $attr
|
|
@@ -145,40 +205,75 @@ class Table_day_k extends Table {
|
|
|
* wanggangtao
|
|
* wanggangtao
|
|
|
* 获取最近n天的数据
|
|
* 获取最近n天的数据
|
|
|
*/
|
|
*/
|
|
|
- public function stock_recent_days($code,$start_date,$traceback_days,$order,$fq_price)
|
|
|
|
|
|
|
+ public function stock_recent_days($code,$start_date,$traceback_days,$order_info,$fq_price)
|
|
|
{
|
|
{
|
|
|
|
|
+ $stock_code = $this->pdo->sql_check_input(array('string', $code));//类型是字符串,那一定要在条件中将数据使用引号引用起来,否则不使用索引
|
|
|
|
|
+ $start_date= $this->pdo->sql_check_input(array('number', $start_date));
|
|
|
|
|
+ $traceback_days = $this->pdo->sql_check_input(array('number', $traceback_days));
|
|
|
|
|
+ $fq_price = $this->pdo->sql_check_input(array('number', $fq_price));
|
|
|
|
|
+ var_dump($fq_price);
|
|
|
|
|
|
|
|
if($fq_price==1){//前复权
|
|
if($fq_price==1){//前复权
|
|
|
|
|
+ $sql = " select * from ". $this->table_fullname ." where 1=1 ";
|
|
|
|
|
+ $where =" and day_k_code=".$stock_code." and day_k_date <=".$start_date ;
|
|
|
|
|
+ $sql.=$where;
|
|
|
|
|
+ $orderInfo=" ORDER BY day_k_date desc";
|
|
|
|
|
+ $sql.=$orderInfo;
|
|
|
|
|
+ $limit=" limit ".$traceback_days;
|
|
|
|
|
+ $sql.=$limit;
|
|
|
|
|
+ $sql=" select* from(".$sql.")a left join boniu_day_k_qfq b on a.day_k_code=b.day_k_qfq_code and b.day_k_qfq_date=a.day_k_date ";
|
|
|
|
|
+ if($order_info==1){
|
|
|
|
|
+ $sql= $sql. " ORDER BY a.day_k_date desc ";
|
|
|
|
|
|
|
|
- }else{//不复权
|
|
|
|
|
|
|
+ }else{
|
|
|
|
|
+ $sql= $sql. " ORDER BY a.day_k_date asc";
|
|
|
|
|
+ }
|
|
|
|
|
+ $rs = $this->pdo->sqlQuery($sql);
|
|
|
|
|
+ $r = array();
|
|
|
|
|
+ if($rs){
|
|
|
|
|
+ foreach($rs as $key => $val){
|
|
|
|
|
+
|
|
|
|
|
+ $r[$key] = $this->dataToAttr2($val);
|
|
|
|
|
+ }
|
|
|
|
|
+ return $r;
|
|
|
|
|
+ }else{
|
|
|
|
|
+ return $r;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ }
|
|
|
|
|
+ else if($fq_price==0)
|
|
|
|
|
+ {//不复权
|
|
|
//查询语句必须用sql_check_input检查参数
|
|
//查询语句必须用sql_check_input检查参数
|
|
|
$stock_code = $this->pdo->sql_check_input(array('string', $code));
|
|
$stock_code = $this->pdo->sql_check_input(array('string', $code));
|
|
|
$sql = "select * from ". $this->table_fullname ." where 1=1 ";
|
|
$sql = "select * from ". $this->table_fullname ." where 1=1 ";
|
|
|
- $where =" and day_k_code=".$stock_code." and day_k_timestamp <=".$start_date ;
|
|
|
|
|
|
|
+ $where =" and day_k_code=".$stock_code." and day_k_date <=".$start_date ;
|
|
|
$sql.=$where;
|
|
$sql.=$where;
|
|
|
$orderInfo=" ORDER BY day_k_date desc";
|
|
$orderInfo=" ORDER BY day_k_date desc";
|
|
|
$sql.=$orderInfo;
|
|
$sql.=$orderInfo;
|
|
|
$limit=" limit ".$traceback_days;
|
|
$limit=" limit ".$traceback_days;
|
|
|
$sql.=$limit;
|
|
$sql.=$limit;
|
|
|
- if($order==1){
|
|
|
|
|
|
|
+ if($order_info==1){
|
|
|
$sql= " SELECT a.* FROM "."($sql) a ORDER BY a.day_k_date desc ";
|
|
$sql= " SELECT a.* FROM "."($sql) a ORDER BY a.day_k_date desc ";
|
|
|
|
|
|
|
|
}else{
|
|
}else{
|
|
|
$sql= " SELECT a.* FROM "."($sql) a ORDER BY a.day_k_date asc";
|
|
$sql= " SELECT a.* FROM "."($sql) a ORDER BY a.day_k_date asc";
|
|
|
}
|
|
}
|
|
|
- }
|
|
|
|
|
|
|
+ var_dump($sql);
|
|
|
|
|
|
|
|
- $rs = $this->pdo->sqlQuery($sql);
|
|
|
|
|
- $r = array();
|
|
|
|
|
- if($rs){
|
|
|
|
|
- foreach($rs as $key => $val){
|
|
|
|
|
|
|
+ $rs = $this->pdo->sqlQuery($sql);
|
|
|
|
|
+ $r = array();
|
|
|
|
|
+ if($rs){
|
|
|
|
|
+ foreach($rs as $key => $val){
|
|
|
|
|
|
|
|
- $r[$key] = $this->dataToAttr($val);
|
|
|
|
|
|
|
+ $r[$key] = $this->dataToAttr($val);
|
|
|
|
|
+ }
|
|
|
|
|
+ return $r;
|
|
|
|
|
+ }else{
|
|
|
|
|
+ return $r;
|
|
|
}
|
|
}
|
|
|
- return $r;
|
|
|
|
|
- }else{
|
|
|
|
|
- return $r;
|
|
|
|
|
}
|
|
}
|
|
|
|
|
+//var_dump($sql);
|
|
|
|
|
+
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
@@ -217,7 +312,7 @@ class Table_day_k extends Table {
|
|
|
|
|
|
|
|
$sql.=$order;
|
|
$sql.=$order;
|
|
|
}
|
|
}
|
|
|
- else
|
|
|
|
|
|
|
+ else if($fq_price==0)
|
|
|
{
|
|
{
|
|
|
$sql = "select * from ". $this->table_fullname ." where 1=1 ";
|
|
$sql = "select * from ". $this->table_fullname ." where 1=1 ";
|
|
|
$where =" and day_k_code=".$stock_code ." and day_k_date>= ".$start_date." and day_k_date<= ".$end_date ;
|
|
$where =" and day_k_code=".$stock_code ." and day_k_date>= ".$start_date." and day_k_date<= ".$end_date ;
|