Foros del Web » Programando para Internet » PHP »

Data a mysql

Estas en el tema de Data a mysql en el foro de PHP en Foros del Web. Ayuda........... Tengo el siguiente codigo:para enviar data a la base de datos mysql <html> <head><title>PAGINA WEB</title> </head> <body> <form name="f"> <input type="hidden" name="opt"> <label>Nombre:</label> <input ...
  #1 (permalink)  
Antiguo 06/09/2009, 00:12
 
Fecha de Ingreso: septiembre-2009
Mensajes: 138
Antigüedad: 14 años, 8 meses
Puntos: 3
Data a mysql

Ayuda...........
Tengo el siguiente codigo:para enviar data a la base de datos mysql

<html>
<head><title>PAGINA WEB</title>
</head>
<body>
<form name="f">
<input type="hidden" name="opt">
<label>Nombre:</label>
<input type="text" name="nombre">
<br>
<label>Apellido:</label>
<input type="text" name="apellido">
<br>
<input type="button" value="aceptar" onclick=validar()>
</form>
</body>
</html>

<script language="javascript">
function validar()
{
if(f.nombre.value=="")
{
alert("Por favor ingrese el nombre");
return;
}
f.opt.value=1;
f.submit();
}
</script>


<?php
$co=mysql_connect("localhost","root","")or die("error");
mysql_select_db("bdempleado");

$opt=$HTTP_POST_VARS["opt"];

if($opt==1)
{
$nombre=$HTTP_POST_VARS["nombre"];
$apellido=$HTTP_POST_VARS["apellido"];
$in="insert into empleado (id,nombre,apellido) values('','".$nombre."','".$apellido."')";
$ej=mysql_query($in,$co);
}

?>

-Y me sale este aviso:
MySQL ha devuelto un valor vacío (i.e., cero columnas). ( La consulta tardó 0.0004 seg )

-Quisiera saber porque me sale este aviso. se los agradeceria
  #2 (permalink)  
Antiguo 07/09/2009, 14:34
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Respuesta: Data a mysql

Tema trasladado desde PHP Orientado a Objetos.
  #3 (permalink)  
Antiguo 07/09/2009, 16:02
 
Fecha de Ingreso: abril-2009
Ubicación: Miami
Mensajes: 182
Antigüedad: 15 años
Puntos: 8
Respuesta: Data a mysql

hola Alber_h...

Primero, trata de recoger las variables con $nombre =$_POST ['nombre'] y con $apellidos =$_POST ['apellidos']

pues el uso de $HTTP_POST_VARS es algo viejito ...

Por otra parte .. en tu tabla de Mysql, de que tipo de datos es ID ??? .. imagino que sea numérico, es un ID númerico y Entero, con el cual identificarás a cada empleado, y en tu consulta estás insertando una coma [,], en esta línea:


$in="insert into empleado (id,nombre,apellido) values('','".$nombre."','".$apellido."')";//en lugar de esa "," creo que no debes poner nada, mas bien tu INSERT debería ser así:

$in="insert into empleado (nombre,apellido) values('$nombre', '$apellidos')";

Y te recomiendo además que el campo ID en tu base de datos lo hagas INT (entero) así como lo pongas AUTOINCREMENT, esto quiere decir que cada vez que insertes un nuevo recordset pues este generará un número consecutivo al que estaba antes ....

.... espero te sirva !!! salu2!!!



Cita:
Iniciado por Alber_h Ver Mensaje
Ayuda...........
Tengo el siguiente codigo:para enviar data a la base de datos mysql

<html>
<head><title>PAGINA WEB</title>
</head>
<body>
<form name="f">
<input type="hidden" name="opt">
<label>Nombre:</label>
<input type="text" name="nombre">
<br>
<label>Apellido:</label>
<input type="text" name="apellido">
<br>
<input type="button" value="aceptar" onclick=validar()>
</form>
</body>
</html>

<script language="javascript">
function validar()
{
if(f.nombre.value=="")
{
alert("Por favor ingrese el nombre");
return;
}
f.opt.value=1;
f.submit();
}
</script>


<?php
$co=mysql_connect("localhost","root","")or die("error");
mysql_select_db("bdempleado");

$opt=$HTTP_POST_VARS["opt"];

if($opt==1)
{
$nombre=$HTTP_POST_VARS["nombre"];
$apellido=$HTTP_POST_VARS["apellido"];
$in="insert into empleado (id,nombre,apellido) values('','".$nombre."','".$apellido."')";
$ej=mysql_query($in,$co);
}

?>

-Y me sale este aviso:
MySQL ha devuelto un valor vacío (i.e., cero columnas). ( La consulta tardó 0.0004 seg )

-Quisiera saber porque me sale este aviso. se los agradeceria
__________________
-----------------------------------
Éxitos !!! .. joao
  #4 (permalink)  
Antiguo 08/09/2009, 06:28
 
Fecha de Ingreso: septiembre-2009
Mensajes: 138
Antigüedad: 14 años, 8 meses
Puntos: 3
Respuesta: Data a mysql

Hola JoaoWizard : solo cambie el metodo $http_post_vars por el $_post asi:
<html>
<head><title>PAGINA WEB</title>
</head>
<body>
<form name="f" method="post">
<input type="hidden" name="opt">
<label>Nombre:</label>
<input type="text" name="nombre">
<br>
<label>Apellido:</label>
<input type="text" name="apellido">
<br>
<input type="button" value="aceptar" onclick=validar()>
</form>
</body>
</html>

<script language="javascript">
function validar()
{
if(f.nombre.value=="")
{
alert("Por favor ingrese el nombre");
return;
}
f.opt.value=1;
f.submit();
}
</script>


<?php
$co=mysql_connect("localhost","root","")or die("error");
mysql_select_db("bdempleado");

$opt=$_POST['opt'];

if($opt==1)
{
$nombre=$_POST['nombre'];
$apellido=$_POST['apellido'];
$in="insert into empleado (nombre,apellido)values('$nombre','$apellido')";
$ej=mysql_query($in,$co);
}

?>


*y en mysql me sale:
Mostrando registros 0 - 0 (1 total, La consulta tardó 0.0004 seg)

*y cuando inserte por primera vez la data el id se puso en cero

*quisiera consultar porque me sale este aviso y quisiera que me ayudes con el
codigo de insertar.eso seria todo gracias.




Cita:
Iniciado por joaowizard Ver Mensaje
hola Alber_h...

Primero, trata de recoger las variables con $nombre =$_POST ['nombre'] y con $apellidos =$_POST ['apellidos']

pues el uso de $HTTP_POST_VARS es algo viejito ...

Por otra parte .. en tu tabla de Mysql, de que tipo de datos es ID ??? .. imagino que sea numérico, es un ID númerico y Entero, con el cual identificarás a cada empleado, y en tu consulta estás insertando una coma [,], en esta línea:


$in="insert into empleado (id,nombre,apellido) values('','".$nombre."','".$apellido."')";//en lugar de esa "," creo que no debes poner nada, mas bien tu INSERT debería ser así:

$in="insert into empleado (nombre,apellido) values('$nombre', '$apellidos')";

Y te recomiendo además que el campo ID en tu base de datos lo hagas INT (entero) así como lo pongas AUTOINCREMENT, esto quiere decir que cada vez que insertes un nuevo recordset pues este generará un número consecutivo al que estaba antes ....

.... espero te sirva !!! salu2!!!
  #5 (permalink)  
Antiguo 08/09/2009, 14:12
 
Fecha de Ingreso: septiembre-2009
Mensajes: 138
Antigüedad: 14 años, 8 meses
Puntos: 3
Respuesta: Data a mysql

Hola JoaoWizard : solo cambie el metodo $http_post_vars por el $_post asi:
<html>
<head><title>PAGINA WEB</title>
</head>
<body>
<form name="f" method="post">
<input type="hidden" name="opt">
<label>Nombre:</label>
<input type="text" name="nombre">
<br>
<label>Apellido:</label>
<input type="text" name="apellido">
<br>
<input type="button" value="aceptar" onclick=validar()>
</form>
</body>
</html>

<script language="javascript">
function validar()
{
if(f.nombre.value=="")
{
alert("Por favor ingrese el nombre");
return;
}
f.opt.value=1;
f.submit();
}
</script>


<?php
$co=mysql_connect("localhost","root","")or die("error");
mysql_select_db("bdempleado");

$opt=$_POST['opt'];

if($opt==1)
{
$nombre=$_POST['nombre'];
$apellido=$_POST['apellido'];
$in="insert into empleado (nombre,apellido)values('$nombre','$apellido')";
$ej=mysql_query($in,$co);
}

?>


*y en mysql me sale:
Mostrando registros 0 - 0 (1 total, La consulta tardó 0.0004 seg)

*y cuando inserte por primera vez la data el id se puso en cero

*quisiera consultar porque me sale este aviso y quisiera que me ayudes con el
codigo de insertar.eso seria todo gracias.
  #6 (permalink)  
Antiguo 09/09/2009, 08:50
 
Fecha de Ingreso: abril-2009
Ubicación: Miami
Mensajes: 182
Antigüedad: 15 años
Puntos: 8
De acuerdo Respuesta: Data a mysql

hola Alber_h

esta línea $opt=$_POST['opt']; lo que hace es recoger de tu form la variable opt, que NUNCA llega a ser 1, pues CREO que no puedes recoger de tu script opt de esa forma, te recomiendo que hagas lo siguiente:

if (!($_POST['form'])){//sino viene del form entonces pinto el form

.... acá pintas tu form tal y como está

agregas a tu form lo siguiente:

<input type="hidden" name="form">

}else{

if (($_POST['nombre']=="")||($_POST['apellidos']=="")){//si nombre o apellidos dejo en blanco

echo "<script>alert('Telcee Nombre y Apellido.');</script>";//una alerta
echo "<script>location.href='javascript:history.back()' ;</script>";//llevas atras

}else{
//si pasa esto es pq se teclearon nombre y apellidos ....

...sigue tu código con la inserción ... que está correcta
}//fin del IF
}//fin del primer IF

salu2 ....
__________________
-----------------------------------
Éxitos !!! .. joao
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 20:43.