Foros del Web » Programando para Internet » PHP »

Insert en mysql desde PHP

Estas en el tema de Insert en mysql desde PHP en el foro de PHP en Foros del Web. Hola Amigos y muchas gracias a los que nos regalan un tiempito para poder ayudarnos.. Tengo un formulario en el cual al enviar los datos ...
  #1 (permalink)  
Antiguo 21/11/2012, 23:08
Avatar de cristo995  
Fecha de Ingreso: noviembre-2012
Mensajes: 187
Antigüedad: 11 años, 5 meses
Puntos: 0
Insert en mysql desde PHP

Hola Amigos y muchas gracias a los que nos regalan un tiempito para poder ayudarnos..

Tengo un formulario en el cual al enviar los datos algunos necesitan irse a Una tabla y otros a Otra tabla obviamente los campos son diferentes..

Aqui va mi codio php:
<?php
include('conexion.php');
if(isset($_POST['identificacion'])&& !empty($_POST['identificacion'])&&
isset($_POST['nombre']) && !empty($_POST['nombre']) &&
isset($_POST['apellido']) && !empty($_POST['apellido']) &&
isset($_POST['sexo']) && !empty($_POST['sexo'])&&
isset($_POST['tipousu']) && !empty($_POST['tipousu'])&&
isset($_POST['especialidad']) && !empty($_POST['especialidad'])&&
isset($_POSST['codpre']) && !empty($_POST['codpre'])&&
isset($_POST['tipo_pre']) && !empty($_POST['tipo_pre'])&&
isset($_POST['fechapre']) && !empty($_POST['fechapre'])&&
isset($_POST['fechaent']) && !empty($_POST['fechaent']))
{
//conexion con el servidor
$conexion =mysql_connect($host,$user,$pw) or die("problemas al realizar la conexion con el servidor");


//conexion con la base de datos
mysql_select_db($db,$conexion) or die("problemas al conectar con la base de datos");

$consulta1=mysql_query("INSERT INTO especialidad(cod_esp)VALUES('{$especialidad}')",$c onexion);
if(!$consulta1){ echo 'Error en la primera consulta';}

$consulta2=mysql_query("INSERT INTO usuario(cod_usu,nom_usu,ape_usu,sex_usu,tip_usu)VA LUES('{$identificacion}','{$nombre}','{$apellido}' ,'{$sexo}','{$sexo}')",$conexion);
if(!$consulta2){ echo 'Error en la segunda consulta';}

$consulta3=mysql_query("INSERT INTO prestamos(cod_pre,tip_pre,fec_pre,fen_pre,cod_usu) VALUES('{$codpre}','{$tipo_pre}','{$fechapre}','{$ fechaent}')",$conexion);
if(!$consulta3){ echo 'Error en la tercero consulta';}
}else
{
echo '<script language="javascript">
alert("Debes llenar Todos los campos");
location="administrador.php";
</script>';
}
?>

Pero Tengo un Error que cuando envia los datos siempre me tira el aviso que le puse en el ultimo alert y no me envia los datos a la BD de Mysql. :(

me podrian ayudar sera qeu si puedo hacer de esa forma las 3 consultas ??
o tiene ue ser en Una sola ?? y como la hago ..
O enque estoy fallando
  #2 (permalink)  
Antiguo 22/11/2012, 03:37
 
Fecha de Ingreso: octubre-2010
Ubicación: Madrid
Mensajes: 295
Antigüedad: 13 años, 6 meses
Puntos: 12
Respuesta: Insert en mysql desde PHP

Yo lo que veo en la tercera consulta es que en prestamos dentro de la tabla estás definiendo 5 campos que son:
cod_pre
tip_pre
fec_pre
fen_pre
cod_usu

Sin embargo, cuando le asignas valores, sólo le asignas a 4 campos de los 5, te da error, porque a cod_usu no le asignas valor. Tienes que asignarle un valor a cod_usu dentro de la consulta o si tiene un autoincremento o algo similar no ponerlo dentro de la primera parte.

Espero haberme explicado

Un saludo
  #3 (permalink)  
Antiguo 22/11/2012, 06:10
Avatar de homlyne  
Fecha de Ingreso: noviembre-2012
Ubicación: Madrid
Mensajes: 59
Antigüedad: 11 años, 5 meses
Puntos: 10
Respuesta: Insert en mysql desde PHP

pero te salta error en todas las consultas o en alguna en particular?, si puedes escribir el error que te sale mejor...
  #4 (permalink)  
Antiguo 22/11/2012, 18:25
Avatar de cristo995  
Fecha de Ingreso: noviembre-2012
Mensajes: 187
Antigüedad: 11 años, 5 meses
Puntos: 0
Respuesta: Insert en mysql desde PHP

Cita:
Iniciado por homlyne Ver Mensaje
pero te salta error en todas las consultas o en alguna en particular?, si puedes escribir el error que te sale mejor...
__________________________________________________ _______________

No mira ps como tengo 3 consultas entonces decidi solo probar con una para ver si aunquesea.. esta si funciona y resulta que No .

Ahora el problema es que No envia datos a la BD.
Me pueden expliar como es el manejo de las comillas o corchetes en un Insert ??


$consulta1=mysql_query("INSERT INTO especialidad(cod_esp,nom_esp)VALUES('{$especialida d}',{$nombree})",$conexion);

o
VALUES($_POST['especialidad]',$_POST['nombree'] )",$conexion);
o
VALUES('$_POST[especialidad]', '$_POST[nombre]')",$conexion);

if(!$consulta1){ echo 'Error en la primera consulta';}

O como mas ?????
  #5 (permalink)  
Antiguo 22/11/2012, 19:41
Avatar de homlyne  
Fecha de Ingreso: noviembre-2012
Ubicación: Madrid
Mensajes: 59
Antigüedad: 11 años, 5 meses
Puntos: 10
Respuesta: Insert en mysql desde PHP

He visto algunos errores de sintaxis como espacios entre las variables, revisa bien cualquier error de sintaxis, aparte de esto no deberías tener problema con las llaves '{$especialidad}', pero también puedes probar ( ' " . $especialidad . " ' , ' " . $nombre . " ' ), (he dejado espacios para que se pueda ver las comillas simples y dobles comillas), de esta manera lo concatenas.

Y otra cosa que he visto, no se como lo estas tratando pero si vas a utilizar esta sintaxis:

$consulta1=mysql_query("INSERT INTO especialidad(cod_esp,nom_esp)VALUES('{$especialida d}',{$nombre})",$conexion);

antes debes guardar los valores en sus variables:

$especialidad = $_POST['especialidad'];
$nombre = $_POST['nombre'];


y también lo puedes hacer de forma directa:

$consulta1=mysql_query("INSERT INTO especialidad(cod_esp,nom_esp)VALUES('".$_POST['especialidad']."','". $_POST['especialidad']."')",$conexion);

Y lo que te dijo educacanis cuando pases los valores a la tabla que no te falte ni uno, muchas veces es mejor ejecutar la consulta directamente en mysql para comprobar que no haya errores.

PD: si sigue fallando, postea el error que te da al ejecutar el script.

Saludos.
__________________
_________________________

Homlyne - Soporte Online
  #6 (permalink)  
Antiguo 22/11/2012, 22:23
Avatar de cristo995  
Fecha de Ingreso: noviembre-2012
Mensajes: 187
Antigüedad: 11 años, 5 meses
Puntos: 0
Respuesta: Insert en mysql desde PHP

:) Gracias ya se soluciono el problema del envio.
Cree dos variables asi como dijiste y en el insert las mande :) :)

$codesp = $_POST['codigo'];
$nomesp = $_POST['nombre'];

$consulta1=mysql_query("INSERT INTO especialidad(cod_esp,nom_esp)VALUES($codesp,$nomes p)",$conexion);
if(!$consulta1){ echo 'Error en la primera consulta';}

Bno asi pero con otras variables el caso es que ahora si funciona :) :)

Ahora otro problema esta es mi tabla:
create table especialidad
(
cod_esp varchar(10)not null,
nom_esp char(70)not null,
constraint pk_especialidad primary key(cod_esp)
);

Bno esta tabla ya existe en mi BD per como se puede observar los campos son 'varchar'

el problema es el siguiente: en el anterior Insert solo puedo guardar datos del formulario pero que sean NUMEROS ala hora de guardar texto me da el error que yo le puse "Error en la primera consulta" . Lo cual no entiendo si se supone que los campos son "varchar" deverian guardar tanto "cadenas" como "numeros" cierto????

Al ver este problema hice las consultas directamente en MySQL para rectificar.

1: INSERT INTO especialidad (cod_esp,nom_esp) VALUES(1234,4321); : Todo bien
2: INSERT INTO especialidad (cod_esp,nom_esp) VALUES(12345,'sistemas'); Todo bien
3: INSERT INTO especialidad (cod_esp,nom_esp) VALUES('Mantenimiento','sistemas') Todo bien

PERO si mando estos datos desde el formulario : La una consulta que me guarda es la Nuero: 1 !!! por que ????


No puedo decir que es alguna variable mal o halgo asi .. ya que la consulta se hace y se guarda pero solo numeros

Entonces no se a que biene este problema ????

Muchas gracias por la ayudita y espero no estar molestando con tanta preguntadera :) :) pero es el unico foro que he visto que se enfocan mas en este tipo de cosas y tambien e aclarado muchas cosas gracias a los temas y respuestas que surgen . Dia a Dia :)

Última edición por cristo995; 22/11/2012 a las 22:44
  #7 (permalink)  
Antiguo 23/11/2012, 05:20
Avatar de homlyne  
Fecha de Ingreso: noviembre-2012
Ubicación: Madrid
Mensajes: 59
Antigüedad: 11 años, 5 meses
Puntos: 10
Respuesta: Insert en mysql desde PHP

Tendras que mirar que datos llegan desde el formulario antes de enviar la consulta, simplemente haces un echo o print() antes y despues de hacer el insert.
__________________
_________________________

Homlyne - Soporte Online
  #8 (permalink)  
Antiguo 24/11/2012, 14:27
Avatar de cristo995  
Fecha de Ingreso: noviembre-2012
Mensajes: 187
Antigüedad: 11 años, 5 meses
Puntos: 0
Respuesta: Insert en mysql desde PHP

Cita:
Iniciado por homlyne Ver Mensaje
Tendras que mirar que datos llegan desde el formulario antes de enviar la consulta, simplemente haces un echo o print() antes y despues de hacer el insert.
Oye ya solucione el envio muchas gracias era que estaba dejando un espacio en una de las variables

muchisimas gracias por tu ayuda

habri un Nvo tema de procedimientos almacenados en mysql-php me echarias una mano. please

http://www.forosdelweb.com/f18/error-procedimientos-almacenados-mysql-php-1024650/#post4318016

Etiquetas: formulario, insert, mysql, sql, tabla, usuarios
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 21:48.