Ok, primero los cambios. Este es mi formulario:
Código PHP:
<form action="Untitled-2.php" method="post" name="form1" id="form1">
<table width="200" border="0" cellpadding="5" cellspacing="1" bgcolor="#666666">
<?php do { ?>
<tr>
<td bgcolor="#FFFFFF"><label><?php echo $row_Recordset1['preguntas']; ?></label></td>
<td width="5%" bgcolor="#FFFFFF"><input name="check[]" type="checkbox" id="check[]" value="<?php echo $row_Recordset1['preguntas']; ?>" /></td>
</tr>
<?php } while ($row_Recordset1 = mysql_fetch_assoc($Recordset1)); ?>
</table>
<p>
<label>
<input name="usuario" type="hidden" id="usuario" value="juaniquillo" />
<input type="submit" name="Submit" value="enviar" />
</label>
</p>
</form>
Como puedes ver he eliminado el id y le he dado al check el valor de la pregunta. También esta el campo del usuario pero en verdad no lo necesitas si estas usando una variable de sesión para eso, ero por si acaso. Se ve asi en DW:
Ahora, este es el código completo de la pagina que recibe el formulario con comentarios de que es cada cosa:
Código PHP:
//datos de la coneccion
require_once('../Connections/conn_pruebas_local.php');
//funcion para hacer el mysql_real_escape_string
if (!function_exists("GetSQLValueString")) {
function GetSQLValueString($theValue, $theType, $theDefinedValue = "", $theNotDefinedValue = "")
{
$theValue = get_magic_quotes_gpc() ? stripslashes($theValue) : $theValue;
$theValue = function_exists("mysql_real_escape_string") ? mysql_real_escape_string($theValue) : mysql_escape_string($theValue);
switch ($theType) {
case "text":
$theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
break;
case "long":
case "int":
$theValue = ($theValue != "") ? intval($theValue) : "NULL";
break;
case "double":
$theValue = ($theValue != "") ? "'" . doubleval($theValue) . "'" : "NULL";
break;
case "date":
$theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
break;
case "defined":
$theValue = ($theValue != "") ? $theDefinedValue : $theNotDefinedValue;
break;
}
return $theValue;
}
}
//recojemos los valores
$pregunta = $_POST['pregunta'];
$usuario = $_POST['usuario'];
//verificamos si se envia un array
if(is_array($_POST['check'])) {
//el titulo
echo "<strong>Las siguientes preguntas han sido escogidas por ".$usuario."</strong><br /><br />";
while(list($key,$value) = each($_POST['check'])) {
//hacemos el mysql_real_escape_string con la funcion provista por DW. Siempre hay que revisar que la informacion que envia el usuario no es maliciosa
$insert_pregunta = GetSQLValueString($value, "text");
$insert_usuario = GetSQLValueString($usuario, "text");
//hacemos el insert
$query="INSERT INTO preguntas_escogidas (pregunta, usuario) VALUES ($insert_pregunta,$insert_usuario)";
//seccionamos la base de datos y la coneccion
mysql_select_db($database_conn_pruebas_local, $conn_pruebas_local);
//hacemos el query
$resultado1 = mysql_query($query, $conn_pruebas_local) or die(mysql_error());
//hacemos echo a las preguntas
echo $value.'<br />';
}
}
else {
echo "La información enviada no es un array";
}
Como puedes ver, hay que hacerlo a mano ya que DW no permite hacer un insert si no esta el formulario presente. Es por eso que te había dicho que este mensaje tiene más sentido que este en el foro de PHP.
Pero es eso, recibir la información, y se hace el insert. Me dices si tienes alguna duda.