Ver Mensaje Individual
  #12 (permalink)  
Antiguo 12/06/2013, 08:55
joomscl
 
Fecha de Ingreso: junio-2013
Ubicación: Santiago
Mensajes: 10
Antigüedad: 10 años, 10 meses
Puntos: 0
Pregunta Respuesta: Ordenar productos por categoría (MySql+php)

Quizás este método no es la solución a mi problema. Quizás alguien sabe cómo realizar la idea de una mejor manera, Aquí explíco nuevamente mi solicitud, pero con más detalles:

Estoy creando un catálogo web, el cual por ahora consta de los siguientes archivos y códigos:

index.php - Este archivo muestra los productos en un Grid de miniaturas

Código PHP:
<?php
   session_start
();
   include(
"connect.php");
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <meta name="generator" content="Notepad++" />
    <title>Inicio</title>
</head>
<body>

<?php
    $sql 
mysql_query("SELECT * FROM `products`") or die(mysql_error());
    
    if ( 
mysql_num_rows($sql) == ) {
      echo 
"<h6>Pronto estará la sección disponible con todos nuestros productos.</h6>";
    } else {
      
$sql mysql_query ("SELECT * FROM `products` ORDER BY `time` ASC") or die(mysql_error());
      
      while ( 
$row mysql_fetch_assoc($sql) ) {

        echo 
"<a href=\"view.php?id=".$row['id']."\"><img src='items/"$row['img']."' border='0' alt='' /></a>";

        echo 
"<div><a href=\"view.php?id=".$row['id']."\">".$row['title']."</a></div>";
        
        echo 
$row['price_old'];
        
        echo 
$row['price'];
        
        echo 
$row['desc'];
      
      }
    }
?> 

</body>
</html>
Luego tengo el archivo view.php - Éste muestra el detalle de los productos en una página nueva y es llamado a través del link: <a href=\"view.php?id=".$row['id']."\">".$row['title']."</a>

Código PHP:
<?php
  $id 
mysql_escape_string($_GET['id']);
  include(
"connect.php");
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <meta name="generator" content="Notepad++" />
    <title>Detalle de Producto</title>
</head>
<body>

<?php

  $sql 
mysql_query("SELECT * FROM `products` WHERE id = $id") or die(mysql_error());
  
  if ( 
mysql_num_rows($sql) == ) {
      echo 
"<h6>El producto que busca no existe.</h6>";
    } else {
  
$sql mysql_query ("SELECT * FROM `products` WHERE id = $id") or die(mysql_error());
      
  while ( 
$row mysql_fetch_assoc($sql) ) {
        
        echo 
"<div class='slide'><img src='items/"$row['img']."' width='550' height='500' alt='' /></div>";
        
        echo 
$row['title'];
        
        echo 
$row['price'];
        
        echo 
$row['price_old'];
        
        echo 
$row['desc'];
        
        echo 
"Material: "$row['material']."<br />";
        
        echo 
"Tamaño: "$row['size']."<br />";
        
        echo 
"SKU: "$row['item_sku']."";
        
      }
    }
?>
</body>
</html>

connect.php - conexión con base de datos

Código PHP:
<?php   
   mysql_pconnect
("localhost","root","");
   
mysql_select_db("joomscl");
?>

BD
Código:
-- Table structure for table `products`
--

CREATE TABLE IF NOT EXISTS `products` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `title` varchar(30) NOT NULL,
  `desc` text NOT NULL,
  `img` varchar(20) NOT NULL,
  `img2` varchar(20) NOT NULL,
  `price` decimal(11,3) NOT NULL,
  `price_old` decimal(11,3) NOT NULL,
  `material` varchar(20) NOT NULL,
  `size` varchar(20) NOT NULL,
  `category` varchar(20) NOT NULL,
  `item_sku` varchar(255) NOT NULL,
  `time` date NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB  DEFAULT CHARSET=utf8 AUTO_INCREMENT=4 ;

--
-- Dumping data for table `products`
Hasta aquí, todo funciona a la perfección.

Bueno, luego de esta detallada información, en donde tengo un catálogo, el cual me permite ver una lista de productos y al hacer clic en ellos, puedo ver cada uno de ellos en una página nueva, me pregunto: ¿Qué debo hacer para crear un menú lateral linkeable con los nombres de cada una de las categorías que voy incluyendo manualmente en la BD mysql (campo category)?

Espero por favor que alguien me pueda ayudar.
Como es un desafío personal y no comercial, no puedo ofrecer dinero :(

Gracias