Hi! Could we please enable some services and cookies to improve your experience and our website?

PHPize Online / SQLize Online  /  SQLtest Online

A A A
Login    Share code      Blog   FAQ

Online Sandbox for SQL and PHP: Write, Run, Test, and Share SQL Queries and PHP Code

Copy Format Clear
CREATE TABLE my_table ( id INT AUTO_INCREMENT, column1 INT, column2 INT, PRIMARY KEY (id) ); INSERT INTO my_table(column1, column2) VALUES (2, 1), (1, 9), (3, 3), (5, 2), (3, 8), (1, 1), (2, 2), (4, 4), (9, 2), (4, 11), (2, 5), (1, 6);

Stuck with a problem? Got Error? Ask AI support!

Copy Clear
Copy Format Clear
<?php // $mysqli is already declared as a working database connection by this sandbox $array_conditions = [ 'column1 IN (1, 2, 3, 4)', 'column2 IN (1, 2, 3)', 'column1 IN (4, 5, 6)', ]; $groups = []; foreach ($array_conditions as $cond) { if (sscanf($cond, '%s IN (%[^)])', $col, $values) === 2) { $groups[$col] ??= []; array_push($groups[$col], ...explode(', ', $values)); } } $conditions = []; $parameters = []; foreach ($groups as $column => $values) { $values = array_unique($values); $count = count($values); $conditions[] = "$column IN (" . implode(',', array_fill(0, $count, '?')) . ')'; array_push($parameters, ...$values); } $sql = "SELECT * FROM my_table"; if ($conditions) { $sql .= ' WHERE ' . implode(' AND ', $conditions); } //var_export($conditions); //var_export($parameters); var_export( $mysqli->execute_query($sql, $parameters)->fetch_all(MYSQL_ASSOC) );
Copy Clear