Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] Categorias y subcategorias

Estas en el tema de Categorias y subcategorias en el foro de PHP en Foros del Web. Hola como estan espero me puedan ayudar estoy creando una pagina ya tengo las categorias pero me hacen falta las sub categorias por ejemplo tengo ...
  #1 (permalink)  
Antiguo 17/03/2013, 15:17
 
Fecha de Ingreso: diciembre-2012
Mensajes: 178
Antigüedad: 11 años, 4 meses
Puntos: 2
Exclamación Categorias y subcategorias

Hola como estan espero me puedan ayudar estoy creando una pagina ya tengo las categorias pero me hacen falta las sub categorias por ejemplo tengo las categorias de autos deportes, etc
pero por ejemplo quiere crear una sub categoria donde esten
+autos
+áutos deportivos
y que al hacer click en autos deportivos me aparezcan solamente ese tipo de autos nose si me explico
  #2 (permalink)  
Antiguo 17/03/2013, 17:43
Avatar de CoriaWeb  
Fecha de Ingreso: septiembre-2012
Ubicación: Coria del Río - Sevilla
Mensajes: 1.795
Antigüedad: 11 años, 8 meses
Puntos: 130
Respuesta: Categorias y subcategorias

Y el problema es?
__________________
Hosting de Calidad
Servidores Dedicados Administrados
CoriaWeb.hosting
  #3 (permalink)  
Antiguo 17/03/2013, 18:33
Avatar de Heli0s  
Fecha de Ingreso: abril-2010
Mensajes: 789
Antigüedad: 14 años, 1 mes
Puntos: 40
Respuesta: Categorias y subcategorias

Para hacer eso tienes que tener el listado de categorías, otro listado que sea el de sub-categorías, y relacionarlas mediante un ID, por ejemplo para conseguir el listado de articulos o lo que sea que haya en las categorías, deberías de hacer un where en la sentencia sql similar a este: SELECT * from articulos WHERE categoria = '$cat' && subcategoria = 'subcat'.

Eso por ponerte un ejemplo, debes de entender tu la lógica de esto.
  #4 (permalink)  
Antiguo 20/03/2013, 06:48
 
Fecha de Ingreso: diciembre-2012
Mensajes: 178
Antigüedad: 11 años, 4 meses
Puntos: 2
Respuesta: Categorias y subcategorias

Cita:
Iniciado por CoriaWeb Ver Mensaje
Y el problema es?
El problema es que no puedo hacerlo
  #5 (permalink)  
Antiguo 20/03/2013, 07:30
Avatar de loncho_rojas
Colaborador
 
Fecha de Ingreso: octubre-2008
Ubicación: En el mejor lugar del mundo
Mensajes: 2.704
Antigüedad: 15 años, 6 meses
Puntos: 175
Respuesta: Categorias y subcategorias

Alex... lo que te queremos decir es que debes ser más específico... NO PUEDO HACERLO no es algo muy convincente... puede y debes hacerlo... necesitas dos tablas en tu BD categoria y otra sub categoria como te indico mas arriba Heli0s

categorias:
id_categoria -->Primary Key Autoincrement
categoria

subcategorias:
id_subcat -->Primary Key Autoincrement
id_categoria -->Foreing Key
subcategoria


cuando consultas lo pides muy similar a lo que Heli0s
__________________
Ayudo con lo que puedo en el foro, y solo en el foro.. NO MENSAJES PRIVADOS.. NO EMAILS NI SKYPE u OTROS.

Antes de hacer un TOPICO piensa si puedes hallarlo en Google o en el Buscador del Foro...
  #6 (permalink)  
Antiguo 20/03/2013, 13:33
Avatar de masterpuppet
Software Craftsman
 
Fecha de Ingreso: enero-2008
Ubicación: Montevideo, Uruguay
Mensajes: 3.550
Antigüedad: 16 años, 4 meses
Puntos: 845
Respuesta: Categorias y subcategorias

@alexperaza, te sugiero que busques info sobre los dos modelos mas utilizados, adjacency list y nested set, en lo personal creo que utilizar dos tablas es algo muy precario.

Saludos.
__________________
http://es.phptherightway.com/
thats us riders :)
  #7 (permalink)  
Antiguo 20/03/2013, 15:26
Avatar de portalmana  
Fecha de Ingreso: septiembre-2007
Ubicación: Montevideo-Uruguay
Mensajes: 633
Antigüedad: 16 años, 7 meses
Puntos: 80
Respuesta: Categorias y subcategorias

Como dice Masterpuppet, utilizar dos tablas es muy precario.
Aqui en la wiki del foro hay un tutorial.

Arbol Jerarquico

Saludos
__________________
"La imaginación es más importante que el conocimiento. El conocimiento es limitado, mientras que la imaginación no" -- A.Einstein
objetivophp.com,twitter.com/objetivophp
  #8 (permalink)  
Antiguo 20/03/2013, 16:34
 
Fecha de Ingreso: diciembre-2012
Mensajes: 178
Antigüedad: 11 años, 4 meses
Puntos: 2
Respuesta: Categorias y subcategorias

Les voy a ser sincero es la primera vez que diseño una web y la verdad me ha costado muchisimo hasta aqui pero gracias a este foro y su ayuda lo he logrado la cuestion es que uso el dreamweaver para diseñar pero nose como hacer para que me muestre las sub categorias cuando yo ingreso a una categoria
  #9 (permalink)  
Antiguo 20/03/2013, 16:49
 
Fecha de Ingreso: abril-2008
Ubicación: El Salvador
Mensajes: 736
Antigüedad: 16 años, 1 mes
Puntos: 47
Respuesta: Categorias y subcategorias

ok, mira tenes que ocupar codigo php para hacer consultas a mysql ... mmmmm si esperas que aqui te demos los codigos para hacerlo esta dificil.... pero lee un poco sobre php porque tienes muucho camino por recorrer si quieres lograrlo asi que ánimo y aqui con gusto te ayudamos pero muestra tus avances y te iremos guiando
  #10 (permalink)  
Antiguo 20/03/2013, 17:32
 
Fecha de Ingreso: diciembre-2012
Mensajes: 178
Antigüedad: 11 años, 4 meses
Puntos: 2
Respuesta: Categorias y subcategorias

Código PHP:
Ver original
  1. <?php require_once('Connections/clasi.php'); ?>
  2. <?php
  3. if (!function_exists("GetSQLValueString")) {
  4. function GetSQLValueString($theValue, $theType, $theDefinedValue = "", $theNotDefinedValue = "")
  5. {
  6.   if (PHP_VERSION < 6) {
  7.     $theValue = get_magic_quotes_gpc() ? stripslashes($theValue) : $theValue;
  8.   }
  9.  
  10.   $theValue = function_exists("mysql_real_escape_string") ? mysql_real_escape_string($theValue) : mysql_escape_string($theValue);
  11.  
  12.   switch ($theType) {
  13.     case "text":
  14.       $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
  15.       break;    
  16.     case "long":
  17.     case "int":
  18.       $theValue = ($theValue != "") ? intval($theValue) : "NULL";
  19.       break;
  20.     case "double":
  21.       $theValue = ($theValue != "") ? doubleval($theValue) : "NULL";
  22.       break;
  23.     case "date":
  24.       $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
  25.       break;
  26.     case "defined":
  27.       $theValue = ($theValue != "") ? $theDefinedValue : $theNotDefinedValue;
  28.       break;
  29.   }
  30.   return $theValue;
  31. }
  32. }
  33.  
  34. $currentPage = $_SERVER["PHP_SELF"];
  35.  
  36. $maxRows_datoscategoria = 10;
  37. $pageNum_datoscategoria = 0;
  38. if (isset($_GET['pageNum_datoscategoria'])) {
  39.   $pageNum_datoscategoria = $_GET['pageNum_datoscategoria'];
  40. }
  41. $startRow_datoscategoria = $pageNum_datoscategoria * $maxRows_datoscategoria;
  42.  
  43. $varcategoria_datoscategoria = "0";
  44. if (isset($_GET["cat"])) {
  45.   $varcategoria_datoscategoria = $_GET["cat"];
  46. }
  47. mysql_select_db($database_clasi, $clasi);
  48. $query_datoscategoria = sprintf("SELECT * FROM principal WHERE principal.id_categoria=%s ORDER BY principal.id DESC", GetSQLValueString($varcategoria_datoscategoria, "int"));
  49. $query_limit_datoscategoria = sprintf("%s LIMIT %d, %d", $query_datoscategoria, $startRow_datoscategoria, $maxRows_datoscategoria);
  50. $datoscategoria = mysql_query($query_limit_datoscategoria, $clasi) or die(mysql_error());
  51. $row_datoscategoria = mysql_fetch_assoc($datoscategoria);
  52.  
  53. if (isset($_GET['totalRows_datoscategoria'])) {
  54.   $totalRows_datoscategoria = $_GET['totalRows_datoscategoria'];
  55. } else {
  56.   $all_datoscategoria = mysql_query($query_datoscategoria);
  57.   $totalRows_datoscategoria = mysql_num_rows($all_datoscategoria);
  58. }
  59. $totalPages_datoscategoria = ceil($totalRows_datoscategoria/$maxRows_datoscategoria)-1;
  60.  
  61. $varcat_consultacategoria = "0";
  62. if (isset($_GET["recordID"])) {
  63.   $varcat_consultacategoria = $_GET["recordID"];
  64. }
  65. mysql_select_db($database_clasi, $clasi);
  66. $query_consultacategoria = sprintf("SELECT * FROM categorias WHERE categorias.id_categoria=%s", GetSQLValueString($varcat_consultacategoria, "int"));
  67. $consultacategoria = mysql_query($query_consultacategoria, $clasi) or die(mysql_error());
  68. $row_consultacategoria = mysql_fetch_assoc($consultacategoria);
  69. $totalRows_consultacategoria = mysql_num_rows($consultacategoria);
  70.  
  71. mysql_select_db($database_clasi, $clasi);
  72. $query_subcategoria = "SELECT * FROM subcategorias ORDER BY subcategorias.nombre_subcategoria ASC ";
  73. $subcategoria = mysql_query($query_subcategoria, $clasi) or die(mysql_error());
  74. $row_subcategoria = mysql_fetch_assoc($subcategoria);
  75. $totalRows_subcategoria = mysql_num_rows($subcategoria);
  76.  
  77. $queryString_datoscategoria = "";
  78. if (!empty($_SERVER['QUERY_STRING'])) {
  79.   $params = explode("&", $_SERVER['QUERY_STRING']);
  80.   $newParams = array();
  81.   foreach ($params as $param) {
  82.     if (stristr($param, "pageNum_datoscategoria") == false &&
  83.         stristr($param, "totalRows_datoscategoria") == false) {
  84.       array_push($newParams, $param);
  85.     }
  86.   }
  87.   if (count($newParams) != 0) {
  88.     $queryString_datoscategoria = "&" . htmlentities(implode("&", $newParams));
  89.   }
  90. }
  91. $queryString_datoscategoria = sprintf("&totalRows_datoscategoria=%d%s", $totalRows_datoscategoria, $queryString_datoscategoria);
  92. ?>
  93.  
  94. Esto es lo que llevo en las categorias de aqui quiero crear una consulta para las sub categorias pero nose como hacer
  #11 (permalink)  
Antiguo 23/04/2013, 21:50
 
Fecha de Ingreso: diciembre-2012
Mensajes: 178
Antigüedad: 11 años, 4 meses
Puntos: 2
Respuesta: Categorias y subcategorias

al final solo necesite una tabla para hacer la subcategorias teniendo en esta id_categoria, nombre_categoria IdPadre. Lo relacione con la consulta y me funciono gracias por su ayuda

Etiquetas: categorias, dreamweaver, phpmysql, subcategorias
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 18:53.