<?php
// Т.к. мы подставляем переменную $column прямо в SQL код без обработки,
// то мы обязаны позаботиться о том, чтобы там не было SQL-иньекций
// Поэтому, мы должны крайне тщательно проверить, соответствует ли наше значение допутимым вариантам
// Проверяем, что там только 1, 2 или 3, а также проверяем, чтобы там не было вредоносного "продолжения"
$columnNumber = (int) $id[1];
if ($columnNumber < 1 || $columnNumber > 3 || strlen($id[1]) > 1) {
throw new \InvalidArgumentException("Неверный номер поля");
}
$column = 'count' . $columnNumber;
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<select multiple>
<!-- Не правда ли прекрасно, что значение атрибута value работает без кавычек?-->
<option value=foo selected>FOO</option>
<!-- А вот так делают старые любители XHTML -->
<option value="bar" selected="selected">BAR</option>
<!-- А что если вот так? ... Да что же это такое происходит?! -->
<!-- Невалидно, но браузер прекрасно кушает, правда не так, как мы думали -->
<option value="baz" selected="true">BAZ</option>
<option value="fuc" selected=false>Ой...</option>
</select>
<!-- Все картинки работают -->
<img src="https://placehold.co/20" alt="aaa">
<img src="https://placehold.co/30" alt="aaa"/>
<!-- Валидатор сопротивляется, но браузеру плевать -->
<img src="https://placehold.co/40" alt="aaa"></img>
<!-- Идём дальше -->
<br /> Тег br закрыт. Само собой, текст находится не внутри br
Точно так же:
<br> Тег br закрыт. Само собой, текст находится не внутри br
И тут начинается что-то странное:
<div /> Тээк. Div же закрыт. А текст находится внутри Div. Шта?
Спецификация HTML чёткая и понятная. Ничего сильно запоминать не надо.
Любой новичок справится.
Так? ... Так?
<input />Этот текст снаружи элемента input
<input>Этот текст снаружи элемента input. Ошибка, но работает</input>
<div>Этот текст внутри div</div>
<div />Этот текст внутри div
<!-- Всё валидненько -->
<p>Этот текст внутри p</p>
<p>Этот текст внутри p
<p>Этот текст внутри p</p>
<!-- Невалидно, но работает в браузере -->
<p />Невалидно, текст внутри p
И много-много радостей вам парсинг регулярками принесёт...
</body>
</html>
В базе храните id. 123456
Генерируете нужные вам размеры с названиями и заливаете их всех в CDN
123456-100x100.jpg
123456-200x200.jpg
....
123456-thumb.jpg
123456-big.jpg
123456.jpg // оригинал
К сожалению, не знаю, как в мобильной разработке определяется, когда какое изображение показать, но просто генерируете эти названия точно так же в зависимости от необходимости, и вставляете их в сгенерированную с этим названием ссылку CDN.
Как-то так, наверное.