Foros del Web » Programando para Internet » PHP »

Mostrar una lista dentro de otra lista PHP+MySQL

Estas en el tema de Mostrar una lista dentro de otra lista PHP+MySQL en el foro de PHP en Foros del Web. Hola, buenas tardes!! :D Tengo una duda sobre algo en PHP+MySql, pero no sé si se pueda hacer... les comento: Si tengo información en una ...
  #1 (permalink)  
Antiguo 07/01/2014, 16:23
Avatar de Middrel  
Fecha de Ingreso: abril-2005
Mensajes: 835
Antigüedad: 19 años
Puntos: 27
Mostrar una lista dentro de otra lista PHP+MySQL

Hola, buenas tardes!! :D

Tengo una duda sobre algo en PHP+MySql, pero no sé si se pueda hacer... les comento:

Si tengo información en una base de datos, la cuál debo traer e imprimir en un formulario que puede repetirse n veces... por ejemplo:

Código PHP:
while($rowSelectFormulario mysqli_fetch_array($sqlSelectFormularioMYSQLI_ASSOC)){

    echo 
'
          <select name="producto" id="producto">
             <option value="'
$rowSelectFormulario['id_opcion'] .'">' .  $rowSelectFormulario['producto'] .'</option>
          </select>
          <input type="text" name="id" id="id" value="' 
$rowSelectFormulario['id_producto'] . '">
          <input type="text" name="cantidad" id="cantidad" value="' 
$rowSelectFormulario['cantidad'] . '">
          <input type="text" name="precio" id="precio" value="' 
$rowSelectFormulario['precio'] . '">
    '
;
mysqli_free_result($sqlSelectFormulario); 
pero, donde está el select, quiero usar otro while para llamar los productos que están en la base de datos, quedando esa parte de esta forma:

Código PHP:
'<select name="producto" id="producto">
       <option value="'
$rowSelectFormulario['id_opcion'] .'">' .  $rowSelectFormulario['producto'] .'</option>
       while($rowSelectProductos = mysqli_fetch_array($sqlSelectProductos, MYSQLI_ASSOC)) {
       <option value="'
$rowSelectProducto['id_producto'] .'">' $rowSelectProducto['producto'] . '</option>
       } mysqli_free_result($sqlSelectProductos);
</select>'
... 
Por lo tanto queda un while, dentro de otro while, sin embargo el while interior no funciona, sólo me trae el producto que está contenido en $rowSelectFormulario, más no me despliega la lista de $rowSelectProductos.

Mi pregunta es, si es posible hacer esto, si es así que error estoy cometiendo, o si no es posible ligar dos llamadas a la base de datos, una dentro de otra.

Agradezco sus comentarios, saludos!!
  #2 (permalink)  
Antiguo 07/01/2014, 16:40
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Mostrar una lista dentro de otra lista PHP+MySQL

Tu error es tratar el código PHP como si fuera una cadena de texto, ¿o no?

Como sea, eso es sintaxis básica de PHP:
Código PHP:
Ver original
  1. echo '<select>';
  2.  
  3. while (/* ... */) // ...
  4.  
  5. echo '</select>';

¿Se entiende?
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 07/01/2014, 16:57
Avatar de Middrel  
Fecha de Ingreso: abril-2005
Mensajes: 835
Antigüedad: 19 años
Puntos: 27
Respuesta: Mostrar una lista dentro de otra lista PHP+MySQL

Se me pasó poner la coma simple, pero no es por eso, en este ejemplo sólo no la puse :/

Código PHP:
echo '<select name="producto" id="producto"> 
       <option value="'
$rowSelectFormulario['id_opcion'] .'">' .  $rowSelectFormulario['producto'] .'</option>';
       while(
$rowSelectProductos mysqli_fetch_array($sqlSelectProductosMYSQLI_ASSOC)) { 
       echo 
'<option value="'$rowSelectProducto['id_producto'] .'">' $rowSelectProducto['producto'] . '</option>'
       } 
mysqli_free_result($sqlSelectProductos); 
echo 
'</select>' 
Aún así, no me muestra la segunda lista.
  #4 (permalink)  
Antiguo 07/01/2014, 17:38
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Mostrar una lista dentro de otra lista PHP+MySQL

¿Has notado que tus nombres de variable no coinciden?
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #5 (permalink)  
Antiguo 07/01/2014, 17:46
Avatar de Middrel  
Fecha de Ingreso: abril-2005
Mensajes: 835
Antigüedad: 19 años
Puntos: 27
Respuesta: Mostrar una lista dentro de otra lista PHP+MySQL

Si tienes razón. Quise poner un ejemplo de lo que trato de lograr, pero por hacerlo así como así se me fueron muchos errores.

El código real es este, es donde no funciona lo que quiero hacer:

Código PHP:
<?php 
    $i 
0
    while(
$rowSelectDetalle = @mysqli_fetch_array($sqlSelectDetalleMYSQLI_ASSOC)){
        
        
$clase $rowSelectDetalle['fac_detalle'];
                
        if(
$clase 0) { 
            echo 
'
                <input type="hidden" name="idFact[' 
$i ']" value="' $rowSelectDetalle['id_subfact'] . '">
                <select name="productoMd[' 
$i ']" id="p_' $i '" class="input-type-det-b">
                    <option value="' 
$rowSelectDetalle['id_subfact'] .'">' $rowSelectDetalle['cat_titulo'] . '</option>';
                    while(
$rowSelectProductos = @mysqli_fetch_array($sqlSelectProductosMYSQLI_ASSOC)) { 
                        echo 
'<option value="' $rowSelectProductos['id_catalogo'] . '">' $rowSelectProductos['cat_titulo'] . '</option>';
                    } @
mysqli_free_result($sqlSelectProductos); 
                    echo 
'</select>
                <input type="text" name="cantidadMd[' 
$i ']" id="c_' $i '" class="input-type-det-c" value="' $rowSelectDetalle['fac_cantidad'] . '" placeholder="Cant">
                <input type="text" name="descuentoMd[' 
$i ']" id="d_' $i '" class="input-type-det-c" value="' $rowSelectDetalle['fac_descuento'] . '" placeholder="Desc">
                <select name="exentoMd[' 
$i ']" id="e_[' $i ']" class="input-type-det-d">
                    <option value="'

                    if(
$rowSelectDetalle['fac_iva']>0){ echo 'Normal'; } else { echo 'Exento'; }
                        echo 
'">'
                    if(
$rowSelectDetalle['fac_iva']>0){ echo 'Normal'; } else { echo 'Exento'; }
                        echo 
'</option>
                </select>
                <label><a id="agregarCampo" class="btn btn-info" href="#" title="AGREGAR">[+]</a></label>'
;
        }

    
$i++;
                    
    } @
mysqli_free_result($sqlSelectDetalle);
?>
Cabe señalar que salvo el listado del while interior, todo lo muestra correctamente.

De antemano, gracias por sus comentarios!!
  #6 (permalink)  
Antiguo 07/01/2014, 20:08
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Mostrar una lista dentro de otra lista PHP+MySQL

Me gustaría que muestres los mensajes de error completos, ¿o se te ocurre, tal vez, que leyendo tu código vamos a ejecutarlo mentalmente y adivinar lo que está mal?

Por cierto, ¿cómo estás depurando tu código? ¿por qué usas la @ para silenciar los posibles errores? ¿así cómo quieres saber lo que sucede?

Usa tu sentido común, por favor.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #7 (permalink)  
Antiguo 07/01/2014, 21:23
 
Fecha de Ingreso: octubre-2013
Mensajes: 1
Antigüedad: 10 años, 6 meses
Puntos: 0
pasar contenidos de variables a cajas de texto

Hola quisiera q me ayuden con algo por favor:
Estoy haciendo una búsqueda en javaScript con Jquery a mi BDD lo hago por nombre o por cedula, presento la información en una tabla creada en php y un botón adicional para q al dar clic se seleccione toda la fila. Bueno a lo q doy clic quiero pasar a unas cajas de texto, pasa el código la cédula utilizando la conversión parseInt los toma en las cajas de texto pero el nombre y el apellido no los pasa he utilizado toString y String pero nada como puedo hacer para pasar los datos de esas variables a las cajas de texto tálvez habrá otra forma u otra conversión para pasar esos datos? alguien me ayude por favor
  #8 (permalink)  
Antiguo 08/01/2014, 09:31
Avatar de Middrel  
Fecha de Ingreso: abril-2005
Mensajes: 835
Antigüedad: 19 años
Puntos: 27
Respuesta: Mostrar una lista dentro de otra lista PHP+MySQL

Cita:
Me gustaría que muestres los mensajes de error completos
No me muestra ningún mensaje de error, aún quitando las @ no hay error. Una disculpa si las deje en el código, pero no estoy silenciando nada.

Cita:
¿o se te ocurre, tal vez, que leyendo tu código vamos a ejecutarlo mentalmente y adivinar lo que está mal?
¿Y a ti se te ocurre que esta es una forma de responder a un cuestionamiento?¿o es la forma que tienes de responderles a todos? Usa tu sentido común, por favor.

Simplemente no se genera la segunda lista, no hay error en pantalla. La segunda lista se genera n veces, de acuerdo al número de productos que haya de ese documento ¿para que las genero? para que el usuario pueda modificarlas a su gusto si hubo algún error previo, por ello se generan en un formulario.
  #9 (permalink)  
Antiguo 08/01/2014, 10:00
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Mostrar una lista dentro de otra lista PHP+MySQL

Pues ahí tienes, si no depuras tu código no vas a saber lo que anda mal.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.

Etiquetas: formulario, lista, mysql, php-mysql, select, sql
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 21:48.