我正在尝试将数组值绑定到php pdo中的一个准备好的语句,但仅绑定的数组的第一个元素

克里斯·b

我希望显示一个时间表,下面是我怀疑错误所在的代码段。其中的错误是,尽管类数组中有两个元素,但是绑定仅使用我已命名为类的数组的第一个元素。请谁能帮我弄清楚我要去哪里错了?

while($classes = $stmt->fetch(PDO::FETCH_ASSOC)){

       $showtimetable.= "{\"class\":\"";
       $showtimetable.= $classes["Form"].$classes["Label"];
       $showtimetable.= "\",\"subjects\":[";

      //iterate every class in different times to check if they are having a session in the timetable
           foreach($time as $times){

             $selectlessonquery="SELECT `staffnumber`, `subject` FROM `".$timetablename."` WHERE 
            `Form`=? AND `Label`=? AND daytime=?"; 
                 try{ 
                        //this variable contain the array of variable classes
                         echo $classes["Form"].$classes["Label"];
                        //this works fine with output of classes as 1E and IN
                     //on adding these code that will use the value in $classes  only 1E it binding 
                       in prepared statement
                           $stmt=$conn->prepare($selectlessonquery);
                           $stmt->bindParam(1,$classes["Form"]);
                           $stmt->bindParam(2,$classes["Label"]);
                           $stmt->bindParam(3,$times);
                           $stmt->execute();
                           while($subject = $stmt->fetch(PDO::FETCH_ASSOC)){
                               if(!$subject){
                                  //if no matching row then make the value to be empty string
                                   $showtimetable.= "{\"subject\":\"";
                                   $showtimetable.= " \"";
                                   $showtimetable.= " "."},";  
                               }else{
                                   $showtimetable.= "{\"subject\":\"";
                                   $showtimetable.= $subject["subject"]." ";
                                   $showtimetable.= $subject["staffnumber"]."\"},";
                               }  

                           }
                      }catch(Exception $e){

                          echo "error Ocuured ". $e->getMessage();

                      }
                 }

                  $showtimetable=rtrim($showtimetable,",");
                  $showtimetable.="]";
                 $showtimetable.="},";

             }
      echo $showtimetable
 //the output contains on data relevant to 1E and it isnt looping to the other value as expected
克里斯·b

问题是if的位置在一段时间内会导致代码意外停止,即使在没有读取行的情况下它旨在为主题提供默认值也是如此。正确的方法是

      foreach($time as $times){
         $selectlessonquery="SELECT `staffnumber`, `subject` FROM `".$timetablename."` 
          WHERE `Form`=? AND `Label`=? AND daytime=?"; 
              try{ 

                   //this variable contain the array of variable classes
                   $subjects=$conn->prepare($selectlessonquery);
                   $subjects->bindParam(1,$classes["Form"]);
                   $subjects->bindParam(2,$classes["Label"]);
                   $subjects->bindParam(3,$times);
                   $subjects->execute();

                   if($subjects->rowCount()==0){
                       $showtimetable.= "{\"subject\":\"";
                       $showtimetable.= " \"";
                      $showtimetable.= " "."},";  
                  }else{
                    while($subject=$subjects->fetch(PDO::FETCH_ASSOC)){

                         $showtimetable.= "{\"subject\":\"";
                         $showtimetable.= $subject["subject"]." ";
                        $showtimetable.= $subject["staffnumber"]."\"},";
                   }  

               }

          }catch(Exception $e){

                echo "error Ocuured ". $e->getMessage();

          }
       }

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

PHP准备好的语句->仅返回数据库列中的第一个字母

来自分类Dev

在准备好的语句PDO PHP中绑定值数组

来自分类Dev

KnockoutJS将数组中的第一个元素绑定到div

来自分类Dev

仅将第一个元素执行到数组中的问题

来自分类Dev

我怎样才能使它成为一个准备好的语句代码?

来自分类Dev

为什么我的脚本仅访问数组中的第一个元素?

来自分类Dev

为什么我的脚本仅访问数组中的第一个元素?

来自分类Dev

使用准备好的语句将一个月中的某几天插入数据库中

来自分类Dev

数组中的第一个非负元素

来自分类Dev

跳过Golang中数组的第一个元素

来自分类Dev

ngxs setstate数组中的第一个元素

来自分类Dev

数组中的第一个非负元素

来自分类Dev

读取数组中的第一个元素

来自分类Dev

如何检查数组中的第一个元素

来自分类Dev

刷卡中的数组获取第一个元素

来自分类Dev

在Golang中解组XML数组:仅获取第一个元素

来自分类Dev

无法遍历javascript中的对象数组。仅输出第一个元素

来自分类Dev

搜索栏仅返回数据数组中的第一个元素

来自分类Dev

数组到Excel范围仅给出数组的第一个元素

来自分类Dev

获取数组中的第一个和最后一个元素

来自分类Dev

数组函数仅返回第一个值

来自分类Dev

PHP-计算多维数组中第一个元素中的唯一值

来自分类Dev

从列表中创建一个数组,其中数组的第一个元素是列表中的第一个元素

来自分类Dev

替换数组的第一个 `m` 个元素

来自分类Dev

遍历2个数组仅循环第一个元素

来自分类Dev

GLSL统一结构数组仅定义第一个元素

来自分类Dev

Ruby哈希表数组;仅保留包含特定键=>值对的第一个元素

来自分类Dev

getElementById仅返回第一个元素的值

来自分类Dev

自动用元素列表循环填充数组,仅设置第一个元素

Related 相关文章

  1. 1

    PHP准备好的语句->仅返回数据库列中的第一个字母

  2. 2

    在准备好的语句PDO PHP中绑定值数组

  3. 3

    KnockoutJS将数组中的第一个元素绑定到div

  4. 4

    仅将第一个元素执行到数组中的问题

  5. 5

    我怎样才能使它成为一个准备好的语句代码?

  6. 6

    为什么我的脚本仅访问数组中的第一个元素?

  7. 7

    为什么我的脚本仅访问数组中的第一个元素?

  8. 8

    使用准备好的语句将一个月中的某几天插入数据库中

  9. 9

    数组中的第一个非负元素

  10. 10

    跳过Golang中数组的第一个元素

  11. 11

    ngxs setstate数组中的第一个元素

  12. 12

    数组中的第一个非负元素

  13. 13

    读取数组中的第一个元素

  14. 14

    如何检查数组中的第一个元素

  15. 15

    刷卡中的数组获取第一个元素

  16. 16

    在Golang中解组XML数组:仅获取第一个元素

  17. 17

    无法遍历javascript中的对象数组。仅输出第一个元素

  18. 18

    搜索栏仅返回数据数组中的第一个元素

  19. 19

    数组到Excel范围仅给出数组的第一个元素

  20. 20

    获取数组中的第一个和最后一个元素

  21. 21

    数组函数仅返回第一个值

  22. 22

    PHP-计算多维数组中第一个元素中的唯一值

  23. 23

    从列表中创建一个数组,其中数组的第一个元素是列表中的第一个元素

  24. 24

    替换数组的第一个 `m` 个元素

  25. 25

    遍历2个数组仅循环第一个元素

  26. 26

    GLSL统一结构数组仅定义第一个元素

  27. 27

    Ruby哈希表数组;仅保留包含特定键=>值对的第一个元素

  28. 28

    getElementById仅返回第一个元素的值

  29. 29

    自动用元素列表循环填充数组,仅设置第一个元素

热门标签

归档