Foros del Web » Programando para Internet » PHP »

Ayuda Catalogo Productos

Estas en el tema de Ayuda Catalogo Productos en el foro de PHP en Foros del Web. Amigos, desde ya muchas gracias por todo, han sido de mucha ayuda para mi trabajo, tengo una duda, necesito relacionar las tablas para que me ...
  #1 (permalink)  
Antiguo 26/01/2010, 11:04
 
Fecha de Ingreso: enero-2007
Mensajes: 35
Antigüedad: 17 años, 3 meses
Puntos: 2
Ayuda Catalogo Productos

Amigos, desde ya muchas gracias por todo, han sido de mucha ayuda para mi trabajo, tengo una duda, necesito relacionar las tablas para que me muestre los productos pro categorias, aqui las tablas:

CREATE TABLE `categoria` (
`id_cat` int(11) NOT NULL auto_increment,
`cat_nombre` varchar(50) NOT NULL,
`cat_descripcion` longtext NOT NULL,
`cat_img` longtext NOT NULL,
PRIMARY KEY (`id_cat`),
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;

CREATE TABLE `producto` (
`id_prod` int(11) NOT NULL auto_increment,
`nombre_prod` varchar(100) NOT NULL,
`descripcion_prod` longtext NOT NULL,
`img_prod` longtext NOT NULL,
`especificaciones_prod` longtext NOT NULL,
PRIMARY KEY (`id_prod`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;


Entonces lo que nesito es que cuando haga click en cat.php?id=1 me aparezcan todos los productos asociados a esa categoria.

Espero terminar luego el código para compartirlo..

Saludos.-
  #2 (permalink)  
Antiguo 26/01/2010, 11:13
 
Fecha de Ingreso: agosto-2009
Ubicación: Jalisco,Mexico
Mensajes: 28
Antigüedad: 14 años, 8 meses
Puntos: 2
Respuesta: Ayuda Catalogo Productos

Primero tienes que tener una llave foranea en la tabla produstos para saber que productos pertenecen a que categoria
Código MySQL:
Ver original
  1. CREATE TABLE `producto` (
  2. `id_prod` int(11) NOT NULL auto_increment,
  3. `nombre_prod` varchar(100) NOT NULL,
  4. `descripcion_prod` longtext NOT NULL,
  5. `img_prod` longtext NOT NULL,
  6. `especificaciones_prod` longtext NOT NULL,
  7. `categoria` int NOT NULL,
  8. PRIMARY KEY (`id_prod`),
  9. FOREIGN KEY (`categoria`) REFERENCES `categoria`(`id_cat`)

y despues solo seleccionas los productos de esa categoria
Código PHP:
Ver original
  1. $cat=$_GET["id"];
  2. mysql_query=("SELECT * FROM productos WHERE categoria=".$cat,$var_coneccion);
  #3 (permalink)  
Antiguo 26/01/2010, 11:15
Avatar de JessicaTJ  
Fecha de Ingreso: enero-2007
Ubicación: 127.0.0.1
Mensajes: 472
Antigüedad: 17 años, 3 meses
Puntos: 25
Respuesta: Ayuda Catalogo Productos

A la tabla producto agregale un field:
`id_cat` INT(5) NOT NULL,

Y luego el query seria algo asi:
Código PHP:
$sql "SELECT nombre_prod, descripcion_prod, img_prod, especificaciones_prod, cat_nombre, cat_descripcion, cat_img FROM producto AS p
LEFT JOIN categoria AS c ON p.id_cat = c.id_cat WHERE p.id_cat LIKE '"
.$_GET['id']."' ORDER BY id"
Seria mas o menos algo asi, espero te sirva ^-^
__________________
٩(͡๏̯͡๏)۶ || ٩(͡๏̯͡๏)۶
  #4 (permalink)  
Antiguo 26/01/2010, 11:26
Avatar de Carxl
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: Bogotá
Mensajes: 2.993
Antigüedad: 17 años, 8 meses
Puntos: 70
Respuesta: Ayuda Catalogo Productos

Sólo por ser psicorígido... xDDD :P y a manera de consejo...

Si necesitas respetar la integridad referencial de tus datos (PK, FK) debes usar innodb como tipo de tabla en categoria y producto para tal fin

Saludos
__________________
Hay 10 tipos de personas, los que entienden binario y los que no. (Anónimo)
www.programandoweb.com
  #5 (permalink)  
Antiguo 26/01/2010, 12:36
 
Fecha de Ingreso: enero-2007
Mensajes: 35
Antigüedad: 17 años, 3 meses
Puntos: 2
Respuesta: Ayuda Catalogo Productos

chmar, gracias por tu ayuda, tengo un error, he buscado pero no encuentro donde tengo el error.

Mi Archivo donde se despliegan los productos es cat.php:
Código PHP:
Ver original
  1. <?php
  2.  
  3. define( 'DB_SERVER', 'localhost' );
  4. define( 'DB_NAME', 'base');
  5. define( 'DB_USER', 'user');
  6. define( 'DB_PASS', 'pass');
  7.  
  8. function conectar () {
  9. $db_con = mysql_connect(DB_SERVER, DB_USER, DB_PASS);
  10. if (!$db_con) return false;
  11. if (!mysql_select_db(DB_NAME, $db_con)) return false;
  12. return $db_con;
  13. }
  14. $cat=$_GET["id"];
  15. ?>
  16.      <h4>Categor&iacute;as de Productos</h4><hr />
  17.         <?
  18.          $link= conectar();
  19.          $result = mysql_query("SELECT * FROM producto WHERE categoria=".$cat, $conectar);   
  20.          while ($row = mysql_fetch_row($result, MYSQL_ASSOC)) {
  21.             echo "$row[nombre_prod]ID<br />
  22.                 <a href=prod.php?id=$row[id_prod]>$row[nombre_prod]</a>
  23.                 $row[descripcion_prod_prod]</a>
  24.                 $row[categoria]";                              
  25. }
  26. mysql_free_result($result);        
  27. ?>

Donde tengo el error?....

Gracias por todo...--
  #6 (permalink)  
Antiguo 26/01/2010, 13:14
Avatar de Carxl
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: Bogotá
Mensajes: 2.993
Antigüedad: 17 años, 8 meses
Puntos: 70
Respuesta: Ayuda Catalogo Productos

Y si colocas tu $row dentro de {}, cómo te va?

Código PHP:
Ver original
  1. echo "{$row['nombre_prod']} {$row['descripcion_prod_prod']}";

Debes hacer lo mismo con cada $row...

Saludos
__________________
Hay 10 tipos de personas, los que entienden binario y los que no. (Anónimo)
www.programandoweb.com
  #7 (permalink)  
Antiguo 26/01/2010, 13:26
 
Fecha de Ingreso: enero-2007
Mensajes: 35
Antigüedad: 17 años, 3 meses
Puntos: 2
Respuesta: Ayuda Catalogo Productos

Carxl gracias, ya cambie las tablas a innodb.

Voy a probar tu sugerencia..


Gracias por todo!
  #8 (permalink)  
Antiguo 28/01/2010, 09:55
 
Fecha de Ingreso: agosto-2009
Ubicación: Jalisco,Mexico
Mensajes: 28
Antigüedad: 14 años, 8 meses
Puntos: 2
Respuesta: Ayuda Catalogo Productos

Me gustaria saber que error te tira si lo pones a la mejor te ayudaria mejor pero creo que puedes probar esto

Código PHP:
Ver original
  1. echo $row["nombre_prod"]."ID<br /><a href='prod.php?id=".$row["id_prod"]."'>".$row["nombre_prod"]."</a>".$row["descripcion_prod_prod"].$row["categoria"];

Etiquetas: catalogo, productos
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 13:41.