Vamos a ver:
1. fetch_all(): devuelve todas las filas seleccionadas y con MYSQLI_ASSOC le dices que te devuelva cada fila como un array asociativo
2. fetch_array(): devuelve la
siguiente fila (sólo una, la siguiente), para usar esta función en lugar de fetch_all deberías usarla así:
Código PHP:
Ver original$result = $this->_db->query("select * from libros WHERE recomendado != 1
ORDER by rand(".time()."*".time().") limit 6"); while($row = $result->fetch_array(MYSQLI_ASSOC)) {
}
Vamos, que tu método está bien definido, no tienes necesidad de cambiarlo, sino tu método debería devolver un mysqli_result, en vez de un array con todos los datos de la selección.
Así quedaría si quieres usar fetch array:
Código PHP:
Ver originalpublic function get_libros_slider()
{
return $this->_db->query("select * from libros WHERE recomendado != 1
ORDER by rand(".time()."*".time().") limit 6"); }
Código PHP:
Ver original<!-- bucle inicio -->
<?php while($libro = $libroModelo->get_libros_slider()->fetch_array(MYSQLI_ASSOC):?>
<div class="libro">
<a href="libro.php?id=<?php echo $libro['id'];?>">
<img src="libros/<?php echo $libro['caratula'];?>" alt="">
</a>
</div>
<?php endwhile; ?>
<!-- bucle fin -->
No tiene misterio, sólo hay que leer la documentación oficial para saber como funciona o qué datos devuelve una función del lenguaje...