Foros del Web » Programando para Internet » PHP »

Introducir datos en una tabla relacionada con varias tablas

Estas en el tema de Introducir datos en una tabla relacionada con varias tablas en el foro de PHP en Foros del Web. hola estoy deesarrollando un pequeño sistema pero tengo una duda a la hora de insertar datos desde unformulario php mis tablas son administraddor, especialidad, sexo, ...
  #1 (permalink)  
Antiguo 03/07/2011, 13:56
Avatar de jlvo1990  
Fecha de Ingreso: enero-2010
Ubicación: Piura
Mensajes: 8
Antigüedad: 10 años, 2 meses
Puntos: 0
Introducir datos en una tabla relacionada con varias tablas

hola estoy deesarrollando un pequeño sistema pero tengo una duda a la hora de insertar datos desde unformulario php

mis tablas son administraddor, especialidad, sexo, estado_civil

sexo

id_sexo int(10),
nombrevarchar(10)


especialidad

id_especialidad int(10),
nombre varchar(80)

estado_civil

id_estadocivil int(10)
nombre varchar(60)

administrador

id_admin int(10)
id_sexo int(10)
id_especialidad int(10)
id_estadocivil int(10)
nombre varchar(60)
apellido varchar(60)
foto varchar(80)

como ven la tabla administrador contiene los id del resto de las tablas

conexion.php

<?php
function Conectarse()
{
if (!($link=mysql_connect("localhost","root","")))
{
echo "Error conectando a la base de datos.";
exit();
}
if (!mysql_select_db("matricula",$link))
{
echo "Error seleccionando la base de datos.";
exit();
}
return $link;
}

$link=Conectarse();
echo "Conexión con la base de datos conseguida.<br>";

//mysql_close($link); //cierra la conexion
?>

formulario php

dentro del formulario php coloco los combobox que contienen los datos de las otras tablas haciendo una consulta a la base de datos

<form method="post" enctype="multipart/form-data" name="form1" id="form1">
<label class="la">Especialidad:</label>
<select name="especialidad">
<option value="null">Escoger</option>
<?php
include_once('conexion/conexion.php');

$result = mysql_query("SELECT * FROM especialidad");

while ($row = mysql_fetch_array($result, MYSQL_ASSOC))
{
echo '<option value="'.$row["id"].'">'.$row["nombre"].'</option>';
}
mysql_free_result($result);

?>
</select>



<label for="observaciones" class="la">Sexo:</label>
<select name="sexo">
<option value="null">Escoger</option>
<?php
include_once('conexion/conexion.php');

$result = mysql_query("SELECT * FROM sexo");

while ($row = mysql_fetch_array($result, MYSQL_ASSOC))
{
echo '<option value="'.$row["idSexo"].'">'.$row["Descripcion"].'</option>';
}
mysql_free_result($result);

?>
</select>


<label for="observaciones" class="la">Estado Civil:</label>
<select name="estado_civil">
<option value="null">Escoger</option>
<?php
include_once('conexion/conexion.php');

$result = mysql_query("SELECT * FROM estado_civil");

while ($row = mysql_fetch_array($result, MYSQL_ASSOC))
{
echo '<option value="'.$row["idestado_civil"].'">'.$row["Descripcion"].'</option>';
}
mysql_free_result($result);

?>
</select>

<label for="observaciones" class="la">Nombres:</label>
<input type="text" name="txtnombre" id="txtnombre" />

<label for="observaciones" class="la">Apellidos:</label>
<input name="txtapellido" type="text" id="txtapellido" />

<label for="observaciones" class="la">Foto:</label>
<input type="file" name="filfoto" id="filfoto" />

<input type="submit" name="btnregistrarse" id="btnregistrarse" value="Registrarse" class="boton" />


codigo utilizado para insertar

<?php
if((empty($_POST['txtapellido']))and(empty($_POST['txtnombre']))and(empty($_FILES['filfoto'] ['name']))and(empty($_POST['especialidad'])) and(empty($_POST["sexo"]))and(empty($_POST["estado_civil"])))
{
echo "<script>window.alert('debe ingresar todos los datos')</script>";
}
else
{
include_once('conexion/conexion.php');
if(Conectarse())
{
move_uploaded_file($_FILES['filfoto']['tmp_name'], dirname($_SERVER['SCRIPT_FILENAME'])."/fotos/".$_FILES['filfoto']['name']);

$sql="INSERT INTO administrador VALUES('','".$_POST['especialidad']."','".$_POST['sexo']."','".$_POST['estado_civil']."','"..$_POST['txtnombre']."','".$_POST['txtapellido']."','".$_FILES['filfoto']['name']."')";

$ejecutar_sql=mysql_query($sql);

if(mysql_affected_rows())
{
$msj="Trabajador registrado correctamente en la base de datos";
}
else
{
$msj="No se pudo registrar el nuevo trabajador";
}
echo "<script>window.alert('".$msj."')</script>";
}
}
?>

</form>

cuando lo ejecuto me sale el mensaje Trabajador registrado correctamente en la base de datos pero cuando verifico la base de datos no tiene nada y la foto si la copia a la ruta especifica gracias a todos por sus respuestas
  #2 (permalink)  
Antiguo 03/07/2011, 16:14
Avatar de Italico76  
Fecha de Ingreso: abril-2007
Mensajes: 3.303
Antigüedad: 12 años, 11 meses
Puntos: 292
Respuesta: Introducir datos en una tabla relacionada con varias tablas

Ya que poseteas en "Frameworks y PHP orientado a objetos" deberias intentar al menos usar PDO
__________________
Salu2!
  #3 (permalink)  
Antiguo 04/07/2011, 06:36
 
Fecha de Ingreso: julio-2008
Ubicación: Barcelona
Mensajes: 2.100
Antigüedad: 11 años, 8 meses
Puntos: 165
Respuesta: Introducir datos en una tabla relacionada con varias tablas

Deberías de hacer un echo de tu $sql para ver que valores esta tomando cada variable.

Después deberías de validar que no vengan vacías, deberías de limpiarlas para seguridad.. etc

Un saludo!
  #4 (permalink)  
Antiguo 04/07/2011, 11:43
Avatar de jlvo1990  
Fecha de Ingreso: enero-2010
Ubicación: Piura
Mensajes: 8
Antigüedad: 10 años, 2 meses
Puntos: 0
Respuesta: Introducir datos en una tabla relacionada con varias tablas

hola a todos gracias por su respouestas ya puedo insertar en la base de datos ahora tengo un pequeño problema esque no puedo insertar la la especialidad

estoy usuando el siguiente codigo

Código PHP:
Ver original
  1. $sql="INSERT INTO administrador VALUES('','".$_POST['especialidad']."','".$_POST['sexo']."','".$_POST['estado_civil']."','".$_POST['txtapellido']."','".$_POST['txtnombre']."','".$_POST['fecha']."','".$_POST['txtdni']."','".$_POST['txtdireccion']."','".$_POST['txttelefonocasa']."','".$_POST['txtcelular']."','".$_POST['txtemail']."','".$_FILES['filfoto']['name']."','".$_POST['observaciones']."','".$_POST['txtnombreusuario']."','".$contrasena."')";

y muestro en panta la consulta del insert y esto es lo que me sale

INSERT INTO administrador VALUES('','','2','1','vargas','jose','2011-07-04','46579058','piura','360764','968064966','jlvo1 [email protected]','','asdfsgdfg','jlvo1990','d41d8c d98f00b204e9800998ecf8427e')

y en la base de datos la la especialidad toma el valor cero
  #5 (permalink)  
Antiguo 04/07/2011, 11:49
 
Fecha de Ingreso: julio-2008
Ubicación: Barcelona
Mensajes: 2.100
Antigüedad: 11 años, 8 meses
Puntos: 165
Respuesta: Introducir datos en una tabla relacionada con varias tablas

Te recomiendo que modifiques tu consutla INSERT para añadir el nombre de las columnas. También, que hagas un echo mysq_error() para ver que error te da, seguramente sea por tema de columnas y valores mal puestos ( orden erroneo, falta de columnas, etc )

Un saludo!

Etiquetas: frameworks-y-php-orientado-a-objetos, insertardatos, mysl, nohayenla, oo.datos, phpoo, relacionadas, tablas, formulario, bases-de-datos
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 05:57.