下面是我的PHP代码。我将从数据库中检索值,并将其舍入最近的10 (仅在10以上)。本列中数据库中的所有值都是整数。
<?PHP
@$Teach_ID = $_POST['txtteachID'];
@$Class_ID = $_POST['txtclass'];
@$BookingDate = $_POST['txtbookingdate'];
@$BookingPeriod = $_POST['txtperiod'];
require_once('../BookingSystem/DBconnect.php');
$capacity = 'SELECT ClassSize FROM classes WHERE ClassID = 1';
$result = $dbh->query($capacity);
$result = (int)$result;
function ceiling($number, $significance = 1)
{
return ( is_numeric($number) && is_numeric($significance) ) ? (ceil($number/$significance)*$significance) : false;
}
}
if ($result->num_rows > 0) {
echo ceiling($result, 10);
}
?>错误描述

我漏掉了什么明显的东西吗?
发布于 2016-11-29 09:49:04
您需要循环遍历$result变量,这是一个mysqli_result对象,以获得它的不同条目。
使用mysqli_fetch_assoc获取值,其结尾如下所示:
$capacity = 'SELECT ClassSize FROM classes WHERE ClassID = 1';
$result = $dbh->query($capacity);
function ceiling($number, $significance = 1)
{
return ( is_numeric($number) && is_numeric($significance) ) ? (ceil($number/$significance)*$significance) : false;
}
}
while ($row = $result->fetch_assoc()) {
// if ($result->num_rows > 0) { /* I think this condition is not needed anymore */
$value = intval($row['ClassSize'], 10); // will convert the string from database to an int in base 10
echo ceiling($value, 10); /* I suppose you wanted to use the ClassSize key since it's the one you query */
// }
}发布于 2016-11-29 09:44:01
你不能做这个$result = (int)$result;。你必须激怒每一行,然后提取数据。
https://stackoverflow.com/questions/40862425
复制相似问题