Php mysql数据库的更新逻辑存在问题
我有下面的PHP表单,它发回mysql数据库。我的问题是更新查询似乎有效,但总是被“checked”覆盖。我要做的是检查从数据库中获取当前值,然后如果post中有值,则获取该值。现在…为什么这不起作用?当我检查它是否在POST中时,是否需要一个else子句?如果是这种情况,我是否需要使用$checkDeleted=“”;)初始化变量 编辑:好的,我已经设法让这项工作,但只有在更改为之后 $checkDeleted=在数组中('deleted',$checkbox)?'勾选“:” 根据下面的答案,但这仍然不起作用。为了让它工作,我必须删除数据库查询,并将其替换为submitinfo分支中的一个查询,以及EditStatusData分支中的一个查询……为什么?为什么不可能只有一个查询Php mysql数据库的更新逻辑存在问题,php,sql,mysql,Php,Sql,Mysql,我有下面的PHP表单,它发回mysql数据库。我的问题是更新查询似乎有效,但总是被“checked”覆盖。我要做的是检查从数据库中获取当前值,然后如果post中有值,则获取该值。现在…为什么这不起作用?当我检查它是否在POST中时,是否需要一个else子句?如果是这种情况,我是否需要使用$checkDeleted=“”;)初始化变量 编辑:好的,我已经设法让这项工作,但只有在更改为之后 $checkDeleted=在数组中('deleted',$checkbox)?'勾选“:” 根据下面的答案,
if($cmd=="submitinfo") {
$getformdata = $con->query("select ARTICLE_NO from STATUS where ARTICLE_NO = '$pk'");
while ($row = mysqli_fetch_assoc($getformdata)) {
$ARTICLE_NO = $row['ARTICLE_NO'];
}
if ($ARTICLE_NO == null) { etc
及
这仅在您获取数据时有效:
$getformdata = $con->query("select ARTICLE_NO, deleted from STATUS where ARTICLE_NO = '$pk'");
在您的代码中,如果您的请求是POST,则不会设置$pk。您还应该转义此行中的$pk变量,因为用户可以将他们喜欢的任何数据放入$\u GET['pk']中,这可能会破坏您的SQL查询 这与你的另一个问题几乎相同 代码没有问题,它完全按照您的要求工作 我要做的是从数据库中获取当前值,然后如果post中有值,则获取该值 案例1:不带勾号的html表单
if (in_array('deleted', $checkboxes)) $checkDeleted = 'checked';
用这个
$checkDeleted = in_array('deleted', $checkboxes) ? 'checked' : '';
“($_GET[“pk”])”行只有在它是GET请求时才为真。此外,pk将始终通过GET设置,因为页面始终使用pk参数调用。需要注意清理..因此,要使其工作,数据库查询必须在检查它是否在数组中之后进行?在上面的示例中,如果它不在数组中,我实际上正在尝试将字段设置为“”,那么为什么它不工作呢?
$getformdata = $con->query("select ARTICLE_NO, deleted from STATUS where ARTICLE_NO = '$pk'");
if (in_array('deleted', $checkboxes)) $checkDeleted = 'checked';
$checkDeleted = in_array('deleted', $checkboxes) ? 'checked' : '';