Дано: Таблица products. В ней есть 3 поля по которым нужно выдавать конкретную строку. Эти поля: idProduct(Это артикул товара может содержать, как цифры, так и буквы), linkProduct(это конкретный УРЛ товара) и поле name (это название товара)
Пользователь при вводе в форму своего запроса(обычно это или артикул или прямая ссылка) должен получить нужную ему строку из таблицы. Запрос идёт GET и я решаю это следующим образом
if (isset($_GET['sku'])) {
if (is_numeric($sku)) { // если начало с цифры
// if (mb_strlen($sku) >= 5 & mb_strlen($sku) <= 12) { // если запрос от 8 до 10 символов
$sku = str_replace(" ","",$sku);
$sql = "SELECT * FROM products WHERE idProduct = '".$sku."' LIMIT 0,1";
} elseif ($sku == strpos($sku, 'https')) { // если начало с https
$sku = str_replace(" ","",$sku);
if ($_GET['sku'] = strpos($_GET['sku'], '?block_main')) {
$sku = strstr($sku, '?block_main', true);
$sql = "SELECT * FROM products WHERE linkProduct = '".$sku."' ";
} elseif ($sku_new == true) {
$sql = "SELECT * FROM products WHERE linkProduct = '".$sku."/' ";
} else {
$sql = "SELECT * FROM products WHERE linkProduct = '".$sku."' ";
}
// $sql = "SELECT * FROM products WHERE linkProduct LIKE '%".$sku."%' LIMIT 0,1";
} else {
$sql = "SELECT * FROM products WHERE name LIKE '%".$sku."%' LIMIT 0,1";
}
}
Но мне это решение кажеться слишком корявым и оно не всегда отрабатывает т.к как задумано. Помогите его сделать более "уникальным" для возможности добавления условий.