0

我看到一个看起来可能会解决它的答案,但在这里看起来并不乐观,因为一切似乎都表明我的代码很好。我正在尝试创建一个动态页面,如果满足某些条件,它会在其中加载某些信息。除了我的进度部分,一切都显示出来并且工作正常。有人可以告诉我为什么这不起作用吗?

<? php require_once("session.php"); ?> 
<? php require_once("connection.php");
$email = $_SESSION['email'];
$query = mysql_query("SELECT * FROM progress WHERE email = '$email'");
$row = mysql_fetch_array($query);
if ($row['admin'] == 0) {
    echo...

然后它用动态内容回显我的页面,如果该值在底部返回 true,它会重定向到管理员管理页面。

if ($row['progress'] !== 100) {
    $contract = $row['location'];
    $progress = $row['progress'];
    $mockup = $row['mockup'];
    echo "<a href=\"customer.php\">Contact</a><br />";
    echo "<a href=\"$contract\">View Contract</a><br />";
    echo "<a href=\"$mockup\">View Mock Up</a><br />";
    echo "<p>Progress: " . $progress . "%</p>";
}

此值始终显示数据库中的数字不是 100,即使页面回显它已 100% 完成。这是一个问题,因为下一个阶段是付款阶段,但每次它都说是真的时它不会加载。

4

1 回答 1

4

您正在进行类型安全比较,即您正在检查以确保不仅是相同的值,而且是相同的类型$row['progress']100

从数据库中出来的值总是最初是字符串,而是100整数。

检查数据库值是否为数字,is_numeric然后使用intval,然后进行类型安全比较。

于 2013-05-16T20:45:48.943 回答