我正在尝试获取所有name等于某个值的id


I am trying to get all ids where name is equal to a certain value

我正试图从两个不同的表中获取数据,第一个表我正在获取名称,第二个表我想获取id。但我遇到了一个错误。

这是我的代码

try {
  $value=$cluster;
  $cohort_query = "select cohort from vu_institutes_details where cluster=$value";
  $cohort=array();
  $queryResult = db_query($cohort_query);
  foreach ($queryResult as $row) {
    $cohort = $row->cohort;
  }
  foreach ($cohort as $value) {
   $cohid="select id from mdl_cohort where name=$value";
   $queryResul = db_query($cohid);
   foreach ($queryResul as $ro) {
     $cohids=array();
     $cohids = $ro->id;
   }
 }

但是我得到了一个错误,那就是cohids不存在。

根据我的观点,查询不返回任何记录。您可以在foreach范围之外定义您的"$cohids",并尝试使用带条件的num_rows进行检查。

foreach 内部还有一个问题

 foreach ($queryResul as $ro) {
     $cohids=array();
     $cohids = $ro->id;
   }

尝试使用这个

foreach ($queryResul as $ro) {
     $cohids=array();
     $cohids[] = $ro->id;
   }

foreach ($queryResul as $ro) {
         $cohids = $ro->id;
       }

当您将队列和cohids声明为数组时,请像数组一样使用它。:

 foreach ($queryResult as $row) {
        $cohort[] = $row->cohort;
 }

还有:

 $cohids[] = $ro->id;