Skip to content

Code review notes #7

@DavidIQ

Description

@DavidIQ
  • managers/mailinglist_manager.php
while ($row = $this->db->sql_fetchrow($result))
{
	$sql2 = "SELECT m.mailinglist_forum_id, f.forum_name
	   FROM {$this->mailinglists_forums_table} m
	   JOIN " . FORUMS_TABLE . " f ON f.forum_id = m.mailinglist_forum_id
	   WHERE m.mailinglist_id = {$row['mailinglist_id']}";
	$result2 = $this->db->sql_query($sql2);
	$row['forums'] = $this->db->sql_fetchrowset($result2);
	$this->db->sql_freeresult($result2);
	$mailinglists_data[$row['mailinglist_id']] = $row;
}

Line 72-82: please don't run database queries inside loops. You should run a single query, for example WHERE $db->sql_in_set('m.mailinglist_id', $mailinglist_ids)

foreach ($forum_ids as $forum_id)
{
	$sql = "INSERT INTO {$this->mailinglists_forums_table} " . $this->db->sql_build_array('INSERT',
			[
				'mailinglist_id' => $mailinglist_id,
				'mailinglist_forum_id' => $forum_id
			]);
	$this->db->sql_query($sql);
}

Line 199-208: rather than looping over the rows to insert, you should use $db->sql_multi_insert()

  • migrations/v20x/add_mailinglist_table.php & v200.php
    Indentation could be improved in these files.

Metadata

Metadata

Assignees

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions