询问一个值是否与另一个值不相同,它总是在php if语句中回答true


Asking if a value is not the same as another and it always answers true in php if statement

我看到了一个答案,看起来它可能会解决这个问题,但它看起来不太有希望,因为一切似乎都表明我的代码是好的。我试图创建一个动态页面,它加载某些信息,如果满足某些条件。除了我的进度部分,一切都显示正常,工作正常。谁能告诉我为什么不行?

<? 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,它将重定向到admin管理页面。

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%完成。这是一个问题,因为下一个阶段是支付阶段,但每次它说它是真的时,它都不会加载。

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

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

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