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

标签 php mysql arrays pdo filtering

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

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

注意:/home/fanati10/public_html/wp-content/themes/digital-pro/page-nflwranalyzer.php 第 79 行中数组到字符串的转换
*SELECT * FROM WR_TeamAnalyzer WHERE 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>'.

最佳答案

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

TMID IN $placeholders
WKID IN $placeholders2

您的最终查询应如下所示:

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

关于php - MYSQL/PHP 两个多选下拉过滤器(PDO),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44383833/

相关文章:

php - document.friendform1.friends[i].checked 在复选框数组中只有一个元素时不起作用

php - 如何在 OOP PDO 中编写准备和执行语句?

mysql - SQL 无法连接到数据库服务器

mysql - 如何捕获 MYSQL 事件调度程序的日志

C++使用字符数组进行底层位存储/无法使按位操作起作用

php - 使用 in() 获取前 x 行

php - Laravel 使用 Route::resource 生成路由需要添加 prefix/admin/

php - 统计mysql中的所有值

python - 合并 2 个数组以获得 python 中的唯一值

javascript - JavaScript 关联数组的键必须是字符串,还是可以是任何对象?