如果声明适当的公式

时间:2016-04-10 01:14:52

标签: php mysql

我在这里看过if语句。我发现了一些事情,但我在找出正确的陈述公式时遇到了问题。

我在数据库中有2个表,包含以下2个字段

table 1
rct_app_id

table 2
uid

现在如果uid字段与我希望它的rct_app_id字段匹配

echo "Green Light";

如果不匹配

echo "No Go"

这是我的公式

<?php

      $user_id = $_SESSION['uid'];

      $sql = "SELECT * FROM recruits WHERE rct_app_uid = {$user_id}";
      $result = query($sql);

      $rct_app_id = ['rct_app_id'];

      if ($rct_app_id == 'uid') {

          echo  "Green Light";

      } else {

          echo  "No Go";
    }

?>

function query($query)
{
    global $connection;
    return mysqli_query($connection, $query);
}

3 个答案:

答案 0 :(得分:1)

您需要修复两行。 $ result包含数据库的结果,因此它是rct_app_id数据的来源。然后,当您进行比较时,您需要比较两个变量。

 $rct_app_id = $result['rct_app_id'];

  if ($rct_app_id == $user_id) {

您拥有它的方式,您将数组与字符串进行比较。

执行此操作时:

  $rct_app_id = ['rct_app_id'];

您实际上将变量$ rct_app_id设置为等于具有一个元素的数组,尽管语法不正确。相反,您需要获取从数据库返回的数组的一个元素。这假设您有一个名为query()的函数正常工作并返回一个数组。

相反,我们需要将变量设置为等于数组的一个元素,如下所示:

$rct_app_id = $result['rct_app_id'];

然后,当你做这样的比较时:

  if ($rct_app_id == 'uid') {

你是说变量$ rct_app_id是否等于字符串uid,它不是。变量总是以$ in php开头,字符串被引用。在脚本前面设置的变量是$ user_id(来自SESSION),所以我们需要与之比较:

  if ($rct_app_id == $user_id)

答案 1 :(得分:1)

试试这个。但请记住,人们很难弄清楚一点一点地发生什么事情,这会让你更难以帮助你。

<?php

          $user_id = $_SESSION['uid'];

          $sql = "SELECT * FROM recruits WHERE rct_app_uid = {$user_id}";
          $result = query($sql);

          while(($row = mysqli_fetch_assoc($result))!=false){

              $rct_app_id = $row['rct_app_id'];

          if ($rct_app_id == $user_id) {

              echo  "Green Light";

          } else {

              echo  "No Go";
        }

     }
      }     
    ?>

答案 2 :(得分:0)

更新:您已经指定了您的sql lib,我已编辑了以下答案以使用您更新的答案。

由于您没有指定库,我会在假设您使用mysql的情况下编写答案并编辑代码。虽然所有查询和返回函数都使用类似的语法,即:mysql_fetch_assoc()= mysqli_fetch_assoc(),pg_fetch_assoc(postgres)。

<?php

      $user_id = $_SESSION['uid'];

      $sql = "SELECT * FROM recruits WHERE rct_app_uid = {$user_id}";
      $result = query($sql); //What type of query runs as just query()? mysql_query would go here if this was mysql. Some Libraries offer this as a function, but since you didn't specify the library, I'm going to change it to mysql_query and proceed as if you're using mysql.

      //$rct_app_id = ['rct_app_id'];//This will never work.

       //You need this:
       while($row=mysqli_fetch_assoc($result)){
          //We only expect one result
          $rct_app_id=$row['rct_app_id'];
       }

      if ($rct_app_id == 'uid') {

          echo  "Green Light";

      } else {

          echo  "No Go";
    }
function query($query)
{
    global $connection;
    return mysqli_query($connection, $query);
}

?>