丢个PHP+MySQL的数据读取函数出来

C 2022-3-1 1016

因为换JS+MongoDB,这玩意用不到了,丢出来留个纪念。

核心部分主要还是最后那句:

foreach(array($b?array_intersect($b,array_merge(_USER('b')?:array(),($u&&$u==_USER('u'))?array(0,1,2,3,4,5,6,7):array(0))):array(0),(!$u&&_USER('u'))?array_diff(array_intersect($b,array(5,6,7)),_USER('b')?:array()):array()) as $_a=>$__){foreach($__ as $_b){$sql[]='SELECT `_` FROM `w:'.($v?'v':'').($u||$_a?'u':'').'` FORCE INDEX (`'.(($u||$_a)?'u_':'').($v?'v_':'').'b_'.($c?'c_':'d_').'_`) WHERE '.(($u||$_a)?'`u`='.($u||_USER('u')).' AND':'').' '.($v?'`v`='.$v.' AND':'').' `b`='.$_b.' '.(($c||$d)?'AND ( ('.($c?'`c`':'`d`').($asc?'>':'<').($w?'':'=').($c?:$d).') '.(($w?'OR ('.($c?'`c`='.$c:'`d`='.$d).' AND `w`'.($asc?'>':'<').$w.')':'').' )'):'').' ORDER BY '.($asc?($c?'`c`':'`d`').' ASC, `_` ASC':($c?'`c`':'`d`').' DESC, `_` DESC').' LIMIT '.$qty;}}

完整函数:

function _W_LST($a){
$_SQL=_INIT();
$v=_SAFE('i',$a['v']);
$u=_SAFE('i',$a['u']);
if(!$v&&!$u){return array();};
$b=_SAFE('k',$a['b']); //前端直接传入EXT后的B(JS计算扩展)
$d=_SAFE('i',$a['d']);
$c=_SAFE('i',$a['c']);
$w=_SAFE('i',$a['w']);
$f=_SAFE('f',$a['f']);
$qty=strtok($f,'.');
if(!$qty){$qty=_W_QTY;}
elseif($qty>_W_MAX){$qty=_W_MAX;}
$asc=strtok('.');
$sql=array();
//读取某话题,即便没有权限,也要将用户自己发的内容也读取出来,所以用$u||$_a。
foreach(array($b?array_intersect($b,array_merge(_USER('b')?:array(),($u&&$u==_USER('u'))?array(0,1,2,3,4,5,6,7):array(0))):array(0),(!$u&&_USER('u'))?array_diff(array_intersect($b,array(5,6,7)),_USER('b')?:array()):array()) as $_a=>$__){
foreach($__ as $_b){$sql[]='SELECT `_` FROM `w:'.($v?'v':'').($u||$_a?'u':'').'` FORCE INDEX (`'.(($u||$_a)?'u_':'').($v?'v_':'').'b_'.($c?'c_':'d_').'_`) WHERE '.(($u||$_a)?'`u`='.($u||_USER('u')).' AND':'').' '.($v?'`v`='.$v.' AND':'').' `b`='.$_b.' '.(($c||$d)?'AND ( ('.($c?'`c`':'`d`').($asc?'>':'<').($w?'':'=').($c?:$d).') '.(($w?'OR ('.($c?'`c`='.$c:'`d`='.$d).' AND `w`'.($asc?'>':'<').$w.')':'').' )'):'').' ORDER BY '.($asc?($c?'`c`':'`d`').' ASC, `_` ASC':($c?'`c`':'`d`').' DESC, `_` DESC').' LIMIT '.$qty;}
}
最新回复 (0)
返回
发新帖