Subversion Repositories php-qbpwcf

Rev

Rev 183 | Rev 220 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 183 Rev 207
Line 13083... Line 13083...
13083
	#必填參數:
13083
	#必填參數:
13084
	#$conf["dbInfo"]["資料庫名稱"],字串陣列,爲要存取的"資料庫名稱"的連線資訊.
13084
	#$conf["dbInfo"]["資料庫名稱"],字串陣列,爲要存取的"資料庫名稱"的連線資訊.
13085
	#$conf["dbIfno"]["資料庫名稱"]["dbAddr"],字串,dbServer的位置.
13085
	#$conf["dbIfno"]["資料庫名稱"]["dbAddr"],字串,dbServer的位置.
13086
	#$conf["dbInfo"]["資料庫名稱"]["dbAddr"]="";
13086
	#$conf["dbInfo"]["資料庫名稱"]["dbAddr"]="";
13087
	#$conf["dbIfno"]["資料庫名稱"]["dbAcct"],字串,dbServer的連線帳號.
13087
	#$conf["dbIfno"]["資料庫名稱"]["dbAcct"],字串,dbServer的連線帳號.
13088
	#$conf["dbInfo"]["資料庫名稱"]["dbAcct"]="";	
13088
	#$conf["dbInfo"]["資料庫名稱"]["dbAcct"]="";
13089
	#$conf["mainTable"],字串,為 主資料庫.資料表 的名稱,例如 "dbA.dtA".
13089
	#$conf["mainTable"],字串,為 主資料庫.資料表 的名稱,例如 "dbA.dtA".
13090
	$conf["mainTable"]="";
13090
	$conf["mainTable"]="";
13091
	#$conf["linkColumnName"],二字串陣列,為資料表間相連結的欄位名稱,格式為 array("mergedDb.mergedDt.mergedCol","linkDb.linkDt.linkCol") 就代表當前組好的欄位 mergedDb.mergedDt.mergedCol 跟資料庫 linkDB 表 linkDt 欄位 linkCol 進行資料的配對。
-
 
13092
	$conf["linkColumnName"]=array(array(""));	
-
 
13093
	#可省略參數:
13091
	#可省略參數:
-
 
13092
	#$conf["linkColumnName"],二字串陣列,為資料表間相連結的欄位名稱,格式為 array("mergedDb.mergedDt.mergedCol","linkDb.linkDt.linkCol") 就代表當前組好的欄位 mergedDb.mergedDt.mergedCol 跟資料庫 linkDB 表 linkDt 欄位 linkCol 進行資料的配對。
-
 
13093
	#$conf["linkColumnName"]=array(array(""));
13094
	#$conf["dbInfo"]["資料庫名稱"]["dbPass"],字串,dbServer的連線密碼.
13094
	#$conf["dbInfo"]["資料庫名稱"]["dbPass"],字串,dbServer的連線密碼.
13095
	#$conf["dbInfo"]["資料庫名稱"]["dbPass"]="";
13095
	#$conf["dbInfo"]["資料庫名稱"]["dbPass"]="";
13096
	#$conf["dbInfo"]["資料庫名稱"]["dbPort"],字串,db連線用的port.
13096
	#$conf["dbInfo"]["資料庫名稱"]["dbPort"],字串,db連線用的port.
13097
	#$conf["dbInfo"]["資料庫名稱"]["dbPort"]="";
13097
	#$conf["dbInfo"]["資料庫名稱"]["dbPort"]="";
13098
	#$conf["columnYouWant"],字串陣列,為想要的資料表欄位,格式為 "dbName.dtName.colName".
13098
	#$conf["columnYouWant"],字串陣列,為想要的資料表欄位,格式為 "dbName.dtName.colName".
Line 13118... Line 13118...
13118
	#$conf["mainGroupBy"],字串陣列,爲要以哪幾個欄爲作爲分羣的依據(欄位相同的數值僅會取出一筆)。
13118
	#$conf["mainGroupBy"],字串陣列,爲要以哪幾個欄爲作爲分羣的依據(欄位相同的數值僅會取出一筆)。
13119
	#$conf["mainGroupBy"]=array();
13119
	#$conf["mainGroupBy"]=array();
13120
	#$conf["mainOrderItem"],字串,組好的資料的排序項目依據
13120
	#$conf["mainOrderItem"],字串,組好的資料的排序項目依據
13121
	#$conf["mainOrderItem"]="";
13121
	#$conf["mainOrderItem"]="";
13122
	#$conf["mainAscORdesc"],字串,組好的資料要低增還是遞減排序,asc爲遞增;desc爲遞減,預設不做處理.
13122
	#$conf["mainAscORdesc"],字串,組好的資料要低增還是遞減排序,asc爲遞增;desc爲遞減,預設不做處理.
13123
	#$conf["mainAscORdesc"]="";	
13123
	#$conf["mainAscORdesc"]="";
13124
	#參考資料:
13124
	#參考資料:
13125
	#無.
13125
	#無.
13126
	#備註:
13126
	#備註:
13127
	#無.
13127
	#無.
13128
	*/
13128
	*/
Line 13177... Line 13177...
13177
		$conf["variableCheck.checkArguments"]["referenceVarKey"]="variableCheck.checkArguments";
13177
		$conf["variableCheck.checkArguments"]["referenceVarKey"]="variableCheck.checkArguments";
13178
		#可省略參數:
13178
		#可省略參數:
13179
		#$conf["variableCheck.checkArguments"]["canBeEmptyString"],必填變數內容如果是空字串就不能算是有設置的話,請設為"false",預設爲"false"。
13179
		#$conf["variableCheck.checkArguments"]["canBeEmptyString"],必填變數內容如果是空字串就不能算是有設置的話,請設為"false",預設爲"false"。
13180
		#$conf["variableCheck.checkArguments"]["canBeEmptyString"]="false";
13180
		#$conf["variableCheck.checkArguments"]["canBeEmptyString"]="false";
13181
		#$conf["variableCheck.checkArguments"]["skipableVariableName"],爲可省略參數的變數名稱陣列,形態爲陣列變數,例如: $conf["skipableVariableName"] = array("id","account","password");
13181
		#$conf["variableCheck.checkArguments"]["skipableVariableName"],爲可省略參數的變數名稱陣列,形態爲陣列變數,例如: $conf["skipableVariableName"] = array("id","account","password");
13182
		$conf["variableCheck.checkArguments"]["skipableVariableName"]=array("columnYouWant","mainDtWhereColName","mainDtWhereColVal","mainDtWhereColCombine","mainWhereColumnOperator","mainWhereColumnAndOr","mainWhereIn","mainWhereNotIn","mainNumberStart","mainNumLimit","mainGroupBy","mainOrderItem","mainAscORdesc");
13182
		$conf["variableCheck.checkArguments"]["skipableVariableName"]=array("linkColumnName","columnYouWant","mainDtWhereColName","mainDtWhereColVal","mainDtWhereColCombine","mainWhereColumnOperator","mainWhereColumnAndOr","mainWhereIn","mainWhereNotIn","mainNumberStart","mainNumLimit","mainGroupBy","mainOrderItem","mainAscORdesc");
13183
		#$conf["variableCheck.checkArguments"]["skipableVariableType"],爲可省略參數的變數名稱陣列,形態爲陣列變數,例如: $conf["skipableVariableType"] = array("string",integer,"double"); 
13183
		#$conf["variableCheck.checkArguments"]["skipableVariableType"],爲可省略參數的變數名稱陣列,形態爲陣列變數,例如: $conf["skipableVariableType"] = array("string",integer,"double"); 
13184
		$conf["variableCheck.checkArguments"]["skipableVariableType"]=array("array","array","array","array","array","array","array","array","string","string","array","string","string");
13184
		$conf["variableCheck.checkArguments"]["skipableVariableType"]=array("array","array","array","array","array","array","array","array","array","string","string","array","string","string");
13185
		#$conf["variableCheck.checkArguments"]["skipableVarDefaultValue"],字串陣列,每個不存在的可省略變數要初始化為什麼,"null"代表不指定.
13185
		#$conf["variableCheck.checkArguments"]["skipableVarDefaultValue"],字串陣列,每個不存在的可省略變數要初始化為什麼,"null"代表不指定.
13186
		#$conf["variableCheck.checkArguments"]["skipableVarDefaultValue"]=array("");
13186
		$conf["variableCheck.checkArguments"]["skipableVarDefaultValue"]=array(array(),null,null,null,null,null,null,null,null,null,null,null,null,null);
13187
		$checkResult=variableCheck::checkArguments($conf["variableCheck.checkArguments"]);
13187
		$checkResult=variableCheck::checkArguments($conf["variableCheck.checkArguments"]);
13188
		unset($conf["variableCheck.checkArguments"]);
13188
		unset($conf["variableCheck.checkArguments"]);
13189
		
13189
		
13190
		#如果檢查出錯
13190
		#如果檢查出錯
13191
		if($checkResult["status"]=="false"){
13191
		if($checkResult["status"]=="false"){
Line 13473... Line 13473...
13473
		#如果有設置 $conf["mainOrderItem"]
13473
		#如果有設置 $conf["mainOrderItem"]
13474
		if(isset($conf["mainOrderItem"])){
13474
		if(isset($conf["mainOrderItem"])){
13475
			
13475
			
13476
			#設置參數
13476
			#設置參數
13477
			$conf["db::fastGetDbData"]["orderItem"]=$conf["mainOrderItem"];#爲排序的項目依據,若要用隨機抽樣,可以用"rand()",可省略。
13477
			$conf["db::fastGetDbData"]["orderItem"]=$conf["mainOrderItem"];#爲排序的項目依據,若要用隨機抽樣,可以用"rand()",可省略。
13478
					
13478
			
13479
			}#if end
13479
			}#if end
13480
		
13480
		
13481
		#如果有設置 $conf["mainAscORdesc"]
13481
		#如果有設置 $conf["mainAscORdesc"]
13482
		if(isset($conf["mainAscORdesc"])){
13482
		if(isset($conf["mainAscORdesc"])){
13483
			
13483
			
Line 13544... Line 13544...
13544
			unset($merged[$i]);
13544
			unset($merged[$i]);
13545
			
13545
			
13546
			}#for end
13546
			}#for end
13547
		
13547
		
13548
		#var_dump($merged);exit;
13548
		#var_dump($merged);exit;
13549
						
13549
		
13550
		#針對每個 $conf["linkColumnName"] 
13550
		#針對每個 $conf["linkColumnName"] 
13551
		foreach($conf["linkColumnName"] as $linkCondition){
13551
		foreach($conf["linkColumnName"] as $linkCondition){
13552
			
13552
			
13553
			#如果不是陣列
13553
			#如果不是陣列
13554
			if(gettype($linkCondition)!=="array"){
13554
			if(gettype($linkCondition)!=="array"){
Line 13731... Line 13731...
13731
			
13731
			
13732
			#初始化儲存既有的欄位名稱
13732
			#初始化儲存既有的欄位名稱
13733
			$mergedColName=array_keys($merged);
13733
			$mergedColName=array_keys($merged);
13734
					
13734
					
13735
			#取得既有的欄位的數量
13735
			#取得既有的欄位的數量
13736
			$mergedColCount=count($mergedColName);		
13736
			$mergedColCount=count($mergedColName);
13737
									
13737
			
13738
			#主表有幾筆資料就執行幾次
13738
			#主表有幾筆資料就執行幾次
13739
			foreach($merged[$oriCol] as $index=>$mainColVal){
13739
			foreach($merged[$oriCol] as $index=>$mainColVal){
13740
				
13740
				
13741
				#函式說明:
13741
				#函式說明:
13742
				#一次取得資料庫、表的資料
13742
				#一次取得資料庫、表的資料
Line 13763... Line 13763...
13763
				#如果有設置次表的密碼
13763
				#如果有設置次表的密碼
13764
				if(isset($conf["dbInfo"][$linkDb]["dbPass"])){
13764
				if(isset($conf["dbInfo"][$linkDb]["dbPass"])){
13765
					
13765
					
13766
					$conf["db::fastGetDbData"]["dbPassword"]=$conf["dbInfo"][$linkDb]["dbPass"];#爲要存取dbServer的密碼
13766
					$conf["db::fastGetDbData"]["dbPassword"]=$conf["dbInfo"][$linkDb]["dbPass"];#爲要存取dbServer的密碼
13767
					
13767
					
13768
					}#if end			
13768
					}#if end
13769
				
13769
				
13770
				$conf["db::fastGetDbData"]["WhereColumnName"]=array($linkCol);#用於判斷語句的欄位項目陣列。
13770
				$conf["db::fastGetDbData"]["WhereColumnName"]=array($linkCol);#用於判斷語句的欄位項目陣列。
13771
				$conf["db::fastGetDbData"]["WhereColumnValue"]=array($mainColVal);#用於判斷語句的欄位數值陣列,若與LIKE搭配,則可以在關鍵自字串的左右名加上「%」符號,這樣就可以搜尋具有該字串的內容。
13771
				$conf["db::fastGetDbData"]["WhereColumnValue"]=array($mainColVal);#用於判斷語句的欄位數值陣列,若與LIKE搭配,則可以在關鍵自字串的左右名加上「%」符號,這樣就可以搜尋具有該字串的內容。
13772
				#$conf["WhereColumnCombine"]=array("");#用於判斷語句當中需要()起來的判斷式,須爲陣列值,"s"代表「(」,"e"代表「)」 ,若無則須設爲""。
13772
				#$conf["WhereColumnCombine"]=array("");#用於判斷語句當中需要()起來的判斷式,須爲陣列值,"s"代表「(」,"e"代表「)」 ,若無則須設爲""。
13773
				#$conf["WhereColumnOperator"]=array("");#用於判斷語句的比較符號陣列,可以用的符號有「"="、"!="、">"、"<"、"LIKE"、"NOT LIKE"」,預設都爲「=」。
13773
				#$conf["WhereColumnOperator"]=array("");#用於判斷語句的比較符號陣列,可以用的符號有「"="、"!="、">"、"<"、"LIKE"、"NOT LIKE"」,預設都爲「=」。
Line 13808... Line 13808...
13808
						foreach($fastGetDbData["dataColumnName"] as $linkedColName){
13808
						foreach($fastGetDbData["dataColumnName"] as $linkedColName){
13809
							
13809
							
13810
							#給予NULL
13810
							#給予NULL
13811
							$newMerged[$linkDb.".".$linkDt.".".$linkedColName][$index]=NULL;
13811
							$newMerged[$linkDb.".".$linkDt.".".$linkedColName][$index]=NULL;
13812
							
13812
							
13813
							}#foreach end					
13813
							}#foreach end
13814
						
13814
						
13815
						}#if end
13815
						}#if end
13816
						
13816
						
13817
					}#if end
13817
					}#if end
13818
					
13818
					
Line 13837... Line 13837...
13837
						for($j=0;$j<$mergedColCount;$j++){
13837
						for($j=0;$j<$mergedColCount;$j++){
13838
							
13838
							
13839
							#複製既有的欄位資料
13839
							#複製既有的欄位資料
13840
							$newMerged[$mergedColName[$j]][$newMergedDataIndex]=$newMerged[$mergedColName[$j]][$index];
13840
							$newMerged[$mergedColName[$j]][$newMergedDataIndex]=$newMerged[$mergedColName[$j]][$index];
13841
							
13841
							
13842
							}#for end							
13842
							}#for end
13843
							
13843
							
13844
						#次表有幾個欄位就執行幾次
13844
						#次表有幾個欄位就執行幾次
13845
						foreach($fastGetDbData["dataColumnName"] as $linkedColName){	
13845
						foreach($fastGetDbData["dataColumnName"] as $linkedColName){	
13846
							
13846
							
13847
							#加上新的欄位資料
13847
							#加上新的欄位資料
13848
							$newMerged[$linkDb.".".$linkDt.".".$linkedColName][$newMergedDataIndex]=$fastGetDbData["dataContent"][$linkedColName][$i];
13848
							$newMerged[$linkDb.".".$linkDt.".".$linkedColName][$newMergedDataIndex]=$fastGetDbData["dataContent"][$linkedColName][$i];
13849
												
13849
							
13850
							}#foreach end
13850
							}#foreach end
13851
						
13851
						
13852
						}#for end					
13852
						}#for end
13853
						
13853
						
13854
					}#else end
13854
					}#else end
13855
					
13855
					
13856
				}#foreach end
13856
				}#foreach end
13857
						
13857
			
13858
			}#foreach end
13858
			}#foreach end
13859
		
13859
		
13860
		#如果有設置要的欄位
13860
		#如果有設置要的欄位
13861
		if(isset($conf["columnYouWant"])){
13861
		if(isset($conf["columnYouWant"])){
13862
			
13862