每个循环的多输入和多列PHP

每个循环的多输入和多列PHP

当前通过foreach函数获取所有获取请求。查看是否列在“季节”列中。下一步是再增加一列,以检查是否有任何请求类似于下一个列值。第二列必须是AND而不是AND,这意味着第一列季节是否包含任何get请求并且第二列是否包含任何GET请求。

目前:

$array_name = array();
foreach ($_GET as $key => $value) {
    $array_name[] = "'%" . escape_string($value) . "%'";
};

$string = implode(' OR season LIKE ', $array_name);

$tank = "SELECT * FROM shrubs2 WHERE season LIKE {$string}";
echo $tank;


首先编辑:

      function searchByColumn($values, $columnName) {
      $string = implode(" OR $columnName LIKE ", $values);
      return "SELECT * FROM shrubs2 WHERE $columnName LIKE $string";
  }

  $array_name = array();
  foreach ($_GET as $key => $value) {
      $array_name[] = "'%".escape_string($value)."%'";
  }

  $colNames = array("season", "日照"); // can add here more column names
  foreach($colNames as $colName) {
      $str = searchByColumn($array_name, $colName);
  }

  echo $str;


 ///// creating the query with the variable $str

最佳答案

您可以定义函数来搜索每一列:

function searchByColumn($values, $columnName) {
    $string = implode(" OR $columnName LIKE ", $values);
    return "SELECT * FROM shrubs2 WHERE $columnName LIKE $string";
}


然后将其用作:

$array_name = array();
foreach ($_GET as $key => $value) {
    $array_name[] = "'%".escape_string($value)."%'";
}

$colNames = array("season"); // can add here more column names
foreach($colNames as $colName) {
    $str = searchByColumn($array_name, $colName);
    echo $str; // or run it
}

关于php - 每个循环的多输入和多列PHP,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/55571782/

10-09 00:44