How can one dynamically filter a database query based on multiple form input criteria in PHP?

When dynamically filtering a database query based on multiple form input criteria in PHP, you can use conditional statements to construct the SQL query based on the submitted form inputs. You can concatenate different WHERE clauses based on the form inputs and bind the parameters to prevent SQL injection. This approach allows you to filter the database query dynamically depending on the user's input.

// Assume $conn is the database connection object

// Retrieve form input criteria
$param1 = $_POST['param1'];
$param2 = $_POST['param2'];
$param3 = $_POST['param3'];

// Initialize the SQL query
$sql = "SELECT * FROM table_name WHERE 1=1";

// Add conditions based on form inputs
if (!empty($param1)) {
    $sql .= " AND column1 = :param1";
}
if (!empty($param2)) {
    $sql .= " AND column2 = :param2";
}
if (!empty($param3)) {
    $sql .= " AND column3 = :param3";
}

// Prepare and execute the query
$stmt = $conn->prepare($sql);
if (!empty($param1)) {
    $stmt->bindParam(':param1', $param1);
}
if (!empty($param2)) {
    $stmt->bindParam(':param2', $param2);
}
if (!empty($param3)) {
    $stmt->bindParam(':param3', $param3);
}
$stmt->execute();

// Fetch results
$results = $stmt->fetchAll();