⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 all.php

📁 一款基于PHP的网络日记程序。WikyBlog支持:多用户的 BLOG
💻 PHP
📖 第 1 页 / 共 2 页
字号:
<?phpdefined('WikyBlog') or die("Not an entry point...");//	query class//	BROWSE FUNCTION//	DisplayDefault//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////					QUERY CLASS////--------------------------//	CLASS QUERY//--------------------------//	class query{		var $owner;		var $title;				var $query;		var $fields;		var $field;		var $rowLimit = 5;		var $searchUrl;		var $maxRows; // = 500;				//new		var $useTables = false;		var $currLabel;		var $browseString;		var $numTables = 0;		var $numFields = 0;		var $spaces = array();				var $joinAllTo = false; //could be set to $wbTables['all_files'] or $wbTables['all_search']		var $selectFrom = false;		var $allSelect = array('modified','posted','created','username','ip','keywords','flags');		var $infoSelect = array('owner','uniqLink','dTitle');					//////////////////////////////////////////////////////////////////////////////		//		//	Query Functions		//		//				///	ORDER-BY			function orderBy(){								if( empty($this->field) ){					if( empty($_GET['field']) ){						reset($this->fields);						$this->field = key($this->fields);					}elseif( is_numeric($_GET['field']) ){						$temp = array_keys($this->fields);						if( isset($temp[(int)$_GET['field']]) ){							$this->field = $temp[(int)$_GET['field']];						}					}				}				if( empty($this->field) ){					return;				}				$this->query .= ' ORDER BY '.$this->fields[$this->field];								if( isset($_GET['ascending']) && $_GET['ascending'] == 'true' ){					$this->query .= ' ASC ';				}else{					$this->query .= ' DESC ';				}				}						///	LIMIT			function limit(){				$_GET += array('offset'=>0);								if( $_GET['offset'] < 0){					unset($_GET['offset']);				}else{					$a = round($_GET['offset']/$this->rowLimit);					$_GET['offset'] = $a*$this->rowLimit;				}								if( !empty($_GET['offset']) ){					$this->query .= ' LIMIT '. (int)$_GET['offset'] .', '.$this->rowLimit;				}else{					//$_GET['offset'] = 0;					$this->query .= ' LIMIT 0,'.$this->rowLimit;				}			}					///	queryAllFiles			function queryAllFiles(){				global $dbInfo,$lang,$wbTables;				$unused = array();									if( !$this->joinAllTo ){						$this->joinAllTo =& $wbTables['all_files'];						$this->selectFrom =& $wbTables['all_files'];					}								////	Select					$this->query = 'SELECT SQL_CALC_FOUND_ROWS ';					foreach($this->allSelect as $key => $value){						if( is_numeric($key) ){							$this->query .= $this->joinAllTo.'.`'.$value.'`, ';						}else{							$this->query .= $key.' as '.$value.', ';						}					}																				foreach($dbInfo as $space => $info){						if( !isset($info['dbTable']) ){							continue;						}						$this->numTables++;												//row selects						if( is_array($this->useTables) && !isset($this->useTables[$space]) ){							$unused[] = $space;							foreach($this->infoSelect as $tempKey){								$selectA[] = ' "" ';							}													}else{													foreach($this->infoSelect as $tempKey){								if($tempKey === 'dTitle'){									$selectA[] = $this->getDTitle($space);								}else{									$selectA[] = wbData::dbInfo($space,$tempKey);								}							}						}						$fromA[] = $info['dbTable'];						$this->spaces[] = $space;					}										$this->numFields = count($selectA);					$this->query .= implode(', ',$selectA);								////	FROM					$this->query .= ' FROM '.$this->selectFrom;										if( count($fromA) === 1){						$this->query .= ' INNER JOIN '.$fromA[0].' ON '.$from[0].'.`file_id` = '.$this->joinAllTo.'.`file_id` ';					}else{						foreach($fromA as $value){							$this->query .= ' LEFT JOIN '.$value.' ON '.$value.'.`file_id` = '.$this->joinAllTo.'.`file_id` ';						}					}									////	WHERE .. unused				//		This is actually a fairly efficient solution, EXPLAIN SELECT ... shows us "NOT EXISTS"					$this->query .= ' WHERE 1 ';									//HACK					if( count($fromA) > 1){						$temp = array();						$this->query .= ' AND (';						foreach($fromA as $value){							$temp[] = ' ('.$value.'.`file_id`  IS NOT NULL ) ';						}						$this->query .= implode(' OR ',$temp);						$this->query .= ' ) ';					}										if( count($unused) > 0 ){						foreach($unused as $space){							$this->query .= ' AND '.$dbInfo[$space]['dbTable'].'.`file_id` IS NULL ';						}					}			}						//	Creates SQL statement to create a displayTitle for each row			//			//			function getDTitle($space){				global $lang,$dbInfo;								$format = wbData::dbInfo($space,'dTitle');								$tempA = array();				foreach( $format as $piece => $how){					if( $how == 0){						$tempA[] = $piece;					}else{						$tempA[] = '"'.$lang[$piece].'"';					}				}								return ' CONCAT( '.implode($tempA,', ').') as dTitle ';			}									//Get The Values From a queryAllFiles type of request			function queryAllResult(&$row){					$numEach = count($this->infoSelect);					$startIndex = count($row) - ($numEach*$this->numTables);					$i = 0;					while( empty($row[$startIndex]) && $startIndex < count($row) ){						$i++;						$startIndex+=$numEach;					}					$row['space'] = $this->spaces[$i];															//rowLabels					$i = 0;										foreach($this->infoSelect as $tempKey){						$row[$tempKey] =& $row[$startIndex+($i++)];					}															$i=0;					foreach($this->allSelect as $key => $value){						if( is_numeric($key) ){							$row[$value] =& $row[$i++];						}else{							$row[$value] =& $row[$i++];						}					}			}							//////////////////////////////////////////////////////////////////////////////		//		//	Link Functions		//		//					//setLinks()			//	must set $this->currLabel at least			function setLinks(&$currentPageNum,&$rowsFound,&$tabLabel){				global $dbObject;								$maxIndex = ceil($rowsFound/$this->rowLimit);				$maxIndex = max(1,$maxIndex);//set values for at least first page								//$dbObject->links				$text='';				$i = max(1,($currentPageNum - 2));				$finishIndex = min(($i+4),$maxIndex);				$finishIndex = max($finishIndex,$currentPageNum);												while($i <= $finishIndex){					if( $i == 1){						$label = $tabLabel;					}else{						$label = $tabLabel.' ('.$i.')';					}					if($i == $currentPageNum){						$this->currLabel = $label;					}										$newOffset = ($i-1) * $this->rowLimit;					$dbObject->links[$label] = browseLink2($this->searchUrl,$this->searchUrlLow,$newOffset,$this->browseString);					$i++;				}								//Text links at the bottom of the search							$i = max(1,($currentPageNum - 7));				$finishIndex = min(($i+13),$maxIndex);								if( $i > 1){					$text = ' '.browseLink2($this->searchUrl,$this->searchUrlLow,0,$this->browseString,1);					if( $i > 2 ){						$text .= ' ... ';					}				}								while($i <= $finishIndex){					$newOffset = ($i-1) * $this->rowLimit;					if($currentPageNum === $i){						$text .= ' '.$i.' ';					}else{						$text .= ' '.browseLink2($this->searchUrl,$this->searchUrlLow,$newOffset,$this->browseString,$i);					}					$i++;				}								$last = ceil($rowsFound/$this->rowLimit);				if($i <= $last){					$lastOffset = ($last-1) * $this->rowLimit;					$text .= ' ... '.browseLink2($this->searchUrl,$this->searchUrlLow,$lastOffset,$this->browseString,$last);				}				return $text.' ';			}					function browseString($overWrite=false){				if( !is_array($_GET) ){					return '';				}				$string = '';				$sep = '';				if( is_array($overWrite) ){					$overWrite = array_merge($_GET,$overWrite); //later values overwrite!				}else{					$overWrite = $_GET;				}				if( isset($this->overWrite) && is_array($this->overWrite) ){					$overWrite = array_merge($overWrite,$this->overWrite);				}								return arrayToBrowseString($overWrite);			}						//////////////////////////////////////////////////////////////////////////////		//		//	Display Functions			//			function mysqlFetch(&$result){				return mysql_fetch_row($result);			}						//0			function displayNumbers(&$from,&$to,&$rowsFound,&$prev,&$next){

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -