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

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

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

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;}

}
C
1