我的网站上有一个简短的 MySQL 查询:
...
for($i=0;$i<$sql->getRows();$i++) {
$id = $sql->getValue("id");
$name = $sql->getValue("name");
}
有没有办法通过 if 语句获取查询中的每个奇数行(每隔两行!)?
例如
for($i=0;$i<$sql->getRows();$i++) {
$id = $sql->getValue("id");
$name = $sql->getValue("name");
if(ROW = ODD) {
// DO SOMETING
} else {
// DO SOMETING ELSE
}
}
最佳答案
假设奇数是除以 2 后无法返回整数的数字,您可以尝试如下操作:
/**
*
* @param int $rowNumber
* @return bool event number
*/
function isEven($rowNumber){
$r = $rowNumber/2;
return ctype_digit((string) $r);
}
for($i=0;$i<$sql->getRows();$i++){
if(isEven($i)){
//do even code access the rowdata with ro
}
else{
//do odd code
}
}
如果字符串中的所有字符都是数字,ctype_digit()
将返回 true。如果是奇数,结果将包含小数点,因此返回 false。
根据 @DrKey 评论,他是对的,一个更干净的 isEven 函数看起来像
/**
*
* @param int $rowNumber
* @return bool event number
*/
function isEven($rowNumber){
return $rowNumber % 2 == 0;
}
关于php - MySQL:通过if语句选择奇数行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42940255/