【问题标题】:I am trying to get all ids where name is equal to a certain value我正在尝试获取名称等于某个值的所有 id
【发布时间】:2016-05-09 06:30:49
【问题描述】:

我正在尝试从两个不同的表中获取数据,从第一个表中获取名称,从第二个表中获取 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 不存在的错误。

【问题讨论】:

  • 在 MySql 中使用 JOINS
  • JOIN 比使用多个 foreach 从多个表中获取数据要好得多,它也会提高速度性能。

标签: php mysql drupal-7


【解决方案1】:

根据我的观点,查询不会返回任何记录。您可以在 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;
       }

【讨论】:

    【解决方案2】:

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

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

    还有:

     $cohids[] = $ro->id;
    

    【讨论】:

      猜你喜欢
      • 2018-10-02
      • 2020-12-09
      • 1970-01-01
      • 2021-06-10
      • 2021-01-12
      • 1970-01-01
      • 1970-01-01
      • 2021-07-01
      • 2019-02-20
      相关资源
      最近更新 更多