Как было отмечено в комментариях, дизайн вашей базы данных является неоптимальным.Вы можете пересмотреть и изменить это.Кроме того, иметь имена столбцов 1
, 2
и т. Д. - это очень плохая идея.По крайней мере, пусть они начнут с буквы.А еще лучше, дайте им разумные имена, указывающие, какие данные на самом деле содержат эти столбцы.
Теперь, предположив, что вы на самом деле выясните, какими должны быть имена ваших столбцов, вы можете использовать простой оператор IN
для получения ваших данных.Обычный / распространенный способ его использования -
WHERE some_column IN ('value1', 'value2', ...)
Тем не менее, ничто не мешает вам использовать его наоборот:
WHERE 'some_value' IN (column1, column2, ...)
Таким образом, ваш оператор SQL становится чем-то вродеэто:
SELECT *
FROM table
WHERE '$value' IN (column1, column2, column3, column4, column5)
AND id='02'
Теперь, если у вас есть имена столбцов в массиве, вы можете сделать это следующим образом:
$testColumns = ['column1', 'column2', 'column3', 'column4', 'column5'];
$value = "q";
$inColumns = implode(',', $testColumns);
$sql = "SELECT * FROM table WHERE '$value' IN ($inColumns) AND id='02'";
$cek = mysqli_query($con, $sql);
ОБНОВЛЕНИЕ: Если ваш столбецимена нестандартные, например, вышеупомянутые 1
, 2
и т. д., или в них есть пробелы, поэтому простые implode
не будут работать, потому что вам нужно заключать в кавычки каждое имя столбца.В этом случае вам понадобится что-то вроде этого:
$inColumns = implode(',', array_map(function($c) { return "`$c`"; }, $columns));