Я в общем согласен с предыущим оратором, что PDO будет попроще в работе, тем более что твои познания в mysqli не сильно отличаются от полного незнания, и в этом смысле разница будет невелика.
Но чтобы в прыжке не переобуваться, вот тебе код для mysqli
в массиве $array лежат твои id товаров
$array = [1,2,3];
$in = str_repeat('?,', count($array) - 1) . '?';
$sql = "SELECT * FROM `tovar` WHERE `id` = IN ($in)";
$stmt = $mysqli->prepare($sql);
$types = str_repeat('s', count($array));
$stmt->bind_param($types, ...$array);
$Stmt->execute();
$result = $stmt->get_result(); // get the mysqli result
$data = $result->fetch_all(MYSQLI_ASSOC);
Теперь в массиве $data лежат твои товары.
Для сравнения, код для пдо будет попроще
Плюс, в качестве бонуса, пдо вернет массив, проиндексированный не числами по порядку, а ид товара. Тебе же надо будет как-то совмещать данные из бд с товарами, чтобы перемножить цену на количество.
$array = [1,2,3];
$in = str_repeat('?,', count($array) - 1) . '?';
$sql = "SELECT * FROM `tovar` WHERE `id` = IN ($in)";
$stmt = $pdo->prepare($sql);
$stmt->execute($array);
$data = $stmt->fetchAll(PDO::FETCH_UNIQUE);