PHP将查询结果解释为0

PHP将查询结果解释为0,php,mysql,Php,Mysql,我遇到了一个奇怪的问题,我想解决这个问题已经有一段时间了,但是找不到任何解决办法 我正在生成一些包含信息的行,每个行都包含一个复选框。我用PHP编写了以下代码,用于检查certrain条目是否存在,如果存在,则选中复选框 $sql = "SELECT COUNT(*) anz FROM jubilaeum WHERE jahr='".$Jahr."' AND mon='".$num."' AND AdrNr='".$RS1_row[&q

我遇到了一个奇怪的问题,我想解决这个问题已经有一段时间了,但是找不到任何解决办法

我正在生成一些包含信息的行,每个行都包含一个复选框。我用PHP编写了以下代码,用于检查certrain条目是否存在,如果存在,则选中复选框

$sql = "SELECT COUNT(*) anz FROM jubilaeum WHERE jahr='".$Jahr."' AND mon='".$num."' AND AdrNr='".$RS1_row["AdrNr"]."' AND type='1'";
$rs_erledigt = $db->prepare($sql);
$rs_erledigt->execute();
$row = $rs_erledigt->fetch();
$anz = $row["anz"];
代码生成以下SQL查询:

SELECT COUNT(*) anz FROM jubilaeum WHERE jahr='2019' AND mon='5' AND AdrNr='14061' AND type='1'
现在我使用一个基本的IF来检查是否有任何记录,这样我就可以选中一个复选框

<input type="checkbox" name="mychk" id="mychk" value="somevalue" <?php if($anz>0) echo "checked"; ?> />
所有在我的数据库中有正确条目的复选框都被选中,除了第一个生成的复选框外,我可以随意交换复选框,第一个复选框永远不会被选中。 我试图在IF中直接使用$row[Anz],但没有解决问题

我认为PHP不能正确解释查询返回的值,但我不知道如何解决这个问题

有没有人遇到过类似的问题,可以帮我解决? 我是新来这里发帖的,所以如果你需要更多信息,请告诉我。 提前谢谢

编辑:我刚刚尝试将查询从COUNT*更改为ifCOUNT*>0、'ja'、'nein',同时将if更改为if$anz==ja
澳新银行的价值仍然是空的。

我找到了解决方案。我的问题是我的问题的第二次获取。删除后,一切正常。

您的查询是否在代码中失败?尝试var_dump$anz,看看你是否真的得到了你想要的。使用var_dump检查$anz实际包含的内容。如果它不包含任何内容,请对$row执行相同的操作,以查看它是否包含您期望的开头内容。尝试var_dump$row以查看它是否是您期望的内容。也许您实际上只有一个$row[0]值……而且,您是否在循环中执行此操作,为每个复选框进行额外的数据库查询?“循环中的查询”是一个常见的性能问题,应该尽可能避免。这可能在单个查询中完成,如果您添加了GROUPBY子句。顺便说一句,您应该学会使用参数化查询,而不是将变量替换到SQL中。