当值为TRUE时,为什么IF语句显示为FALSE?

时间:2019-06-07 00:22:30

标签: php

我正在建立登录系统,所以当有人注册后,它将自动在数据库中为他创建一行,其列为(状态,用户名,用户ID),自动填充用户行,状态= 1,用户名=用户名等,我输入如果用户状态为1,则必须显示我直接放置的默认图像,并按需要显示

但是,如果他按下按钮来更改其图像并插入一个新图像,则状态必须变为0,并且必须将新图像替换为默认图像,因此用户状态变为0,并且所有数据库均已填充,并且默认图像已按我的意愿显示,但新图像(已插入)未显示,我不知道为什么,

直到我关闭if($image_row = mysqli_fetch_assoc($ress))的if语句,然后在其后放置else(所以它变为false而不是true),然后编写echo "<img src='files/status/0/".$_SESSION['file_new_name']."' width= '500px' height='300px'>";,但是这样做时,一切正常,我看不到数据库和页面中有任何错误,为什么我不理解这种情况?

我不想要那样,我需要mysqli_fetch_assoc为真不是假

新图片(不是默认图片)将不会出现:

if($image_row = mysqli_fetch_assoc($ress)) {
  $stat = $image_row['STATUS'];

  $user_name = $image_row['user_name'];
  $user_id = $image_row['user_id'];

  $_SESSION['user_name'] = $user_name;
  $_SESSION['user_id'] = $user_id;

  if($image_row['STATUS'] === 1) {
    echo "<img src='files/status/1/default.png' width='500px' height='300px'>";
  }else {
    echo "<img src='files/status/0/'".$_SESSION['file_new_name'].">";
  }
}

但是,如果我在关闭$image_row = mysqli_fetch_assoc($ress)之后更改并关闭if ($state === 1),那么$image_row = mysqli_fetch_assoc($ress)将为false并且我不希望那样,但是会出现较新的图像,但是我不会了解这一点,我的意思是在该方法中,即使我注册并登录也不会显示任何错误,它显示的是默认图片且状态为= 1,因此$image_row = mysqli_fetch_assoc($ress)必须为真,但是当我按下按钮{{1}时}本身就变成了虚假,它向我显示了已选择的新图像,并且用户的状态变为0且没有任何错误,我不明白这一点:

$image_row = mysqli_fetch_assoc($ress)

1 个答案:

答案 0 :(得分:0)

快速浏览一下您所说的话。我认为您不了解mysqli_fetch_assoc($ ress)应该做什么。

mysqli_fetch_assoc($ress)从执行的MySQL查询的最后一个结果中获取一行,并返回一个具有一个或多个值的关联数组,具体取决于您的查询,并且永远都不是TRUE。

如果结果中没有剩余可提取的行,则返回FALSE。

$image_row = mysqli_fetch_assoc($ress); // get the row as array

if ($image_row) {
// check if there was a row left to fetch
  $stat = $image_row['STATUS'];
  $user_name = $image_row['user_name'];
  $user_id = $image_row['user_id'];
  $_SESSION['user_name'] = $user_name;
  $_SESSION['user_id'] = $user_id;
  if ($stat == true) {
    // check if status is true (or 1 or "1") 
    echo "<img src='files/status/1/default.png' width='500px' height='300px'>";
  } else {
    echo "<img src='files/status/0/'" . $_SESSION['file_new_name'] . ">";
  }
}