PHP - 替换我的一段字符串

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (1)
  • 关注 (0)
  • 查看 (67)

晚上好。我正在做一个学校项目而且我被卡住了。这是代码:

 foreach ($Pessoas as $key => $value) {
             $ids = $ids . " OR id_Pessoas = " . $Pessoas[$key]['id'];
         }

         if (substr($ids, 0, 3) == " OR ") {
             if (substr($ids, 0, strlen(" OR ")) == " OR ") {
                 $ids = substr($ids, strlen(" OR "));
             }
         }

这是我在PHP中搜索系统的控制器的一部分,我正试图将其传递给模型。正如您可能已经想到的那样,我正在使用Slim Framework和PDO进行MVC。我们的想法是搜索关键字并使用该关键字搜索个人资料的名称或标签。我首先使用此查询搜索配置文件名称:SELECT * FROM Pessoas WHERE nome LIKE :keyword AND hidden = 0一切都很好,直到我尝试使用上面的代码来获取id,因此我可以生成一段代码来完成以下查询SELECT * FROM Pessoas_tags WHERE,但它不起作用。

上面的代码背后的想法是生成类似的东西" OR id_Pessoas = 1 OR id_Pessoas = 4",然后删除第一个," OR "所以它没有给出错误,但它没有删除。我真的不知道为什么和那段代码不是我的,但我不知道从哪里取出它,因为几个月前。

我希望这只是一个愚蠢的错误。如果不是这样做,你有一个更好的解决方案,我也会做出准备。感谢您的耐心和提前帮助。

提问于
用户回答回答于

您的代码有问题。这应该删除“OR”:

foreach ($Pessoas as $key => $value) {
  $ids = $ids . " OR id_Pessoas = " . $Pessoas[$key]['id'];
}

if (!empty($ids) && substr($ids, 0, strlen(" OR ")) == " OR ") {
  $ids = substr($ids, strlen(" OR "));
}

或者,由于条件是OR,您可以添加一个始终为false的无效语句,并且您不必删除任何“OR”以使其工作。有点像这样:

$ids = "1 != 1";
foreach ($Pessoas as $key => $value) {
  $ids = $ids . " OR id_Pessoas = " . $Pessoas[$key]['id'];
}

扫码关注云+社区

领取腾讯云代金券

玩转腾讯云 有奖征文活动