Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] Insertar registros desde una tabla dimacia con select dentro de ella

Estas en el tema de Insertar registros desde una tabla dimacia con select dentro de ella en el foro de PHP en Foros del Web. Hola y buen dia!!! Espero y me puedan ayudar con mi siguiente problema... estoy creando una pagina que muestra una tabla dinámica con los datos ...
  #1 (permalink)  
Antiguo 20/08/2013, 14:32
 
Fecha de Ingreso: agosto-2013
Ubicación: hermosillo
Mensajes: 13
Antigüedad: 10 años, 8 meses
Puntos: 0
Pregunta Insertar registros desde una tabla dimacia con select dentro de ella

Hola y buen dia!!!

Espero y me puedan ayudar con mi siguiente problema...

estoy creando una pagina que muestra una tabla dinámica con los datos de la tabla1 pero dentro de la tabla dinámica se muestra un select con 5 opciones pero también tiene checkbox.

Entonces el usuario al entrar en la pagina se le mostrara la tabla con los datos de la tabla1 y podrá seleccionar de la lista un numero y habilitar el checkbox. se debe de guardar en otra tabla los datos tomados.

Únicamente lo seleccionado se debe guardar en la tabla

imagen y codigo:



<?php
session_start();
include_once "conexion.php";
?>
<html>
<head>
<title>Incidencias en traileres</title>
</head>

<body>
<?php

echo "<form method=post>";
$sql="select * from tabla1";
$result=mysql_query($sql);
echo "<table border=1>";
echo "<tr>
<td>dato2</td>
<td>select</td>
<td><input type=submit name=benviar value=salvar></td>
</tr>";
while($row=mysql_fetch_array($result)):
{
echo "<tr>
<td><div>$row[1]</div></td>
<td><div><select name=lista[]>
<option value=1>1</option>
<option value=2>2</option>
<option value=3>3</option>
</select>
</div></td>
";?><td><div><input type="checkbox" name="datos[]" value="<?php echo $row['usuario']?>"</div></td>
</tr><?php
}
endwhile;
echo "</table>";
echo "</form>";
//$array_lista=$_POST['lista'];
//$array_dato=$_POST['datos'];

foreach($_POST['datos'] as $data)
{
echo "Lo seleccionado por el usuario se debe de guardar dentro de otra tabla siempre y cuando seleccione una casilla";
}
?>
</body>
</html>

Espero me ayuden y gracias adelantadas =) saludos.
  #2 (permalink)  
Antiguo 20/08/2013, 15:09
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: Insertar registros desde una tabla dimacia con select dentro de ella

????????????
__________________
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...
  #3 (permalink)  
Antiguo 20/08/2013, 15:36
 
Fecha de Ingreso: agosto-2013
Ubicación: hermosillo
Mensajes: 13
Antigüedad: 10 años, 8 meses
Puntos: 0
Respuesta: Insertar registros desde una tabla dimacia con select dentro de ella

Si loncho_rojas se que esta difícil de explicar pero en la imagen se muestran los registros de la tabla1; entonces si el usuario escoge por ejemplo a mario, select 2 y selecciona la casilla el select el guardado seria select insert into tabla1 (usuario,opcion) values ($data,$lista) algo asi.

Entonces si te fijas en el foreach recorro la tabla y tomara los valores que estén seleccionados pero no toma el valor del select.

Ese es mi problema.

Quien dijo yo? =)
  #4 (permalink)  
Antiguo 21/08/2013, 07:54
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: Insertar registros desde una tabla dimacia con select dentro de ella

Bueno, la verdad trato de entenderlo bien, o sea, entiendo que quieres hacer, pero basado en tu código, digo...

el foreach recorre un ARRAY que está bien definido en tu CHECKBOX... ej.:name="datos[]"

sin embargo, en tus select no tienes definido ningun array...

Lo que deberías hacer en la teoría es guardar todos los datos del select en una variable del tipo array y despues recorrerlos con el foreach...
No se si esta haciendo <select name=lista[]> o <select name='lista[]'> funcione... porque no compruebas primero a ver si que valores del select toma, si solo toma el primero, o si los toma todos y nos comentas...
__________________
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...
  #5 (permalink)  
Antiguo 21/08/2013, 08:33
 
Fecha de Ingreso: agosto-2013
Ubicación: hermosillo
Mensajes: 13
Antigüedad: 10 años, 8 meses
Puntos: 0
Respuesta: Insertar registros desde una tabla dimacia con select dentro de ella

Gracias loncho_rojas por seguir en la batalla viejo.

De echo modifique name=lista[] del select para meter los valores dentro del arreglo.

hasta ahí estamos bien ok.

ahora el foreach recorrerá las veces que haya seleccionado la casilla y tomara los valores de los nombres pero el problema es que al hacer el insert into el arreglo de lista[] me toma los valores a partir de [0] entonces si el usuario tomo de la lista el numero 5. al guardar me graba el arreglo en la posición [0].


Código PHP:
Ver original
  1. <?php
  2.     session_start();
  3.     include_once "conexion.php";
  4. ?>
  5. <html>
  6.   <head>
  7.     <title>Incidencias en traileres</title>
  8.   </head>
  9.  
  10.   <body>
  11.     <?php
  12.    
  13.         echo "<form method=post>";  
  14.             $sql="select * from tabla1";
  15.             $result=mysql_query($sql);
  16.             echo "<table border=1>";
  17.                 echo "<tr>
  18.                         <td>dato2</td>
  19.                         <td>select</td>
  20.                         <td><input type=submit name=benviar value=salvar></td>
  21.                     </tr>";
  22.             while($row=mysql_fetch_array($result)):
  23.             {
  24.                 echo "<tr>
  25.                         <td><div>$row[1]</div></td>
  26.                         <td><div><select name=lista[]>
  27.                                     <option value=1>1</option>
  28.                                     <option value=2>2</option>
  29.                                     <option value=3>3</option>
  30.                                     <option value=4>4</option>
  31.                                     <option value=5>5</option>
  32.                                     <option value=6>6</option>
  33.                                     <option value=7>7</option>
  34.                                     <option value=8>8</option>
  35.                                 </select>
  36.                         </div></td>
  37.                         ";?>
  38.                         <td><div><input type="checkbox" name="datos[]" value="<?php echo $row['usuario']?>"></div></td>
  39.                     </tr><?php
  40.             }
  41.             endwhile;
  42.                 echo    "</table>";
  43.         echo "</form>";
  44.             if($_POST['benviar'])
  45.             {
  46.                 $data=$_POST['datos'];
  47.                 $lista=$_POST['lista'];
  48.                 $i=0;              
  49.                 foreach($data as $dato)
  50.                 {
  51.                     mysql_query("insert into tabla2 (dato1,dato2) values ('$lista[$i]','$dato')");
  52.                     $j++;
  53.                 }
  54.             }
  55.            
  56.     ?>
  57.   </body>
  58. </html>
  #6 (permalink)  
Antiguo 21/08/2013, 08:57
 
Fecha de Ingreso: agosto-2013
Ubicación: hermosillo
Mensajes: 13
Antigüedad: 10 años, 8 meses
Puntos: 0
Respuesta: Insertar registros desde una tabla dimacia con select dentro de ella

O alguna manera de hacer esto si tienen alguna idea se les agradeceria

  #7 (permalink)  
Antiguo 21/08/2013, 09:01
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: Insertar registros desde una tabla dimacia con select dentro de ella

Antes de continuar, te pregunto. ¿Por qué es necesario que envíe un checkbox junto con tu select?
__________________
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...
  #8 (permalink)  
Antiguo 21/08/2013, 09:21
 
Fecha de Ingreso: agosto-2013
Ubicación: hermosillo
Mensajes: 13
Antigüedad: 10 años, 8 meses
Puntos: 0
Respuesta: Insertar registros desde una tabla dimacia con select dentro de ella

creo que seria la mejor manera en que el usuario podría seleccionar los elementos que necesite. o si tienes alguna otra idea estoy abierto a saberla y ponerla en marcha
  #9 (permalink)  
Antiguo 21/08/2013, 09:23
 
Fecha de Ingreso: agosto-2013
Ubicación: hermosillo
Mensajes: 13
Antigüedad: 10 años, 8 meses
Puntos: 0
Respuesta: Insertar registros desde una tabla dimacia con select dentro de ella

aparte el checkbox almacena el valor de lo seleccionado en este caso los nombres
  #10 (permalink)  
Antiguo 21/08/2013, 09:27
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: Insertar registros desde una tabla dimacia con select dentro de ella

Espera.. explicanos la logica así vemos otro camino o seguimos en esto...

Tenes un nombre que es HUGO, en cuyo select tienes 5 posibles valores o más.. luego le das un checkbox que contiene otro valor???

Que significan los valores que contiene cada select.. o sea.. si en Hugo selecciono 5, o 3 o lo que sea, ¿Qué hace? y si le clicko al Check, que valor lleva? porque 2 valores???
__________________
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...
  #11 (permalink)  
Antiguo 21/08/2013, 09:31
Avatar de jonni09lo
Colaborador
 
Fecha de Ingreso: septiembre-2011
Ubicación: Estigia
Mensajes: 1.471
Antigüedad: 12 años, 7 meses
Puntos: 397
Respuesta: Insertar registros desde una tabla dimacia con select dentro de ella

Viendo la imagen y lo que esta posteando, lo que yo entiendo es que el checkbox ayuda a determinar que elementos van a actualizarse, osea que cuando el le de clic en salvar, el aplicativo mirará que checkbox están seleccionados y de acuerdo a esto empieza a actualizar los valores de cada fila, asignando el valor de cada select a cada "usuario" que está en la columna dato2.

Saludos
__________________
Haz preguntas inteligentes-Como ser Hacker
No hacer preguntas por mensaje privado. No sólo no es inteligente sino que es egoísta.
  #12 (permalink)  
Antiguo 21/08/2013, 09:37
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: Insertar registros desde una tabla dimacia con select dentro de ella

Bueno, si es así el checkbox está demás.. porque con el name de cada select es suficiente para saber a que usuario se refiere, y tendrías que hacer unas comparaciones de que si el valor seleccionado en el selectX es cero que no lo guarde, y si es mayor a cero que lo procese...
__________________
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...
  #13 (permalink)  
Antiguo 21/08/2013, 16:28
 
Fecha de Ingreso: agosto-2013
Ubicación: hermosillo
Mensajes: 13
Antigüedad: 10 años, 8 meses
Puntos: 0
Respuesta: Insertar registros desde una tabla dimacia con select dentro de ella

Compañeros ya QUEDO !!! por fin jajajaj les comparto la forma en que lo termine y AGRADESCO SU COLABORACION gracias.

Código PHP:
Ver original
  1. <?php
  2.     session_start();
  3.     include_once "conexion.php";
  4. ?>
  5. <html>
  6.   <head>
  7.     <title>Incidencias en traileres</title>
  8.   </head>
  9.  
  10.   <body>
  11.     <?php
  12.    
  13.         echo "<form method=post>";  
  14.             $sql="select * from tabla1";
  15.             $result=mysql_query($sql);
  16.             echo "<table border=1>";
  17.                 echo "<tr>
  18.                         <td>dato2</td>
  19.                         <td>select</td>
  20.                         <td><input type=submit name=benviar value=salvar></td>
  21.                     </tr>";
  22.             while($row=mysql_fetch_array($result)):
  23.             {  
  24.                 $nom=$row[1]; //nom toma el valor del registro
  25.                 $nombre[]=$nom; //nom entra en el arreglo y se guarda y avanza una posision
  26.                 echo "<tr>
  27.                         <td><div>$row[1]</div></td>
  28.                         <td><div><select name=lista[]>
  29.                                     ";?><option>nada</option><?php echo "
  30.                                     <option value=1>1</option>
  31.                                     <option value=2>2</option>
  32.                                     <option value=3>3</option>
  33.                                     <option value=4>4</option>
  34.                                     <option value=5>5</option>
  35.                                     <option value=6>6</option>
  36.                                     <option value=7>7</option>
  37.                                     <option value=8>8</option>
  38.                                 </select>
  39.                         </div></td>
  40.                         ";?>
  41.                         <td><div><input type="checkbox" name="datos[]" value="<?php echo $row['1']?>"</div></td>
  42.                     </tr><?php
  43.             }
  44.             endwhile;
  45.                 echo    "</table>";
  46.         echo "</form>";
  47.             if($_POST['benviar'])
  48.             {
  49.                 $data=$_POST['datos'];
  50.                 $lista=$_POST['lista'];
  51.                 $i=0;
  52.                
  53.                 $con=count($lista);            
  54.                
  55.                 for($i=0; $i<$con; $i++)
  56.                 {
  57.                     if($lista[$i]!='nada')
  58.                     {
  59.                         mysql_query("insert into tabla2 (dato1,dato2) values ('$lista[$i]','$nombre[$i]')");
  60.                     }
  61.                     else
  62.                     {
  63.                         echo 'no guardo nada';
  64.                     }
  65.                 }
  66.             }
  67.            
  68.     ?>
  69.   </body>
  70. </html>

ahora si se cumple lo de las imágenes =) faltan validaciones pero eso es lo de menos ya lo terminare
  #14 (permalink)  
Antiguo 21/08/2013, 16:29
 
Fecha de Ingreso: agosto-2013
Ubicación: hermosillo
Mensajes: 13
Antigüedad: 10 años, 8 meses
Puntos: 0
Respuesta: Insertar registros desde una tabla dimacia con select dentro de ella

y este es mi código que use para el programa que estoy utilizando

Código PHP:
Ver original
  1. <?php
  2.     session_start();
  3.     include_once "Conexion.php";  
  4. ?>
  5. <html>
  6.     <head>
  7.         <title>Login</title>
  8.     </head>
  9.  
  10.     <body bgcolor="#AAD9D7">
  11.        
  12.         <form action="Cerrar.php" method="post">
  13.           <table width="100%">
  14.             <tr>
  15.               <td>Usuario: <?php echo $_SESSION['usuario'].' '; echo ' Fecha: '; echo date("d-m-Y"); ?></td>
  16.               <td align="right"><input name="logout" value="Cerrar sesion" type="submit"></td>
  17.             </tr>
  18.           </table>
  19.         </form>
  20.        
  21.         <table>
  22.           <tr>
  23.             <td><form action="Tabla.php" method="post"><input type="submit" value="Tabla"></form></td>
  24.             <td><form action="Buscar.php" method="post"><input type="submit" value="Buscar"></form></td>
  25.             <td><form action="Edit.php" method="post"><input type="submit" value="Modificar"></form></td>
  26.           </tr>
  27.         </table>
  28.        
  29.         <form method="post">
  30.             <table>
  31.                 <tr>
  32.                     <td>Trailer
  33.                         <select name="compania">
  34.                             <option value="T13-">T 13 -</option>
  35.                             <option value="I13-">I 13 -</option>
  36.                         </select>
  37.                         <input type="text" name="tnumero" maxlength="6">&nbsp;&nbsp;Comentario<input type="text" size="30" name="ccomentario">
  38.                     </td>
  39.                 </tr>
  40.             </table>
  41.            
  42.             <table bgcolor="#7AC7CD" border="1" cellpadding="1" cellspacing="0" align="left">
  43.                 <tr>
  44.                     <th colspan="8">Tipos de incidencias</th>
  45.                 </tr>
  46.                                    
  47.                 <tr>
  48.                     <td>Incidencia</td>
  49.                     <td>Subincidencia</td>
  50.                     <td>Responsable</td>
  51.                     <td><input type="submit" name="benviar"></td>
  52.                 </tr>
  53.                    
  54.                 <tr>
  55.                     <?php
  56.                         $consulta = mysql_query('SELECT t2.incidencias, t3.idtabla3, t3.subincidencia FROM tabla3 AS t3 INNER JOIN tabla2 AS t2 ON t3.idtabla2 = t2.idtabla2 ORDER BY t2.idtabla2');
  57.                         while($result = mysql_fetch_array($consulta)):
  58.                         $subi=$result['1'];
  59.                         $sub[]=$subi;
  60.                     ?>                     
  61.                     <td><div><?php echo $result['0'] ?></div></td>
  62.                     <td><div><?php echo $result['2'] ?></div></td>
  63.                     <td><div><?php 
  64.                                 $consultausuario='select * from tabla4 order by nombre';
  65.                                 $resultado_de_consulta=mysql_query($consultausuario);
  66.                                 echo "<select name='lresponsable[]'>";
  67.                                 echo "<option>nada</option>";
  68.                                 while($fila=mysql_fetch_array($resultado_de_consulta))
  69.                                 {
  70.                                     echo "<option value='".$fila['2']."'>".$fila['2']."</option>";
  71.                                 }
  72.                                 echo "</select>";
  73.                             ?>
  74.                     </div></td>
  75.                     <td><div><input type="checkbox" name="datos[]" value="<?php echo $result['idtabla3']?>"</div></td>
  76.                 </tr>
  77.                        
  78.                         <?php
  79.                         endwhile; ?>
  80.             </table>
  81.         </form>
  82.        
  83.         <?php                      
  84. //valida que al presionar el boton se ejecute todo
  85.             if(isset($_POST['benviar']))
  86.             {
  87. //query para tomar numero maximo de repote y asi incrementar 1
  88.  
  89.                 //$query= mysql_query("SELECT MAX(numero_reporte) AS id FROM tabla1");
  90.                 //if ($row = mysql_fetch_row($query))
  91.                 //{
  92.                 //  $id = trim($row[0]);
  93.                 //}
  94. //variables            
  95.                 //$numero_reporte=$id+1;                                        //creara un numero de reporte para que a cada uno le guarde el mismo numero de reporte
  96.                 $usuario=$_SESSION['usuario'];                              //se almacena el nombre con el cual el usuario inicio sesion
  97.                 $compania=strtoupper($_POST['compania']);                   //compañia de trailer
  98.                 $numero=str_pad($_POST['tnumero'],6,"0",STR_PAD_LEFT);      //se rellena el espacio restante
  99.                 $trailer=array("$compania","$numero");                      //se guarda la compañia y el numero de trailer
  100.                 $comentario=strtoupper($_POST['ccomentario']);              //campo de comentario
  101.                 $data=$_POST['datos'];                                      //arreglo que contara las veces que el usuario selecciona una casilla
  102.                 $responsable=$_POST['lresponsable'];                        // se refiere a la lista desplegable del responsable
  103.                 $i=0;                                                       //incrementador
  104.                 $cont=count($data);                                         //cuenta el maximo de datos del arreglo $data
  105. //validaciones             
  106.                 for($i=0; $i<21; $i++)
  107.                 {
  108.                     if($responsable[$i]!='nada')
  109.                     {
  110.                         mysql_query("INSERT INTO tabla1 (idtabla3,trailer,usuario_inicial,fecha_inicial,comentario_inicial,responsable) values ('$sub[$i]','$trailer[0]$trailer[1]','$usuario',NOW(),'$comentario','$responsable[$i]')");
  111.                     }
  112.                 }
  113.             }      
  114.            
  115.         ?>
  116.     </body>
  117. </html>
  #15 (permalink)  
Antiguo 08/04/2014, 09:27
 
Fecha de Ingreso: noviembre-2013
Mensajes: 1
Antigüedad: 10 años, 5 meses
Puntos: 0
Respuesta: Insertar registros desde una tabla dimacia con select dentro de ella

hola antes que todo les agradesco por el tema ya que me ayudado mucho pero ahora tengo una duda trato de hacer lo mismo pero con una tabla para el checkbox y el otro para option y que este se guarde en una tercera tabla como lo ago... amm apropocito es una base de datos relacional y con llaves primarias y foraneas ?

Última edición por programerfiles; 14/04/2014 a las 14:44 Razón: Completar

Etiquetas: checkbox, dinamica, select, tabla
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 08:41.