我有一个用户可以添加课程的表单,当用户点击编辑按钮时,他会被重定向到另一个页面,以便修改表单中的数据。但是当用户单击“保存”按钮时,没有任何反应。出现一个空白页面。在正常情况下,“成功”需要出现在页面上。
处理更新查询的代码:
<?php
require_once(dirname(dirname(dirname(__FILE__))) . '/config.php');
global $DB;
$id = required_param('facid', PARAM_TEXT);
$name = required_param('name', PARAM_TEXT);
$course_detail = required_param('course_detail', PARAM_TEXT);
$course_outline = required_param('course_outline', PARAM_TEXT);
$course_obj = required_param('course_obj', PARAM_TEXT);
//$programme = required_param('programme', PARAM_TEXT);
$update = $DB->execute_sql("UPDATE {courses} SET name = '$name' AND course_detail = '$course_detail' WHERE id = '$id'");
if(!$update)
{
echo "Could not update";
}
else
{
echo "Successful";
}
?>
我可以理解SQL语句是错误的,但我似乎无法修复它,因为它与我学到的PHP代码完全不同。我也试过检查这个link,但似乎找不到答案。我是Moodle的新手。 你有什么帮助吗?
答案 0 :(得分:1)
我知道为时已晚,但将来可能会对某些人有所帮助,因此请发布答案,
根据 Moodle docs 下面是更新记录的代码,而 $dataobjec 是关联数组。 $dataobject 必须有一个 id 字段才能更新记录
$DB->update_record($table, $dataobject, $bulk=false)
$dataobject= array(
'id' => $_POST['id'],
'value2' => $_POST['value2'],
'value2' => $_POST['value3']
);
答案 1 :(得分:0)
我终于可以解决它,所以我想为未来的新Moodle开发者发布答案。
<强>代码:强>
<?php
require_once(dirname(dirname(dirname(__FILE__))) . '/config.php');
global $DB;
$id = required_param('facid', PARAM_TEXT);
$name = required_param('name', PARAM_TEXT);
$course_detail = required_param('course_detail', PARAM_TEXT);
$course_outline = required_param('course_outline', PARAM_TEXT);
$course_obj = required_param('course_obj', PARAM_TEXT);
//$programme = required_param('programme', PARAM_TEXT);
$record = new stdclass;
$record->id = $id;
$record->name = $name;
$record->course_detail = $course_detail;
$record->course_outline = $course_outline;
$record->course_obj = $course_obj;
$sql = $DB->update_record('courses', $record);
if(!$sql)
{
echo "Could not update";
}
else
{
echo "Successful";
}
?>