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

询问一个值是否与另一个值不同,在php if语句中总是回答true,php,if-statement,Php,If Statement,我看到了一个答案,看起来它可能解决了这个问题,但在这里看,它看起来不太有希望,因为一切似乎都表明我的代码是好的。我试图创建一个动态页面,如果满足某些条件,它将加载某些信息。除了我的进度部分,一切都很好。有人能告诉我为什么这不起作用吗 <? php require_once("session.php"); ?> <? php require_once("connection.php"); $email = $_SESSION['email']; $query = mysql_q

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

<? 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...


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

来自数据库的值最初总是字符串,而
100
是整数


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

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

来自数据库的值最初总是字符串,而
100
是整数


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

100!='100'.
$row['progress']
包含整数还是字符串?它包含整数100!='100'.
$row['progress']
包含整数还是字符串?它包含一个整数“从数据库中出来的值总是最初的字符串”=>我知道,只是强调一下,所有数据库中的所有数据无论以何种方式都是字符串,这不是一个一般性的说法,因为它可能会被误解(其他人,OP可能会在寻找答案时找到这个答案,认为这是一个友好的脚注,我不是不同意你)。.对于
mysql\ucode>AFAIK,你完全正确。谢谢你的帮助。我没有想到我是如何通过数字处理true和false的,只是不明白为什么100不同,但它成功了。“从数据库中出来的值最初总是字符串”我知道,只是说这不是一般的声明,所有的数据库中的任何数据都是字符串,因为它可能被误解(其他人,那么OP可能会在寻找答案时找到这个答案,认为这是一个友好的脚注,我不是不同意你)。.For
mysql\ucode>AFAIK你完全正确。谢谢你的帮助。我没有想到我是如何通过数字处理真与假的,只是不明白为什么100是不同的,但它成功了。
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>";
}