Как мне конвертировать Char в Int?

Создайте предложение WHERE динамически. Мой рекомендуемый подход состоит в том, чтобы подтолкнуть каждое условие к массиву, а затем использовать implode(), чтобы объединить все условия, соединяя их с AND или OR в соответствии с вашими предпочтениями.

$wheres = array();
$params = array();
if (!empty($_GET['id'])) {
    $wheres[] = 'a.uid = :uid';
    $params[':uid'] = $_GET['id'];
}
if (!empty($_GET['major'])) {
    $wheres[] = 'a.major = :major';
    $params[':major'] = $_GET['major'];
}
if (!empty($_GET['name'])) {
    $wheres[] = 'b.name LIKE :name';
    $params[':name'] = '%'.$_GET['name'].'%';
}
// And so on for all parameters

$sql = "SELECT * 
        FROM user_details AS a
        JOIN user AS b ON a.uid = b.id";
if (!empty($wheres)) {
    $sql .= " WHERE " . implode(' AND ', $wheres);
}
$stmt = $db->prepare($sql);
$stmt->execute($params);

Затем отображать результаты как в вашем исходном коде.

while ($student = $stmt->fetch()) {
    ...
}
13
задан Moira 8 December 2017 в 23:01
поделиться