我有一个老师的时间表。该老师有自己的课程,她应该可以从小时开始在数据库中输入他的课程主题。
我试图弄清楚这是怎么可能的。
这是我的问题(代码):我的老师在html中查看具有不同名称的字段
<td><input type="text" name="classContent_{{ item.content }}"></td>
应该是
classContent_0
classContent_1
classContent_2
classContent_3
所以每个主题(小时)我都有不同的字段名称
现在我正在获取时间表数据并按日期进行分组(以便稍后老师可以选择特定的日期并获取数据)
$timetable = $administration->timetableDataByUsername($username);
foreach ($timetable as $item) {
foreach ($item as $key => $value) {
$timetableGroupedByDate[$item['date']][$key] = $value;
}
}
var_dump($timetableGroupedByDate);
这是var dump
'2019-05-02' =>
array (size=9)
'profile_id' => string '2' (length=1)
'untericht_id' => string '3' (length=1)
'stundenplan_id' => string '3' (length=1)
'inhalt' => null
'zeit' => string '12:25' (length=5)
'date' => string '2019-05-02' (length=10)
'raum_nr' => string '10' (length=2)
'typ' => string 'schlagzeug' (length=10)
'content' => int 2
'2019-06-02' =>
array (size=9)
'profile_id' => string '2' (length=1)
'untericht_id' => string '5' (length=1)
'stundenplan_id' => string '5' (length=1)
'inhalt' => null
'zeit' => string '16:05' (length=5)
'date' => string '2019-06-02' (length=10)
'raum_nr' => string '5' (length=1)
'typ' => string 'trombone' (length=8)
'content' => int 4
'2019-06-03' =>
array (size=9)
'profile_id' => string '2' (length=1)
'untericht_id' => string '6' (length=1)
'stundenplan_id' => string '6' (length=1)
'inhalt' => null
'zeit' => string '16:45' (length=5)
'date' => string '2019-06-03' (length=10)
'raum_nr' => string '10' (length=2)
'typ' => string 'generell' (length=8)
'content' => int 5
基本上我想添加
吸气
特定字段,现在它仅添加到表格的底部。
这是主要问题:我的插入语句
public function addContent($content) {
$stmt = $this->pdo->prepare("
INSERT INTO untericht (inhalt)
VALUE (?)
");
$stmt->execute([$content]);
}
这就是我在控制器中的称呼方式:
if (isset($_POST['submitContent'])) {
$administration->addContent(
$_POST['classContent_0']
);
}
基本上,当我向第一个字段添加内容时,它会添加到数据库中,但会作为新行。但是,应该为例如
的第一个数组添加它吸气
为空
我该如何最好地解决呢?
编辑:
这是一张图片,因此更有意义。
答案 0 :(得分:1)
您要UPDATE数据库行。这是一个示例方法:
public function updateContent($rowId, $content) {
$statement = $this->pdo->prepare("UPDATE untericht
SET inhalt = ?
WHERE id = ?");
$statement ->execute([$content, $rowId]);
}
注意如何唯一地标识要更新的行。我已经用$rowId
完成了。我不确定您的数据库表中是否有这样的列,但是在大多数情况下,使用a unique auto-incrementing value列是很有用的。
检查inhalt
为空的行不是一个好主意,因为这意味着您不确定要更改哪一行。