Autor Tema: cargar dos select dependiente uno de otro, con mysql y PHP hacer INNER JOIN  (Leído 11811 veces)

ing_jp

  • Sin experiencia
  • *
  • Mensajes: 21
    • Ver Perfil
Buenas estimados amigos, soy nuevo en PHP y necesito nuevamente su ayuda

tengo problemitas tengo dos select (sltcCategoria y sltcSubCategoria)

en el de categoria me carga todo full noo tengo problema con ese, lo cargo de esta manera...

esto es en "sltcCategoria"

Código: [Seleccionar]
<label for="sltcategoria"></label>
<select name="sltcategoria" id="sltcategoria">
    <?PHP while($NCategoria = mysql_fetch_array($tabla_NCategorias))
          {echo "<option value='".$NCategoria['NombreCategorias']."'>".$NCategoria['NombreCategorias']."</option>";}
            //obtener los datos
            //quiero obtener el id de la categoria seleccionada
            $tabla_IDCategorias = mysql_query("SELECT ID_Categorias FROM tbl_Categorias WHERE NombreCategorias = '$NCategoria[NombreCategorias]' ORDER BY ID_Categorias ASC",$Conexion);
            //quiero obtener los Nombres de las subcategorias segun el id ($tabla_IDCategorias)  que obtuve en categoria
    $tabla_NSubCategorias = mysql_query("SELECT NombreSubCategorias FROM tbl_SubCategorias WHERE ID_Categorias = '$tabla_IDCategorias' ORDER BY ID_SubCategorias ASC",$Conexion);
    ?>
</select>

$NCategoria Variable donde cargo una tabla con los datos de los nombre de las categorias

Esto me carga bien los nombres de las categorias ahora quiero cargar los nombres de las subcategorias
esto es en "sltcSubCategoria"

Código: [Seleccionar]
<label for="sltsubcategoria"></label>
<select name="sltsubcategoria" id="sltsubcategoria">
     <?PHP while($NSubCategoria = mysql_fetch_array($tabla_NSubCategorias))
          {echo "<option value='".$NSubCategoria['NombreSubCategorias']."'>".$NSubCategoria['NombreSubCategorias']."</option>";}?>
</select>

quise hacer lo mismo que categorias pero no me recibe bien los parametros adecuado que no logra cargar aqui quiero que me ayuden por favor...
« Última modificación: 15 de Junio 2016, 22:14 por César Krall »

Lorenzo31

  • Avanzado
  • ****
  • APR2.COM
  • Mensajes: 381
    • Ver Perfil
Re:ayuda para cargar dos select dependiente uno de otro, con mysql
« Respuesta #1 en: 04 de Junio 2016, 11:21 »
Buenas, lo primero decirte que cuando pegues codigo, hay en el menu del foro un # para que dentro pegues el codigo y se vea mas claro todo

Código: [Seleccionar]
<label for="sltcategoria"></label>
<select name="sltcategoria" id="sltcategoria">
    <?PHP while($NCategoria = mysql_fetch_array($tabla_NCategorias))
          {echo "<option value='".$NCategoria['NombreCategorias']."'>".$NCategoria['NombreCategorias']."</option>";}
            //obtener los datos
            //quiero obtener el id de la categoria seleccionada
            $tabla_IDCategorias = mysql_query("SELECT ID_Categorias FROM tbl_Categorias WHERE NombreCategorias = '$NCategoria[NombreCategorias]' ORDER BY ID_Categorias ASC",$Conexion);
            //quiero obtener los Nombres de las subcategorias segun el id ($tabla_IDCategorias)  que obtuve en categoria
       $tabla_NSubCategorias = mysql_query("SELECT NombreSubCategorias FROM tbl_SubCategorias WHERE ID_Categorias = '$tabla_IDCategorias' ORDER BY ID_SubCategorias ASC",$Conexion);
    ?>
</select>

Lo segundo comentarte que deberias decirnos que error te dá porque al no saber si el select que haces esta bien, dificil ayudarte. Pega el error que te de en el navegador en consola.

Y mi ultimo consejo es que transformes el codigo que haces y separes el PHP del HTML, en lugar de lanzar un echo, guarda en una variable y luego la insertas en el html, algo así

PHP
Código: [Seleccionar]
<?PHP
      $opciones ='';
     while($NCategoria = mysql_fetch_array($tabla_NCategorias))
          {
$opciones .= "<option value='".$NCategoria['NombreCategorias']."'>".$NCategoria['NombreCategorias']."</option>";
        }
            //obtener los datos
            //quiero obtener el id de la categoria seleccionada
            $tabla_IDCategorias = mysql_query("SELECT ID_Categorias FROM tbl_Categorias WHERE NombreCategorias = '$NCategoria[NombreCategorias]' ORDER BY ID_Categorias ASC",$Conexion);
            //quiero obtener los Nombres de las subcategorias segun el id ($tabla_IDCategorias)  que obtuve en categoria
       $tabla_NSubCategorias = mysql_query("SELECT NombreSubCategorias FROM tbl_SubCategorias WHERE ID_Categorias = '$tabla_IDCategorias' ORDER BY ID_SubCategorias ASC",$Conexion);
    ?>

include 'rutaDelHtml.htm';
HTML
Código: [Seleccionar]
<label for="sltcategoria"></label>
<select name="sltcategoria" id="sltcategoria">
<?= $opciones ?>
</select>

También decirte que puedes usar INNER JOIN para lo que tu quieres hacer

Código: [Seleccionar]
SELECT ID_Categorias ,ID_SubCategorias,  NombreSubCategorias
FROM tbl_Categorias
INNER JOIN tbl_SubCategorias ON tbl_Categorias.ID_Categorias = tbl_SubCategorias.ID_Categorias
WHERE tbl_Categorias.NombreCategorias = '$NCategoria[NombreCategorias]
ORDER BY  ID_Categorias ASC, ID_SubCategorias ASC         

ing_jp

  • Sin experiencia
  • *
  • Mensajes: 21
    • Ver Perfil
Re:ayuda para cargar dos select dependiente uno de otro, con mysql
« Respuesta #2 en: 04 de Junio 2016, 16:59 »
Gracias por tus consejos estimado amigo Lorenzo, se puede hacer ese INNER JOIN pero como lo separaría para cargarlo en los distintos SELECT los que son categorías y los que son subcategorias

Lorenzo31

  • Avanzado
  • ****
  • APR2.COM
  • Mensajes: 381
    • Ver Perfil
Re:ayuda para cargar dos select dependiente uno de otro, con mysql
« Respuesta #3 en: 04 de Junio 2016, 21:35 »
El resultado es guardado en una array asociativa, cada campo tiene el nombre que le hayas dado en el SELECT, simplemente despues muestras los valores que te interesen en cada select.

Código: [Seleccionar]
$opciones .= "<option value='".$NCategoria['NombreCategorias']."'>".$NCategoria['NombreCategorias']."</option>";

$opcionesSubcategoria .= <option value='".$NCategoria['NombreSubCategorias']."'>".$NCategoria['NombreSubCategorias']."</option>";

HTML

Código: [Seleccionar]
<label for="sltcategoria"></label>
<select name="sltcategoria" id="sltcategoria">
<?= $opciones ?>
</select>

<label for="sltSubcategoria"></label>
<select name="sltSubcategoria" id="sltSubcategoria">
<?= $opcionesSubcategoria ?>
</select>




ing_jp

  • Sin experiencia
  • *
  • Mensajes: 21
    • Ver Perfil
Re:ayuda para cargar dos select dependiente uno de otro, con mysql
« Respuesta #4 en: 06 de Junio 2016, 16:36 »
Buenas estimado amigo, hice de la forma que me explico pero no me cargan, ahora lo que yo quiero es cargar en el SELECT_CATEGORIAS todas las categorias que existan y en el SELECT_SUBCATEGORIAS todas las sub categorias que existan dependiendo de la categoria

Ejemplo:
Categorias: Inmoviliaria, Motorizado, alimentacion, artefctos, animales, servicios, bolsas de empleo
Sub categorias: Casa, Chalet, lote, quinta, edificio, Auto, moto, jeep, vagoneta, camion, Restaurantes, comida rapida, fast hoot,  Haburguesas, perro, gato, hanster, conejo
              SUB CATEGORIAS                                                CATEGORIAS
Casa, Chalet, lote, quinta, edificio ==>                                 Inmoviliaria
Auto, moto, jeep, vagoneta, camion ==>                             Motorizado
Restaurantes, comida rapida, fast hoot,  Haburguesas ==> Alimentacion
perro, gato, hanster, conejo ==>                                         Animales

Cuando yo seleccione en SELECT_CATEGORIA "Inmoviliaria" en SELECT_SUBCATEGORIAS se tiene que cargar "(Casa, Chalet, lote, quinta, edificio)".

Cuando yo seleccione en SELECT_CATEGORIA "Alimentacion" en SELECT_SUBCATEGORIAS se tiene que cargar "(Restaurantes, comida rapida, fast hoot,  Haburguesas)".

Asi sucesivamente...

Me dejo entender estimado amigo???
« Última modificación: 06 de Junio 2016, 16:39 por ing_jp »

César Krall

  • Moderador Global
  • Experto
  • *******
  • Mensajes: 2078
  • No vales por lo que dices, sino por lo que haces
    • Ver Perfil
    • aprenderaprogramar.com
Hola! Lo que se explica en este curso http://aprenderaprogramar.com/index.php?option=com_content&view=category&id=83&Itemid=212 y en particular en la entrega CU01216FD es posible que te sirva

Saludos!
Responsable de departamento de producción aprenderaprogramar.com

 

Sobre la educación, sólo puedo decir que es el tema más importante en el que nosotros, como pueblo, debemos involucrarnos.

Abraham Lincoln (1808-1865) Presidente estadounidense.

aprenderaprogramar.com: Desde 2006 comprometidos con la didáctica y divulgación de la programación

Preguntas y respuestas

¿Cómo establecer o cambiar la imagen asociada (avatar) de usuario?
  1. Inicia sesión con tu nombre de usuario y contraseña.
  2. Pulsa en perfil --> perfil del foro
  3. Elige la imagen personalizada que quieras usar. Puedes escogerla de una galería de imágenes o subirla desde tu ordenador.
  4. En la parte final de la página pulsa el botón "cambiar perfil".