在 moodle 中使用 php 从 mysql 表中提取特定整数值

问题描述 投票:0回答:1

我需要从一个表中提取一个特定的值,知道 moodle 中行的 id screenshot of the table

我之前尝试过从另一个 php 类获取变量,但不管它给出什么 null 所以我明白是否有一种方法可以直接从数据库表中获取这个值 表名“mdl_course_modules” 该 ID 与课程模块 ID 相同 并且需要从“可用性”列中提取此值

编辑

我尝试使用以下

$viewslim = $DB->get_field_select('course_modules', 'availability' , "`availability` LIKE '%maxviews%' AND `id` = '$cm->id'",['id' => $cm->id], IGNORE_MISSING);
preg_match_all('/(\d+)/', $viewslim , $matches);
echo '<pre>'; var_dump($matches); echo '</pre>';

它工作正常但是如果由于另一个活动的可用性插件而在该行中有另一个整数,那么如何只获取 viewlimit 之后的值而不是该行中的任何其他可能的整数

{"op":"&","c":[{"type":"maxviews","viewslimit":"1"}],"showc":[true]}

这就是我从 var_dump 得到的

array(2) {
  [0]=>
  array(1) {
    [0]=>
    string(1) "1"
  }
  [1]=>
  array(1) {
    [0]=>
    string(1) "1"
  }
}
php mysql database moodle
1个回答
0
投票

我明白了,我希望它能顺利到最后

$getviewslimit = $DB->get_field_select('course_modules', 'availability' , "`availability` LIKE '%maxviews%' AND `id` = '$cm->id'",['id' => $cm->id], IGNORE_MISSING);
if ($getviewslimit != null){
preg_match_all('/\"type\":\"maxviews\",\"viewslimit\":\"(\d+)/', $getviewslimit , $matches);
$viewslimit = $matches[1][0];

$a = new \stdclass();
$a->viewscount = $viewscount;
$a->viewslimit = ($viewslimit + $reset);
echo '<pre>'; var_dump($a->viewslimit); echo '</pre>';
}

结果正是我需要的

int(3)
int(7)
int(50)
© www.soinside.com 2019 - 2024. All rights reserved.