Foros del Web » Programando para Internet » PHP »

Seleccionar nombre de Combobox para almacenar el id de una tabla en mysql

Estas en el tema de Seleccionar nombre de Combobox para almacenar el id de una tabla en mysql en el foro de PHP en Foros del Web. Buenas Noches, Necesito ayuda super urgente, sobre este tema: - En un formulario de registro, de proyectos, se ingresan los siguientes datos: Id del trabajo, ...
  #1 (permalink)  
Antiguo 24/10/2012, 18:02
 
Fecha de Ingreso: octubre-2012
Mensajes: 4
Antigüedad: 11 años, 6 meses
Puntos: 0
Seleccionar nombre de Combobox para almacenar el id de una tabla en mysql

Buenas Noches,

Necesito ayuda super urgente, sobre este tema:

- En un formulario de registro, de proyectos, se ingresan los siguientes datos:
Id del trabajo, el titulo, autor, resumen, palabras claves (3 o 4), modalidad, fecha.

- En un combobox se muestra el nombre del director, esto se trae de la tabla director que está en la bd mysql y debo almacenar en otra tabla el Id del nombre del director.

- En un segundo combobox, se muestra el nombre de la carrera, esto se trae de la tabla programa que está en la bd mysql y debo almacenar en otra tabla el Id de la carrera.

- En un tercer combobox, se selecciona el nombre del archivo que se trae de la tabla archivo de la base de datos mysql.

Una vez tengo todos los datos listos, debo hacer un solo insert a la tabla trabajogrado.

El problema es que no sabemos como guardar la selección de los combobox en la tabla trabajo de grado sabiendo que se selecciona y se guarda el ID, de cada unos de los datos mencionados anteriormente.

Adjuntamos el código trabajado hasta el momento.

En un archivo llamado conexion.php, tenemos los datos de la conexion a la bd.

<?php
$host = "localhost";
$user = "root";
$pw = "";
$db = "proyfinal";
?>


En el archivo formulario.php, se hace la captura de los datos para insertar posteriormente.

!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" />
<title>Documento sin título</title>
</head>

<body>

<?php
$conexion= mysql_connect("localhost","root","");
mysql_select_db("proyfinal",$conexion);
$sentencia= "select * from director order by nombre asc";
$sentencia1= "select * from programa order by nombre asc";
$sentencia2= "select * from archivo order by nombre asc";
$que=mysql_query($sentencia);
$que1=mysql_query($sentencia1);
$que2=mysql_query($sentencia2);
?>


<form action="insertar.php" method="POST" name="form">
<p><center> <font color="blue"><font face="Monotype Corsiva" size="14">formulario para trabajo de grado:</p></FONT>
</FONT>
<font face="Monotype Corsiva" size="6"><p> id_trabajo:
<input name="id_trab" type="text"/>
</p>
<p> titulo:
<input name="titulo" type="text" />
</p>
<p> autor:
<input name="autor" type="text" />
</p>

<p> director:

<select name="id_director" size="0">
<?php while($arreglo= mysql_fetch_array($que)){ ?>
<option value="<?php echo $arreglo['0']?> "> <?php echo $arreglo ['1']?></option>
<?php echo "<option value=".$valor.">".$nombre."</option>";} ?>

</select>
</p>


<p> programa:

<select name="id_programa" size="0">
<?php while($arreglo1= mysql_fetch_array($que1)){ ?>
<option value="<?php echo $arreglo1['0']?> "> <?php echo $arreglo1 ['1']?></option>
<?php } ?>

</select>
</p>
<p>resumen:
<input name="resumen" type="text" />
</p>
<p>palabras claves:
<input name="PALABCLAVE" type="text" />
</p>
<p>modalidad:
<input name="MODALIDAD" type="text" />
</p>
<p>fecha:
<input name="FECHA" type="text" />
</p>
<p> archivo:

<select name="ARCHIVO_ID_ARCHIVO" size="0">
<?php while($arreglo2= mysql_fetch_array($que2)){ ?>
<option value="<?php echo $arreglo2['0']?> "> <?php echo $arreglo2 ['1']?></option>
<?php } ?>

</select>
</p>
<p>
<input type="submit" value=" enviar datos" />
</p>

</body>
</html>


En un tercer archivo, se define el insert a la base de datos, lo hemos insertar.php

<?php
include("conexion.php");
$combo = $_POST["combo"];
//$canal = $_POST['id_director'];
//$canal1 = $_POST['arreglo1'];
//$canal2= $_POST['arreglo2'];
if(isset ($_POST['id_trab'])&& !empty($_POST['id_trab'])
&& isset ($_POST['titulo']) &&!empty($_POST['titulo'])
&& isset ($_POST['AUTOR']) &&!empty($_POST['AUTOR'])
&& isset ($_POST['id_director']) &&!empty($_POST['id_director'['0']])
&& isset ($_POST['id_programa']) &&!empty($_POST['id_programa'])
&& isset ($_POST['resumen']) &&!empty($_POST['resumen'])
&& isset ($_POST['PALABCLAVE']) &&!empty($_POST['PALABCLAVE'])
&& isset ($_POST['MODALIDAD']) &&!empty($_POST['MODALIDAD'])
&& isset ($_POST['FECHA']) &&!empty($_POST['FECHA'])
&& isset ($_POST['ARCHIVO_ID_ARCHIVO']) &&!empty($_POST['ARCHIVO_ID_ARCHIVO']))
{


$con=mysql_connect($host,$user,$pw) or die ("problemas al conectar");
mysql_select_db($db,$con) or die ("problemas con la base de datos");

$result = mysql_query("SELECT * FROM director WHERE id_director= $combo"); //Aqui condicionamos el id del campo que mostraste en el combo que se igual al al valor que se registro en el select para que sepa que campo almacenar

while($row = mysql_fetch_array($result)) { //Volvemos a hacer el ciclo para que rescate el valor
$iddi= $row["id_director"];

}
mysql_query("INSERT INTO TRABGRADO (id_trab, titulo, AUTOR, id_director, id_programa, resumen, PALABCLAVE, MODALIDAD,FECHA, ARCHIVO_ID_ARCHIVO)
VALUES('$_POST[id_trab]', '$_POST[titulo]', '$_POST[AUTOR]',('$nombre')", '$_POST[resumen]','$_POST[PALABCLAVE]','$_POST[MODALIDAD]','$_POST[FECHA]')",$con);
echo "datos insertados";
}else{
echo "problemas al insertar datos";
}
?>


Después de revisar el código no sabemos la razón por la que no almacena los datos del formulario.

Agradecemos su valiosa colaboración.
  #2 (permalink)  
Antiguo 24/10/2012, 19:19
Avatar de Nemutagk
Colaborador
 
Fecha de Ingreso: marzo-2004
Ubicación: México
Mensajes: 2.633
Antigüedad: 20 años, 1 mes
Puntos: 406
Respuesta: Seleccionar nombre de Combobox para almacenar el id de una tabla en mysql

No dices en donde esta el problema, solo dices que no almacena los datos, por lo tanto deduzco que los valores enviados via POST si llegan al archivo 3, si es así, lo que debes hacer es depurar la conexión, la selección de la DB y por ultimo y mas importante la ejecución del SQL, todo esto se hace agregando un " or die(mysql_error());" después de cada función mysql_* que utilices...

Código PHP:
Ver original
  1. $conexion = mysql_connect($host,$user,$pass) or die(mysql_error());
  2. mysql_select_db($db,$conexion) or die(mysql_error());
  3.  
  4. mysql_query($sql,$conexion) or die(mysql_error());

Por ultimo, las funciones mysql_* están obsoletas, debes usar mysqli o mejor aun PDO...

Olvidaba, deja de "clonar" post en el foro...
__________________
Listo?, tendría que tener 60 puntos menos de IQ para considerarme listo!!!
-- Sheldon Cooper
http://twitter.com/nemutagk
PD: No contestaré temas vía mensaje personal =)
  #3 (permalink)  
Antiguo 25/10/2012, 08:07
 
Fecha de Ingreso: octubre-2012
Mensajes: 4
Antigüedad: 11 años, 6 meses
Puntos: 0
Respuesta: Seleccionar nombre de Combobox para almacenar el id de una tabla en mysql

Buenos días,

He leído su mensaje, y me gustaría que me aclarara la última parte "Olvidaba, deja de "clonar" post en el foro...", me permito aclarar que no estoy clonando ningún post del foro, dado que la pregunta está relacionada directamente con un desarrollo de software que se está haciendo para la Institución donde trabajo y es a través de un proyecto que están realizando dos estudiantes de un programa académico. Además hasta el día de ayer se hizo la inscripción a este sitio.

Agradezco su valiosa colaboración.

Etiquetas: almacenar, combobox, formulario, html, mysql, nombre, registro, sql, 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 09:47.