我正在建立登录系统,所以当有人注册后,它将自动在数据库中为他创建一行,其列为(状态,用户名,用户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)
答案 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'] . ">";
}
}