Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/61.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
MYSQL/PHP两个多选下拉过滤器(PDO)_Php_Mysql_Arrays_Pdo_Filtering - Fatal编程技术网

MYSQL/PHP两个多选下拉过滤器(PDO)

MYSQL/PHP两个多选下拉过滤器(PDO),php,mysql,arrays,pdo,filtering,Php,Mysql,Arrays,Pdo,Filtering,我得到的错误如下:(我也在重复查询语句) 注意:第75行/home/fanati10/public_html/wp content/themes/digital pro/page-nflwranalyzer.php中的数组到字符串转换 注意:第79行/home/fanati10/public_html/wp content/themes/digital pro/page-nflwranalyzer.php中的数组到字符串转换 *从WR_TeamAnalyzer中选择*,其中TMID=?WKID=

我得到的错误如下:(我也在重复查询语句)

注意:第75行/home/fanati10/public_html/wp content/themes/digital pro/page-nflwranalyzer.php中的数组到字符串转换

注意:第79行/home/fanati10/public_html/wp content/themes/digital pro/page-nflwranalyzer.php中的数组到字符串转换
*从WR_TeamAnalyzer中选择*,其中TMID=?WKID=*

这是我的php文件

  if(isset($_POST['submit']))
  {
      require_once( get_stylesheet_directory() . '/config/config.php' );
      if(isset($_POST['check'])) {
        $nflposs = "";
        foreach($_POST['check'] as $val => $text_field) {
          $nflposs.=$text_field.", ";
       }
          $nflpossint = rtrim($nflposs, ', ');
          $nflposs = explode(',', $nflpossint);
          $placeholders = rtrim(str_repeat('?, ', count($nflposs)), ', ');
          $filter[] = "TMID = $placeholders";
          $values[] = $nflpossint;
      }
       if(isset($_POST['wk'])) {
        $wkid = "";
        foreach($_POST['wk'] as $val => $text_field) {
          $wkid.=$text_field.", ";
       }
          $wkidint = rtrim($wkid, ', ');
          $wkid = explode(',', $wkidint);
          $placeholders2 = rtrim(str_repeat('?, ', count($wkid)), ', ');
          $filter[] = "WKID = $placeholders2";
          $values[] = $wkidint;
      }
      $sql="SELECT * FROM WR_TeamAnalyzer WHERE " . implode(' AND ', $filter);
      echo ($sql);
      $selectStmt = $dbcon->prepare($sql);
      $selectStmt->execute($values);
      $rows = $selectStmt->fetchAll();
  $tableContent = '';
  foreach ($rows as $row){
    $tableContent = $tableContent.'<tr>'.
if(isset($\u POST['submit']))
{
需要一次(获取样式表目录()。/config/config.php');
如果(isset($_POST['check'])){
$nflposs=“”;
foreach($\u POST['check']作为$val=>$text\u字段){
$nflposs.=$text_字段。“,”;
}
$nflpossint=rtrim($nflposs,,');
$nflposs=爆炸(',',$nflpossint);
$placeholders=rtrim(str_repeat('?,'),count($nflposs)),',');
$filter[]=“TMID=$placeholders”;
$values[]=$nflpossint;
}
如果(isset($_POST['wk'])){
$wkid=“”;
foreach($\u POST['wk']作为$val=>$text\u字段){
$wkid.=$text_字段。“,”;
}
$wkidit=rtrim($wkid,,');
$wkid=爆炸(',',$wkidint);
$placeholders2=rtrim(str_repeat('?,'),count($wkid)),',');
$filter[]=“WKID=$placeholders2”;
$values[]=$wkidint;
}
$sql=“从WR_TeamAnalyzer WHERE.中选择*”。内爆('AND',$filter);
echo($sql);
$selectStmt=$dbcon->prepare($sql);
$selectStmt->execute($value);
$rows=$selectStmt->fetchAll();
$tableContent='';
foreach($行作为$行){
$tableContent=$tableContent.'''。

当您在查询中使用
=
时,它将需要一个字符串。但您正在参数中传递一个数组(
)。我不确定您试图在这里实现什么,但如果您想签入数组,请按以下方式更改代码中的这两行:

TMID IN $placeholders
WKID IN $placeholders2
您的最终查询应如下所示:

SELECT * FROM WR_TeamAnalyzer WHERE TMID IN (?) AND WKID IN (?)

这就是我想到的

更改:

$filter[] = "TMID IN $placeholders";
$values = $nflpossint;
&

&


当我打印数组时,我会得到print_r($filter);Array([0]=>TMID=?[1]=>WKID=?,?)print_r($value);Array([0]=>3[1]=>3,4)您发布的内容仍然只允许按每列一个选项进行筛选…因此基本上根据您的回答,查询将如下所示=“选择*来自WR_TeamAnalyzer,其中TMID在(1)中,WKID在(2)中”;我想要的是查询在每个下拉列表中过滤多个选择……在这里,我手动键入了查询我希望它如何过滤……………………$sql=“选择*来自WR_TeamAnalyzer,其中TMID在(1,2)中,WKID在(2,3)”中;甚至不需要$filter[](s)
$filter[] = "WKID IN $placeholders2"; 
$values2 = $wkidint;
$sql="SELECT * FROM WR_TeamAnalyzer WHERE TMID IN ($values) AND WKID IN ($values2)";
$selectStmt = $dbcon->prepare($sql);
$selectStmt->execute();