我从成功查询中获得了mysqli_result对象
我想使用if语句修改此mysqli_result对象。
$party_set = find_all_parties(); //mysqli_result object
while($party = mysqli_fetch_assoc($party_set)){
$locArr =split(",",$party["loc"]);
$lat = $locArr[0];
$lng = $locArr[1];
if(distance($currentLat,$currentLng,$lat,$lng) > $seletedDistance ){
//I want remove the row if this condition is true
}
}
如何修改$party_set
??
3条答案
按热度按时间vs3odd8k1#
您不能修改mysqli结果对象。该对象只是一个句柄,用于访问MySQL服务器上的MySQL结果集。您也不能更改它。您的选项包括:
1.将结果对象中的数据放入一个数组中,例如
$data[] = mysqli_fetch_assoc($result);
。然后它就变成了一个普通的数组,你可以随意修改。如果你在循环中这样做,只要 * 不要 * 将该行放入你的数据数组中,如果你不喜欢它。1.使用
WHERE
子句进行查询,该子句从一开始就排除不需要的行。1.如果你想从数据库中完全删除特定的行,你需要执行一个单独的
DELETE FROM ..
查询,仅仅从结果集中删除它是没有任何作用的。同样,你可以通过一个合适的WHERE
子句,例如DELETE FROM .. WHERE (lat, lon, something something..)
,很容易地一次性完成。xghobddn2#
你不需要修改原来的对象,但要创建一个新的数组:
如果你也需要修改数据库而不仅仅是php设置,那么使用IN操作符运行另一个查询。
cgvd09ve3#
谢谢你们每一个人我用很愚蠢的方法解决了这个问题。
我创建了一个如下所示的新查询字符串..
不管怎样,非常感谢
在我的项目完成后,我会用你推荐的方法重试...祝大家好运