PHP - 替换一段我的字符串
PHP - Replace a piece of my string
晚上好。我目前正在做一个学校项目,但遇到了困难。
这是代码:
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'];
}
晚上好。我目前正在做一个学校项目,但遇到了困难。 这是代码:
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'];
}