我正在尝试使用链接更改一个列值,如果列值已发布,则将更改为未发布,反之亦然。但问题是只有在条件不起作用的情况下才会发生。
这是链接:
echo "<td><a href='testi.php?change_status={$testi_id}&status={$testi_status}'>Publish / Unpublish</a></td>";
改变状态的PHP代码:
<?php
if(isset($_GET['change_status'])){
$the_status = escape($_GET['status']);
$the_testi_id = escape($_GET['change_status']);
if ($the_status='published'){
$query = "UPDATE testimonial SET testi_status = 'unpublished' WHERE testi_id = $the_testi_id ";
$change_to_sub_query = mysqli_query($connection, $query); }
else if ($the_status='unpublished'){
$query = "UPDATE testimonial SET testi_status = 'published' WHERE testi_id = $the_testi_id ";
$change_to_sub_query = mysqli_query($connection, $query);
}
header("Location: testi.php");
} ?>
答案 0 :(得分:2)
单=
套,双==
次检查,三===
次检查。
当你这样做时
if ($value='foo') {}
它正在做的是检查$value
是否设置为'foo'
,并始终评估为true
。
所以你想改为if ($value == 'foo')
。
在您撰写的内容中,它永远不会评估elseif
,因为if
将始终为真。
供参考,==
和===
//evalates to true
if (1 == true) { ... }
//evaluates to false
if (1 === true) { ... }
//evaluates to true
if (1 === 1) { ... }
//evaluates to true
if (true === true) { ... }