Ver Mensaje Individual
  #8 (permalink)  
Antiguo 16/03/2014, 04:18
lolainas
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Pasar fetch_all a fetch_array

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
  1. $result = $this->_db->query("select * from libros WHERE recomendado != 1
  2.     ORDER by rand(".time()."*".time().") limit 6");
  3. while($row = $result->fetch_array(MYSQLI_ASSOC)) {
  4.     var_dump($row);
  5. }

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 original
  1. public function get_libros_slider()
  2.     {
  3.      return $this->_db->query("select * from libros WHERE recomendado != 1
  4.     ORDER by rand(".time()."*".time().") limit 6");  
  5.     }

Código PHP:
Ver original
  1. <!-- bucle inicio -->
  2.             <?php while($libro = $libroModelo->get_libros_slider()->fetch_array(MYSQLI_ASSOC):?>
  3.                 <div class="libro">
  4.                 <a href="libro.php?id=<?php echo $libro['id'];?>">
  5.                 <img src="libros/<?php echo $libro['caratula'];?>" alt="">
  6.                 </a>
  7.                 </div>
  8.             <?php endwhile; ?>
  9. <!-- 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...

Última edición por lolainas; 16/03/2014 a las 04:28