Ver Mensaje Individual
  #9 (permalink)  
Antiguo 23/09/2010, 05:31
churretin
 
Fecha de Ingreso: abril-2010
Ubicación: Extremadura
Mensajes: 128
Antigüedad: 14 años
Puntos: 2
Respuesta: combobox doble, nose donde falla

Código PHP:
<?php
// datos de conexion a la BD.
$servidor  ="localhost"// host
$usuario   ="root"
$clave     ="root";
$basedatos ="ayuntamiento_zafra"// Indicar una Base de datos.

// si se ha pulsao el boton enviar ($enviado) se procesa el formulario ..
// Sino, se continua con el formulario y los nuevos valores de los Select ..
// OJO si se tienen mas varibles (mas <input> ) se van a perder sus valores a no ser
// que los obtengamos y se les de como valor inicial en el value= de cada uno segun corresponda.

if (!empty($_POST['enviado'])){

// Procesar el formulario ...
echo "Procesando formulario:<br>";
echo 
"Recibido id_tabla_padre: ".$_POST['id_padre']."<br>";
echo 
"Recibido id_tabla_hija: ".$_POST['id_hija'];

} else {

   
// Conexión a la BD
   
$conexion mysql_connect($servidor$usuario$clave) or die(mysql_error());
   
mysql_select_db($basedatos$conexion) or die(mysql_error());

   
// Obtener el $id_padre del envio a si mismo del formulario ..
   
$id_padre=$_POST['id_padre'];

   
// Inicio Formulario .. PHP_SELF enviamos a si mismo (a este script).
   
echo "<form action=\"".$_SERVER['PHP_SELF']."\" method=\"POST\">\n\n";

   
// Formar Selec "Padre".
   
echo "<select name=\"id_padre\" onChange=\"this.form.submit()\">\n";
   echo 
"<option value=\"\"> Seleccione un Item </option>\n";

   
$SQLconsulta_padre="SELECT * FROM sectores";
   
$consulta_padre mysql_query($SQLconsulta_padre,$conexion) or die(mysql_error());

   while   (
$registro_padre=mysql_fetch_assoc($consulta_padre)){
      
// Se mira si el ID del registro es el mismo q el $id_padre q recibimos si hemos cambiado el select hijo.
      // Se selecciona en consecuencia (selected) la opción elegida.
      
if ($id_padre == $registro_padre['id_sector']){
         echo 
"<option value=\"".$registro_padre['id_sector']."\" selected>".$registro_padre['nom_sector']."</option>\n";
      } else {
         echo 
"<option value=\"".$registro_padre['id_sector']."\">".$registro_padre['nom_sector']."</option>\n";
      }
    }
   echo 
"</select>\n\n";

   
mysql_free_result($consulta_padre); // Liberar memoria usada por consulta.

   // Formar Select "Hijo"
   
echo "<select name=\"id_hija\">\n";

   
// Si $id_padre no tiene valor (caso de que no se ha seleccionado ningua opcion del select hijo
   // se muestra el mensaje de "seleccine un item" (del select padre).
   
if (!empty($id_padre)){

       
$SQLconsulta_hija="SELECT * FROM subsectores WHERE id_sector='$id_sector'";
       
$consulta_hija mysql_query($SQLconsulta_hija,$conexion) or die(mysql_error());       
       
// se mira el total de registros de la consulta .. si es 0 se muestra mensaje en el select ..
       
if (mysql_num_rows($consulta_hija) != 0){
          while(
$registro_hija=mysql_fetch_assoc($consulta_hija)){
            echo 
"<option value=\"".$registro_hija['id_subsector']."\">".$registro_hija['nom_subsector']."</option>\n";
          }
        } else{
            echo 
"<option value=\"\"> No hay registros para este Item </option>";
        }
    } else {
        echo 
"<option value=\"\"> <-- Seleccione un Item  </option>";
    }

    
mysql_free_result($consulta_hija); // Liberar memoria usada por consulta.
    
    
echo "</select>\n\n";
    echo 
"<input type=\"submit\" name=\"enviado\" value=\" Enviar \" >\n\n";
    echo 
"</form>\n";


?>
ya ahora el sql:

Código MySQL:
Ver original
  1. -- phpMyAdmin SQL Dump
  2. -- version 3.2.4
  3. -- http://www.phpmyadmin.net
  4. --
  5. -- Servidor: localhost
  6. -- Tiempo de generación: 23-09-2010 a las 13:29:10
  7. -- Versión del servidor: 5.1.41
  8. -- Versión de PHP: 5.3.1
  9.  
  10. SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";
  11.  
  12.  
  13. /*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
  14. /*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
  15. /*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
  16. /*!40101 SET NAMES utf8 */;
  17.  
  18. --
  19. -- Base de datos: `ayuntamiento_zafra`
  20. --
  21. CREATE DATABASE `ayuntamiento_zafra` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
  22. USE `ayuntamiento_zafra`;
  23.  
  24. -- --------------------------------------------------------
  25.  
  26. --
  27. -- Estructura de tabla para la tabla `sectores`
  28. --
  29.  
  30. CREATE TABLE IF NOT EXISTS `sectores` (
  31.   `id_sector` int(11) NOT NULL AUTO_INCREMENT,
  32.   `nom_sector` varchar(50) NOT NULL,
  33.   PRIMARY KEY (`id_sector`)
  34. ) ENGINE=MyISAM  DEFAULT CHARSET=utf8 AUTO_INCREMENT=39 ;
  35.  
  36. --
  37. -- Volcar la base de datos para la tabla `sectores`
  38. --
  39.  
  40. INSERT INTO `sectores` (`id_sector`, `nom_sector`) VALUES
  41. (1, 'Agricultura y Ganadería'),
  42. (2, 'Alimentación'),
  43. (3, 'Animales y mascotas'),
  44. (4, 'Arte'),
  45. (5, 'Asesorías y despachos'),
  46. (6, 'Bancos y cajas'),
  47. (7, 'Belleza'),
  48. (8, 'Bodas');
  49.  
  50.  
  51. -- --------------------------------------------------------
  52.  
  53. --
  54. -- Estructura de tabla para la tabla `subsectores`
  55. --
  56.  
  57. CREATE TABLE IF NOT EXISTS `subsectores` (
  58.   `id_subsector` int(11) NOT NULL AUTO_INCREMENT,
  59.   `nom_subsector` varchar(50) NOT NULL,
  60.   `id_sector` int(11) NOT NULL,
  61.   PRIMARY KEY (`id_subsector`)
  62. ) ENGINE=MyISAM  DEFAULT CHARSET=utf8 AUTO_INCREMENT=357 ;
  63.  
  64. --
  65. -- Volcar la base de datos para la tabla `subsectores`
  66. --
  67.  
  68. INSERT INTO `subsectores` (`id_subsector`, `nom_subsector`, `id_sector`) VALUES
  69. (1, 'Abastecimiento de agua', 1),
  70. (2, 'Abonado de tierra', 1),
  71. (3, 'Abono orgánico', 1),
  72. (4, 'Aceite de girasol', 1),
  73. (5, 'Aceite de oliva', 1),
  74. (6, 'Aceite industrial', 1),
  75. (7, 'Aglomerado asfáltico', 1),
  76. (8, 'Alfalfa', 1),
  77. (9, 'Alimento para ganado', 1),
  78. (10, 'Árboles', 1),
  79. (11, 'Arboricultura', 1),
  80. (12, 'Asesoramiento agrícola', 1),
  81. (13, 'Asociaciones agrarias', 1),
  82. (14, 'Avícola', 1),
  83. (15, 'Avicultura', 1),
  84. (16, 'Canalizaciones', 1),
  85. (17, 'Cebollas', 1),
  86. (18, 'Comercialización producto agrícola', 1),
  87. (19, 'Construcción agrícola', 1),
  88. (20, 'Consultoría ganadera', 1),
  89. (21, 'Corcho', 1),
  90. (22, 'Cría de ganado equino', 1),
  91. (23, 'Cría de ganado porcino', 1),
  92. (24, 'Elaboración de vino', 1),
  93. (25, 'Fertilizantes', 1),
  94. (26, 'Frutales', 1),
  95. (27, 'Ganadería', 1),
  96. (28, 'Ganado', 1),
  97. (29, 'Granja', 1),
  98. (30, 'Hortalizas', 1),
  99. (31, 'Hortofrutícolas', 1),
  100. (32, 'Instalación de riego', 1),
  101. (33, 'Invernaderos', 1),
  102. (34, 'Maquinaria agrícola', 1),
  103. (35, 'Maquinaria para agricultura', 1),
  104. (36, 'Maquinaria vinícola', 1),
  105. (37, 'Mataderos', 1),
  106. (38, 'Material para agricultura', 1),
  107. (39, 'Molinos', 1),
  108. (40, 'Motosierras', 1),
  109. (41, 'Movimiento de tierras', 1),
  110. (42, 'Naranjas', 1),
  111. (43, 'Palmeras', 1),
  112. (44, 'Pesticidas', 1),
  113. (45, 'Picaderos', 1),
  114. (46, 'Piensos', 1),
  115. (47, 'Piscifactoría', 1),
  116. (48, 'Productos agropecuarios', 1),
  117. (49, 'Semillas', 1),
  118. (50, 'Semilleros', 1),
  119. (51, 'Servicio agrícola', 1),
  120. (52, 'Tratamiento agrícola', 1),
  121. (53, 'Tratamiento de agua', 1),
  122. (54, 'Tratante de ganado', 1),
  123. (55, 'Verduras', 1),
  124. (56, 'Vivero de plantas', 1),
  125. (57, 'Viveros árboles', 1),
  126. (58, 'Viveros de marisco', 1),
  127. (59, 'Zumos', 1),
  128. (60, 'Aceites', 2),
  129. (61, 'Aceitunas', 2),
  130. (62, 'Aditivos para la alimentación', 2),
  131. (63, 'Agua embotellada', 2),
  132. (64, 'Agua mineral', 2),
  133. (65, 'Agua potable', 2),
  134. (66, 'Ahumados', 2),
  135. (67, 'Alimentación animal', 2),
  136. (68, 'Alimentación distribución', 2),
  137. (69, 'Alimentos congelados', 2),
  138. (70, 'Alimentos preparados', 2),
  139. (71, 'Alimentos y alimentación', 2),
  140. (72, 'Almacén de comestibles', 2),
  141. (73, 'Aperitivos', 2),
  142. (74, 'Autoservicios', 2),
  143. (75, 'Bebidas', 2),
  144. (76, 'Bebidas almacenes', 2),
  145. (77, 'Bebidas refrescantes', 2),
  146. (78, 'Bebidas y refrescos', 2),
  147. (79, 'Bodegas', 2),
  148. (80, 'Bodegas de cava', 2),
  149. (81, 'Bodegas de vino', 2),
  150. (82, 'Bombones', 2),
  151. (83, 'Café', 2),
  152. (84, 'Caramelos', 2),
  153. (85, 'Cárnicas y carnicerías', 2),
  154. (86, 'Cereales', 2),
  155. (87, 'Charcutería', 2),
  156. (88, 'Chocolaterías', 2),
  157. (89, 'Comida para llevar', 2),
  158. (90, 'Comida rápida', 2),
  159. (91, 'Comidas', 2),
  160. (92, 'Comidas preparadas', 2),
  161. (93, 'Congelados', 2),
  162. (94, 'Conservas', 2),
  163. (95, 'Consumibles', 2),
  164. (96, 'Control de calidad', 2),
  165. (97, 'Delicatessen', 2),
  166. (98, 'Dietética', 2),
  167. (99, 'Dietista', 2),
  168. (100, 'Distribución de alimentos', 2),
  169. (101, 'Dulces', 2),
  170. (102, 'Escuela hostelería', 2),
  171. (103, 'Frutos secos', 2),
  172. (105, 'Gourmet y delicatessen', 2),
  173. (106, 'Horchata', 2),
  174. (107, 'Hortalizas y fruterías', 2),
  175. (108, 'Industria cárnica', 2),
  176. (109, 'Infusiones', 2),
  177. (110, 'Jamones', 2),
  178. (111, 'Lácteos', 2),
  179. (112, 'Maquinaria alimentación', 2),
  180. (113, 'Mariscos', 2),
  181. (114, 'Material hostelería', 2),
  182. (115, 'Naturismo', 2),
  183. (116, 'Naturista', 2),
  184. (117, 'Nutrición', 2),
  185. (118, 'Nutricionista', 2),
  186. (119, 'Panaderías', 2),
  187. (120, 'Panificadoras', 2),
  188. (121, 'Pasteles', 2),
  189. (122, 'Pescados', 2),
  190. (123, 'Pollerías y pollos asados', 2),
  191. (124, 'Producto lácteo', 2),
  192. (125, 'Productos alimentación', 2),
  193. (126, 'Productos alimenticios', 2),
  194. (127, 'Productos congelados', 2),
  195. (128, 'Queserías', 2),
  196. (129, 'Refrigeración', 2),
  197. (130, 'Supermercados', 2),
  198. (131, 'Tapones', 2),
  199. (132, 'Vinos', 2),
  200. (133, 'Vinotecas', 2),
  201. (134, 'Accesorios mascotas', 3),
  202. (135, 'Acuarios', 3),
  203. (136, 'Adiestramiento de animales', 3),
  204. (137, 'Alquiler de perros adiestrados', 3),
  205. (138, 'Anfibios', 3),
  206. (139, 'Animales de compañía', 3),
  207. (140, 'Cachorros', 3),
  208. (141, 'Caracoles', 3),
  209. (142, 'Cementerio de animales', 3),
  210. (143, 'Comida para animales', 3),
  211. (144, 'Criadero de perros', 3),
  212. (145, 'Hospitales veterinarios', 3),
  213. (146, 'Jaulas', 3),
  214. (147, 'Mascotas', 3),
  215. (148, 'Pajarerías', 3),
  216. (149, 'Pájaros', 3),
  217. (150, 'Paseo de mascotas', 3),
  218. (151, 'Peces', 3),
  219. (152, 'Peces tropicales', 3),
  220. (153, 'Peluquería canina', 3),
  221. (154, 'Perreras', 3);
  222.  
  223.  
  224. /*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
  225. /*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
  226. /*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;