Hi! Could we please enable some services and cookies to improve your experience and our website?
Online Sandbox for SQL and PHP: Write, Run, Test, and Share SQL Queries and PHP Code
CREATE TABLE somewhere (
id INT AUTO_INCREMENT,
name VARCHAR(100),
PRIMARY KEY (id)
);
INSERT INTO somewhere(id, name) VALUES
(1, 'Chad'),
(4, 'Ned'),
(5, 'Dave'),
(14, 'Newt'),
(18, 'Bill'),
(21, 'Norton'),
(25, 'Alan');
<?php
// $mysqli is already declared as a working database connection by this sandbox
$ids = [1, 5, 18, 25];
$count = count($ids);
$params = array();
foreach ($ids as $key => $val) {
$params[':id_' . $key] = $val;
}
$inQuery = implode(', ', array_keys($params));
var_dump($params);
if ($count) {
$placeholders = implode(',', array_fill(0, $count, '?'));
$query = 'SELECT name FROM somewhere WHERE id IN (' . $inQuery . ') ORDER BY name';
echo $query;
//$stmt = $mysqli->prepare("$sql WHERE id IN ($placeholders) $orderBy");
$stmt = $mysqli->prepare($query);
$stmt->execute($params);
//$stmt->execute();
/* $stmt->bind_param(str_repeat('i', $count), ...$ids);
$stmt->execute();*/
$result = $stmt->get_result();
} else {
$result = $mysqli->query("$sql $orderBy"); // a prepared statement is unnecessary
}
foreach ($result as $row) {
echo "<div>{$row['name']}</div>\n";
}