Problema de PHP: mysqli_error () espera exactamente 1 parámetro, 0 dado
Solo estoy trabajando con algunos tutoriales en un libro, y estoy tratando de poner una opción de 'Filtro' en mi página. Por lo tanto, cuando la página se carga, debe mostrar todos los valores, pero si se selecciona algo de la opción de filtro de lista desplegable, la lista debería cambiar en la página. Aquí está mi código:
<?php
require_once 'login.php';
$conn = new mysqli ($host, $user, $password, $database) or die("Connection Failed");
$col = 'Blue';
$sql = 'SELECT * FROM users ORDER BY user_creation_date desc';
$result = $conn->query($sql) or die(mysqli_error());
$columns = array('Blue', 'Pink', 'Yellow');
if (isset($_GET['column']) && in_array($_GET['column'], $columns)) {
$col = $_GET['column'];
// prepare the SQL query
$sql = "SELECT * FROM users
WHERE user_pref = $col";
// submit the query and capture the result
$result = $conn->query($sql) or die(mysqli_error());
}
?>
<!DOCTYPE HTML>
<html>
<head>
<meta charset="utf-8">
<title>Filter by User Pref</title>
</head>
<body>
<form id="form1" method="get" action="">
<label for="column">Order by:</label>
<select name="column" id="column">
<option <?php if ($col == 'Blue') echo 'selected'; ?>>Blue</option>
<option <?php if ($col == 'Pink') echo 'selected'; ?>>Pink</option>
<option <?php if ($col == 'Yellow') echo 'selected'; ?>>Yellow</option>
</select>
<input type="submit" name="change" id="change" value="Change">
</form>
<table>
<tr>
<th scope="col">User name</th>
<th scope="col">User pref</th>
<th> </th>
<th> </th>
</tr>
<?php while($row = $result ->fetch_assoc()) { ?>
<tr>
<td><?php echo $row['user_name']; ?></td>
<td><?php echo $row['user_pref']; ?></td>
</tr>
<?php } ?>
</table>
</body>
</html>
El error que estoy recibiendo es
Advertencia: mysqli_error () espera exactamente 1 parámetro, 0 en la línea 23. Esta es la línea 23: $ resultado = $ conn-> query ($ sql) o die (mysqli_error ());
Gracias por adelantado