在循环访问数据库中的一些返回数据时,我终于得到了一些工作.有人可以解释一下这件事是如何起作用的吗?我只是想明白为什么这样有效,没有别的.
我特别想知道脚本的这些部分:
($i % $rewardsPerRow == 0)
$i += 1;
($i % $rewardsPerRow == $rewardsPerRow - 1)
Run Code Online (Sandbox Code Playgroud)
这是功能
function displayAvailableRewards() {
$sql = db_res("SELECT * FROM `aaa_rewards_list`");
$rewardsPerRow = '3';
$sCode = '<table>';
if (mysql_num_rows($sql) > 0 ) {
$i = 0;
while ($row = mysql_fetch_array($sql)) {
extract($row);
if ($i % $rewardsPerRow == 0) {
$sCode.= '<tr>';
}
$sCode.= '<td width="200" align="center">';
$sCode.= $row['name'].'<br/>';
$sCode.= '<img src="http://www.huddletogether.com/projects/lightbox2/images/image-2.jpg" height="25" width="35" border="0"><br/>';
$sCode.= $row['desc'].'<br/>Points : '. $row['point_value'];
$sCode.= '</td>';
if ($i % $rewardsPerRow == $rewardsPerRow - 1) {
$sCode.= '</tr>';
}
$i += 1;
}
if ($i % $rewardsPerRow > 0) {
$sCode.= '<td colspan="' . ($rewardsPerRow - ($i % $rewardsPerRow)) . '"></td>';
}
} else {
$sCode.= MsgBox(_t('_rewards_empty_txt'));
}
$sCode.= '</table>';
$this->addCss('rewards.css');
return $sCode;
}
Run Code Online (Sandbox Code Playgroud)
%是模数.它返回余数.
if ($i % $rewardsPerRow == 0) {
$sCode.= '<tr>';
}
Run Code Online (Sandbox Code Playgroud)
执行I/rewardsperrow时,如果余检查为0,即意味着通过数整除其均匀,它应该移动到下一行.
$i += 1 只是为了 i = i + 1