1) Usa los highlight de codigo, se hace mucho mas facil de leer.
2)
2.a) $tabla no esta definida, pero supongo que apunta a la tabla de productos.
2.b) para traer los de una categoria te falta el where:
3) Deberias sanear o filtrar de alguna manera los datos que metes en la consulta.
3.a) Como el id es un entero, una solucion rapida es intval()
4) la clase mysql_* esta obsoleta y sera eliminada de php en un futuro cercano, lo mejor es que cuanto antes te pases a mysqli_* que es muy similar (de hecho es una extencion de mysql_*) pero que ofrece nuevas funciones y metodos (mas seguros y mas lentos) para trabajar con la bd.
Código PHP:
Ver original<?php
// Esto iria en el config.php
$enlace = mysqli_connect("127.0.0.1", "usuario", "contraseña", "world");
if (!$enlace)
{
print "$errno: $error\n";
}
// Esto en tu archivo:
$consulta = "SELECT * FROM $tabla WHERE categoria = ? ORDER BY id DESC LIMIT 8";
die("Falló la preparación de la sentencia\n");
$resultado = mysqli_stmt_get_result($sentencia);
{
// Lo musmo que haces ahora
}
// Esto al final, es para matar las conexiones.
?>
a simple vista puede parecerte mucho mas complejo (de hecho, un poco si lo es) pero una vez te acostumbras se hace igual de facil, ademas el hecho de bindear parametros (mysqli_stmt_bind_param($stmt, "i", $_GET["id"]);) te soluciona la mayor parte de los problemas de inyeccion sql, ya no debes preocuparte por que valor viene en $_GET ya que al bindearlo eliminas el risego de un posible ataque. No nesesitas andar saneando o parseando la variable.
saludos