Foros aprenderaprogramar.com

Aprender a programar => C, C++, C#, Java, Visual Basic, HTML, PHP, CSS, Javascript, Ajax, Joomla, MySql y más => Mensaje iniciado por: ing_jp en 03 de Junio 2016, 20:17

Título: cargar dos select dependiente uno de otro, con mysql y PHP hacer INNER JOIN
Publicado por: ing_jp en 03 de Junio 2016, 20:17
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...
Título: Re:ayuda para cargar dos select dependiente uno de otro, con mysql
Publicado por: Lorenzo31 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         
Título: Re:ayuda para cargar dos select dependiente uno de otro, con mysql
Publicado por: ing_jp 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
Título: Re:ayuda para cargar dos select dependiente uno de otro, con mysql
Publicado por: Lorenzo31 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>



Título: Re:ayuda para cargar dos select dependiente uno de otro, con mysql
Publicado por: ing_jp 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???
Título: Re:cargar dos select dependiente uno de otro, con mysql y PHP hacer INNER JOIN
Publicado por: César Krall en 15 de Junio 2016, 22:16
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!