Ver Mensaje Individual
  #1 (permalink)  
Antiguo 19/09/2013, 11:30
vlorenzov
 
Fecha de Ingreso: abril-2013
Mensajes: 6
Antigüedad: 11 años
Puntos: 0
Pregunta do while insert

No sé cómo recoger la información de un select variable para luego poder hacer un insert múltiple en la base de datos. De lo que se trata, es de que hay una tabla que tiene una serie de preguntas, y otra tabla que tiene la posibilidad de respuestas para cada pregunta. Se construye el formulario de forma variable dependiendo del número de preguntas, cada una de ellas con su lista de selecciones posibles. Esto en el formulario funciona bien. Luego en el insert, se graba un registro por cada pregunta con la respuesta que ha sido seleccionada. Si por ejemplo el número de preguntas han sido 20, se deberán de grabar 20 registros con la información de la pregunta y su respuesta, siendo común una serie de campos. El name del select es un número en la variable $p.
¿Podría ayudarme alguien, ya que mi nivel de php es muy bajo?
Gracias.

Este es el código:

<?php require_once('databaseClass.php'); ?>
<?php
session_start();
header("Content-Type: text/html;charset=utf-8");
$db = new DataBase();
include('conexionDB.php');
$hoy = date("Y-m-d H:i:s");

$id1 = $_GET['id1_usuario'];
$id2 = $_GET['id2_secuencia'];
$id3 = $_GET['UE_escala'];

$opcion = 'Añadir';
$currentPage = $_SERVER["PHP_SELF"];
$funcion = substr($currentPage, 8, -7); // _XX.php

// buscar nombre función
$sql = "SELECT * FROM db_ayuda_funcion WHERE id1_funcion = '".$funcion."' AND id2_lengua = '".$_SESSION['lengua']."';";
$consulta = mysqli_query($link, $sql) or die(mysqli_error());
$row_consulta = mysqli_fetch_assoc($consulta);
/* free consulta set */
mysqli_free_result($consulta);

if ((isset($_POST["MM_insert"])) && ($_POST["MM_insert"] == "form1")) {

$sql = "SELECT * FROM db_escalas_preguntas WHERE id1_escala = '".$id3."' AND ES_estado = 'ACTIVO';";
$consulta = mysqli_query($link, $sql) or die(mysqli_error());
$row_cnt = mysqli_num_rows($consulta);
mysqli_free_result($consulta);

$s = 1;

while($s <= $row_cnt) {

$usuario = $_POST['id1_usuario'];
$secuencia = $_POST['id2_secuencia'];
$escala = $_POST['UE_escala'];


$data = array(
'id1_usuario' => $usuario,
'id2_secuencia' => $secuencia,
'UE_escala' => $escala,
'UE_cod_pregunta' =>
'UE_pregunta' =>
'UE_cod_respuesta' =>
'UE_respuesta' =>
'UE_valor' =>
'UE_fecha_add' => $_POST['UE_fecha_add'],
'UE_estado' => $_POST['UE_estado']
);


$db->insert('db_usuarios_escalas_respuestas', $data);

$s = $s + 1;


}


$goTo = "formreturnP3.php?var=usuario_escala_respuesta_in. php&opc=añadido&id1=$id1&id2=$id2&id3=$id3";

header(sprintf("Location: %s", $goTo));

}


?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<link rel="stylesheet" type="text/css" href="css/estiloform.css">
</head>

<body>

<p>Añadir Respuestas a Usuario</p>

<h5><a href="usuario_escala_respuesta_in.php?id1=<?php echo $id1; ?>&id2=<?php echo $id2; ?>&id3=<?php echo $id3; ?>">Cancelar sin añadir </a></h5>
<form method="post" name="form1">
<table>

<tr>
<td>Usuario:</td>
<td><input type="text" name="id1_usuario" value="<?php echo $id1; ?>" readonly></td>
</tr>
<tr>
<td>Secuencia:</td>
<td><input type="text" name="id2_secuencia" value="<?php echo $id2; ?>" readonly></td>
</tr>
<tr>
<td>Escala:</td>
<td><input type="text" name="UE_escala" value="<?php echo $id3; ?>" readonly>
<?php
$sql = "SELECT * FROM `db_escalas` WHERE id_escala = '".$id3."' AND ES_estado = 'ACTIVO';";
$consulta = mysqli_query($link, $sql) or die(mysqli_error());
while ($row = mysqli_fetch_assoc($consulta))
echo $row['ES_descripcion'];
mysqli_free_result($consulta);
?>
</td>
</tr>
<tr>

<?php

$p = 0;

$sql = "SELECT * FROM `db_escalas_preguntas` WHERE id1_escala = '".$id3."' AND ES_estado = 'ACTIVO';";
$consulta = mysqli_query($link, $sql) or die(mysqli_error());
while ($result = mysqli_fetch_assoc($consulta)) {

$p = $p + 1;

echo "<tr>";
echo "<td>Cod.Pregunta:";
echo $p;
echo $result['id2_cod_pregunta'];
echo $result['ES_pregunta'];

echo "<td><select name=\"$p\">";
$sql = "SELECT * FROM `db_escalas_respuestas` WHERE id1_escala = '".$id3."' AND id2_cod_pregunta = '".$result['id2_cod_pregunta']."' AND ES_estado = 'ACTIVO';";
$consulta2 = mysqli_query($link, $sql) or die(mysqli_error());
while ($row = mysqli_fetch_assoc($consulta2)) {
echo "<option value=\"".$row['id3_cod_respuesta']."\">".$row['id3_cod_respuesta']." - ".$row['ES_respuesta']." valor ".$row['ES_valor']."</option>";
}
echo "</select>";
echo "</td>";
echo "</tr>" . "\n";
}
?>

</tr>
<tr>
<td>Fecha Alta:</td>
<td><?php echo $hoy; ?></td>
</tr>
<tr>
<td>Estado:</td>
<td>
<SELECT NAME="UE_estado" SIZE="1">
<OPTION SELECTED="ACTIVO">ACTIVO</OPTION>
<OPTION VALUE="ACTIVO">ACTIVO</OPTION>
<OPTION VALUE="INACTIVO">INACTIVO</OPTION>
</select>
</td>
</tr>
<tr>
<td>&nbsp;</td>
<td><input type="submit" value="Añadir registro"></td>
</tr>
</table>
<input type="hidden" name="MM_insert" value="form1">
<input type="hidden" name="UE_fecha_add" value="<?=$hoy?>"
<input type="hidden" name="UE_fecha_mod" value="0000-00-00 00:00:00">
</form>
</body>
</html>
<?php
mysqli_free_result($consulta);
mysqli_free_result($consulta2);
?>