19 declare(strict_types=1);
28 private const string TABLE_NAME =
'reg_registration_codes';
52 return ' WHERE ' . implode(
' AND ', $where);
61 $set = $this->db->query(
'SELECT COUNT(*) AS cnt FROM ' . self::TABLE_NAME . ($code_filter ? $this->
filterToSQL($code_filter) :
''));
63 if ($rec = $this->db->fetchAssoc($set)) {
64 $cnt = (
int) ($rec[
'cnt'] ?? 0);
86 string $order_direction,
91 $sql =
'SELECT * FROM ' . self::TABLE_NAME . ($code_filter ? $this->
filterToSQL($code_filter) :
'');
93 if ($order_field ===
'generated') {
94 $order_field =
'generated_on';
96 $sql .=
' ORDER BY ' . $order_field .
' ' . $order_direction;
99 $this->db->setLimit($limit, $offset);
100 $set = $this->db->query($sql);
102 while ($rec = $this->db->fetchAssoc($set)) {
103 $rec[
'generated'] = (
int) $rec[
'generated_on'];
104 unset($rec[
'generated_on']);
128 $set = $this->db->query(
'SELECT * FROM ' . self::TABLE_NAME .
' WHERE ' . $this->db->in(
135 while ($rec = $this->db->fetchAssoc($set)) {
148 return (
bool) $this->db->manipulate(
'DELETE FROM ' . self::TABLE_NAME .
' WHERE ' . $this->db->in(
164 $set = $this->db->query(
'SELECT DISTINCT(generated_on) genr FROM ' . self::TABLE_NAME .
' ORDER BY genr');
166 while ($rec = $this->db->fetchAssoc($set)) {
167 $result[] = (
int) $rec[
'genr'];
189 $set = $this->db->query(
190 'SELECT * FROM ' . self::TABLE_NAME .
191 ($code_filter ? $this->
filterToSQL($code_filter) :
'')
194 while ($rec = $this->db->fetchAssoc($set)) {
getCodesData(string $order_field, string $order_direction, int $offset, int $limit, CodeFilter $code_filter=null)
while($session_entry=$r->fetchRow(ilDBConstants::FETCHMODE_ASSOC)) return null
getTotalCodeCount(?CodeFilter $code_filter=null)
getCodesByFilter(CodeFilter $code_filter)
loadCodesByIds(array $ids)
filterToSQL(CodeFilter $code_filter,)
__construct(protected readonly ilDBInterface $db)