非常奇怪的PHP问题.获胜条件';不要像他们应该的那样适用


Very strange PHP issue. Conditions won't apply as they should

我有一个名为jobs的SQL表,它由一个标题为"jobID"的列组成。作为测试,我需要我的代码让我知道已经输入的jobID是否已经存在于表中。

我现在得到的是,当我输入一个我知道在表中的jobID时,它会返回"OLD",这很好。但当我输入一个新号码时,它根本不会返回任何信息。

if (isset($_GET['customerName']) && isset($_GET['jobID'])) {
            $jobID = $_GET['jobID'];
            $customerName = $_GET['customerName'];
            $result = mysqli_query($con,"SELECT jobID FROM jobs WHERE jobID=$jobID");               
                while($row = mysqli_fetch_array($result)) {
                    $exist = $row['jobID'];
                if (isset($exist)) {
                    echo "OLD";
                    } else {
                    echo "NEW"; 
                } 
            } 
        }

有人能指出为什么会这样吗?我还在SQL表中测试了PHP,看看当我输入一个新数字时,它会返回什么结果,但即使将if函数更改为空测试也不会得到结果。

我试着测试了这一行是否存在,但当条件满足和不满足时,它仍然不会返回两个相反的结果。

整个if(isset)都在while循环中!

试试这个:如果

(isset($_GET['customerName']) && isset($_GET['jobID'])) {
    $jobID = $_GET['jobID'];
    $customerName = $_GET['customerName'];
    $result = mysqli_query($con,"SELECT jobID FROM jobs WHERE jobID=$jobID");   
    while($row = mysqli_fetch_array($result)) {
        $exist = $row['jobID'];
    }
    if (isset($exist)) {
        echo "OLD";
        } else {
        echo "NEW"; 
    } 
}

if (isset($_GET['customerName']) && isset($_GET['jobID'])) {
    $jobID = mysqli_real_escape_string($_GET['jobID']);
    $customerName = $_GET['customerName'];
    $result = mysqli_query($con,"SELECT jobID FROM jobs WHERE jobID=$jobID");
    if (mysqli_num_rows($result) > 0) {
        echo 'OLD';
        $row = mysqli_fetch_array($result);
    } else {
        echo 'NEW';
    }
}

您没有看到任何带有新jobID的内容的原因是,对于新jobID,变量$result为空,因此while循环根本不会运行,因为不满足条件。以下是一种更简单的方法。

if (isset(($_GET['customerName']) && ($_GET['jobID']))) 
{
            $jobID = $_GET['jobID'];
            $customerName = $_GET['customerName'];
            $result = mysqli_query($con,"SELECT jobID FROM jobs WHERE jobID='$jobID'");
            $counter = mysqli_num_rows($result); 
            //$counter counts number of rows if any
        if($counter > 0)
        {
          echo "OLD";
        }   
        else
        {
          echo "NEW";
        }           
}
相关文章: