Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/271.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/58.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 选择字段值不在数组中的所有字段_Php_Mysql - Fatal编程技术网

Php 选择字段值不在数组中的所有字段

Php 选择字段值不在数组中的所有字段,php,mysql,Php,Mysql,我在一个变量中有这个数组 $regions = |north|south|west| 以及包含单个值的数据库字段“Region”,例如north 我需要一个select语句,它将选择“Region”的值不是数组中列出的任何值的所有字段。e、 北、南、西。您可以在SQL中使用执行此操作,其中字段不在('value1','value2',…)。可能足以获取此格式的数组。您可以在SQL中使用执行此操作,其中字段不在('value1','value2',…)。可能足以获取此格式的数组。$regions

我在一个变量中有这个数组

$regions = |north|south|west|
以及包含单个值的数据库字段“Region”,例如north


我需要一个select语句,它将选择“Region”的值不是数组中列出的任何值的所有字段。e、 北、南、西。

您可以在SQL中使用
执行此操作,其中字段不在('value1','value2',…)
。可能足以获取此格式的数组。

您可以在SQL中使用
执行此操作,其中字段不在('value1','value2',…)
。可能足以获取此格式的数组。

$regions=“北|西|南”;
$regions = "north|west|south";
$regionsArray = explode('|', $regions);

for ($i = 0; $i < count($regionsArray); $i++) {
    $regionsArray[$i] = "'" . $regionsArray[$i] . "'";
}

$query = "SELECT *
FROM ...
WHERE Region NOT IN (" . implode(",", $regionsArray) . ")";
$regionsArray=分解(“|”,$regions); 对于($i=0;$i 这假设您的
$regions
变量是如上所述的字符串,而不是数组

如果之前是数组,则很可能不需要将其转换为字符串(上面的代码将其转换回数组)。

$regions=“north | west | south”;
$regionsArray=分解(“|”,$regions);
对于($i=0;$i
这假设您的
$regions
变量是如上所述的字符串,而不是数组


如果之前它是一个数组,那么很可能不需要将其转换为字符串(上面的代码将其转换回数组)。

也许您忘记了mysql\u real\u escape\u string()


也许你忘了mysql\u real\u escape\u string()


你试过什么?
$regions
来自哪里?因为那不是数组。我在表单中有多个复选框。如果用户选择north、south和west,我需要显示区域中没有north-south或west的所有记录fieldRocket,您的评论帮助我解决了这个问题。我是以字符串而不是数组的形式传递数据。您尝试了什么?
$regions
来自哪里?因为那不是数组。我在表单中有多个复选框。如果用户选择north、south和west,我需要显示区域中没有north-south或west的所有记录fieldRocket,您的评论帮助我解决了这个问题。我以字符串而不是数组的形式传递数据。我尝试了此操作,但得到的结果是:警告:mysql\u fetch\u row():提供的参数不是有效的mysql结果资源in@sheredia:是
$regions
包含例如“北|西|南”的数组或字符串?@sheredia:我编辑我的答案是为了向您展示一个更详细的代码示例。该代码生成一条SQL语句,该语句将从您的表中选择所有条目,
Region
包含任何值的条目除外。问题出在哪里?这是我得到的错误警告:mysql\u fetch\u row():提供的参数不是中的有效mysql结果资源…我尝试了此操作,但得到的结果如下:警告:mysql\u fetch\u row():提供的参数不是有效的mysql结果资源in@sheredia:是
$regions
包含例如。“北|西|南”?@sheredia:我编辑了我的答案,向您展示了一个更详细的代码示例。该代码生成一个SQL语句,将从表中选择所有条目,除了
Region
包含任何值的条目。问题出在哪里?这是我收到警告的错误:mysql\u fetch\u row():提供的参数在…中不是有效的MySQL结果资源。值在数组中,它们将根据用户选择而更改。值在数组中,它们将根据用户选择而更改
function db_escape($value)
{
    return '"'.mysql_real_escape_string($value).'"';
}

$regions = array('north','west','south');

$query = "SELECT *
FROM `table`
WHERE `Region` NOT IN (" . implode(",", array_map('db_escape',$regions)) . ")";