我知道这里有一些愚蠢的东西,我在这里丢失了,但是每次在下面的代码中执行其他操作时,0会被添加到我的专栏grupa_id(在评论#prikaz plana下),实际上它应该从我的其他表中选择最大ID叫grupa。当'如果'发生一切都很好,正确的数据被插入到数据库中,即使在我输入'(选择MAX(id)FROM grupa)'时也会插入正确的数据。而不是变量$ dataId。谁能看到我在这里失踪了什么?
$dataId;
$Data = $ks->getQuery("SELECT id, naziv from grupa WHERE naziv='$postNazivGrupe'");
if($Data->num_rows>0)
{
while($Row = $Data->fetch_assoc())
{
$dataId = $Row['id'];
}
}
else
{
$Data = $ks->getQuery("INSERT into grupa(oznaka_grupe, naziv, nadgrupa) VALUES ('$postOznaka_grupe', '$postNazivGrupe', '$postNazivNadgrupe')");
$dataId ="(select MAX(id) FROM grupa)";
}
##upis plana
$Data = $ks->getQuery("UPDATE plan SET grupa_id='$dataId' WHERE id=$postID");
答案 0 :(得分:1)
在您的其他情况下,您正在生成无效的dataId
$dataId ="(select MAX(id) FROM grupa)";
这不是有效的dataId,该查询的结果将是。之前的答案是正确的,不知道为什么它被删除了。
这使您的查询成为此
"UPDATE plan SET grupa_id='(select MAX(id) FROM grupa)' WHERE id=$postID"
如果您打算这样做,那么删除该变量周围的单引号。使用单引号不执行该子查询并尝试将整个查询作为值,但由于该字段为数字,因此将其转换为0.删除更新查询中$dataId
周围的单引号。
这个版本很好
"UPDATE plan SET grupa_id=(select MAX(id) FROM grupa) WHERE id=$postID"