Miren he creado una clase la cual interactua con la base de datos.
// Método para obtener los 3 últimos libros ingresados
class Book{
public function getLastBook(){
$sql = "SELECT count(*) as cuantos FROM books";
$res = Conectar::con()->query($sql);
$total;
if($reg = $res->fetch_array()){
$total = $reg['cuantos'];
}
$total = $total-3;
$sql = "SELECT isbn, title, bookdes, price, catid FROM books limit $total, 4";
$res = Conectar::con()->query($sql);
if(!$res){
return FALSE;
}
if($res->num_rows == 0){
return FALSE;
}
while($reg = $res->fetch_assoc()){
$this->books[] = $reg;
}
return $this->books;
$reg->free();
}
}
Lo que pasa es que en la pagina donde interactuo con esta clase creo un objeto de esta clase.
La primera llamada trae los datos correctamente.
Cuando vuelvo a utilizar el objeto para llamar otro método me arrastra los datos almacenados en la anterior método. Es por eso que puse $reg->free().
Lo que hice es crear varios objetos de esta clase e ir llamando cada uno con un método diferente, lo que me parece que no esta bien.
Que es lo que puedo estar haciendo mal.
<?php
$b = new Book();
$bookmas = $b->getMasVendido();
if(!is_array($bookmas)){
?>
<p>No hay libro más vendido actualmente.</p>
<?php
}else{
$imagen = "images/".$bookmas[0]['isbn'].".jpg";
if(file_exists($imagen)){
?>
<img src="<?php echo $imagen; ?>" width="66px" height="88" alt="<?php echo $bookmas[0]['title']; ?>" />
<?php
}else{
?>
<img src="<?php echo $base->getBaseURL(); ?>images/no_picture.jpg" width="66px" height="88" alt="<?php echo $bookmas[0]['title']; ?>" />
<?php
}
?>
<h4><?php echo $bookmas[0]['title']; ?></h4>
<?php
$autores = $b->getNameAuthor($bookmas[0]['isbn']);
if(is_array($autores)){
for($i=0; $i<sizeof($autores); $i++){
?>
<h6><?php echo $autores[$i]['autor']; ?></h6>
<?php
}
}else{
?>
<h6>Anónimo</h6>
<?php
}
?>
<h7>ISBN: <?php echo $bookmas[0]['isbn']; ?></h7>
<div class="mas_info"><a href="#" title="Leer más">> Información completa</a></div>
<span>S/. <?php echo $bookmas[0]['price']; ?></span>
<div class="add_carrito">
<a href="" title="">añadir al carrito</a>
</div>
<?php
}
unset($b);
?>