Foros del Web » Programando para Internet » PHP »

insertar datos

Estas en el tema de insertar datos en el foro de PHP en Foros del Web. amigos soy nuevo en esto del php pero he estado leyendo algunos manuales pero necesito ayuda de como insertar datos: me explico mejor quiero hacer ...
  #1 (permalink)  
Antiguo 12/07/2010, 14:44
 
Fecha de Ingreso: julio-2010
Mensajes: 4
Antigüedad: 13 años, 9 meses
Puntos: 0
insertar datos

amigos soy nuevo en esto del php pero he estado leyendo algunos manuales pero necesito ayuda de como insertar datos:
me explico mejor quiero hacer la cartura de usuarios que entren y salgan de una oficina y laidea que tengo es que existan dos botones uno de entrada y otro de salida el cual cuando le den en el boton de entrada me registre el codigo la fecha y la hora de entrada en una tabla entrada y lo mismo con la salida al darle al boton salida que se registren el codigo la fecha y la hora pero en otra tabla esto lo veo asi para manejar mejor los datos, ahurita tengo las tablas de :
USUARIO
ENTRADA
SALIDA
donde valido el codigo de cada usuario en la tabla USUARIO cada vez que se introduce ahurita puedo insertar datos pero en una tabla y no como quiero hacerlo alguien mepuede dar una manito porfavor este es el codigo que tengo ahurita:

if ($cirun) {
if ($link = mysql_connect("localhost","pepe","123456")) {
// Conexión correcta
$sql = "select * from $tabla_USUARIOS WHERE cirun = '$cirun'";
$rows = @mysql_fetch_assoc(mysql_db_query($base, $sql));
if ($rows) {

$sql = "insert into $tabla_control (cirun, tipo, fecha, hora ) VALUES ('$cirun', '$tipo', NOW() , CURTIME() )";

// se ejecuta la consulta
mysql_db_query($base ,$sql) ;
// marcacion correcta de su carnet de identidad
print "<h2><CENTER><font color=#0099000><h1>MARCACION CORRECTA</h1></font></CENTER></b></H2>";
?>
<center>
<table>
<tr>
<td height="25" align="center"><center><h2><font color=#0000666><?php echo $rows['nombres'];?> </CENTER></font></H2></td>
<td height="25" align="center"><center><h2><font color=#0000666><?php echo $rows['apellidos'];?> </CENTER></font></H2></td>
</td>
</table>
</center>
<?php
// si hay error hacemos debug
if (mysql_errno()) {
print "
<p>Se ha producido un error</p>
<p>Error en la consulta:</p>
SQL: $sql<hr />
<p>Error nº ".mysql_errno()."</p>
<p>MySQL dijo: ".mysql_error()."</p>
";
}
} else {
// no existe ningun ciru en la base de datos o han metido mal su carnet
print "<h2><CENTER><font color=#FF0000><h1>SU CODIGO NO ES VALIDO</h1></font></CENTER></b></H2>";
}
// cierre de la conexion
mysql_close($link);
} else {
// La conexion MySQL falló
die("Imposible conectar con la base de datos");
}
} else {
// Falta carnet
print "<h2><CENTER><font color=#FF9900><h1>DEBE INTRODUCIR SU CODIGO</h1></font></CENTER></b></H2>";
}
?>

esto lo hago precionando dos botones uno entrada y salida pero se insertan en una tabla y lo que quiero es separar entrada en una tabla y salida en otra tabla nose si me dejo entender.
espero sugerencias GRACIAS de antemano
  #2 (permalink)  
Antiguo 13/07/2010, 12:18
Avatar de roxhp  
Fecha de Ingreso: mayo-2010
Ubicación: Veracruz
Mensajes: 39
Antigüedad: 13 años, 11 meses
Puntos: 3
Respuesta: insertar datos

Hola:

Tus dos tablas (entrada y salida) tienen los mismos campos???

Tu codigo esta bien lo que podrias hacer es antes de este poner una pagina que muestre tu pantalla con los botones, de ahi que te mande a la siguiente pagina que es la del codigo que tienes.

Los botones estarian asi:

Código PHP:

echo "<input type='submit' name='Submit' onclick=\"location.href='pagina_inserta.php?tabla=entrada&cirun=$cirun&tipo=$tipo'\" value='Entrada'>";

echo 
"<input type='submit' name='Submit' onclick=\"location.href='pagina_inserta.php?tabla=salida&cirun=$cirun&tipo=$tipo'\" value='Salida'>"
En la otra pagina obtendrias el valor de la tabla, tipo y de cirun por el metodo get.

Código PHP:

$tabla
=$_GET["tabla"]; // o $tabla_control como lo tienes en el insert
$cirun=$_GET["cirun"];
$tipo=$_GET["tipo"];

//aki seguiria tu codigo
if ($cirun) { 
if (
$link mysql_connect("localhost","pepe","123456")) { 
// Conexión correcta 
$sql "select * from $tabla_USUARIOS WHERE cirun = '$cirun'";
$rows = @mysql_fetch_assoc(mysql_db_query($base$sql)); 
if (
$rows) { 

// aqui si son los mismos campos solo lo dejarias asi 
$sql "insert into $tabla_control (cirun, tipo, fecha, hora ) VALUES ('$cirun', '$tipo', NOW() , CURTIME() )";

// sino son los mismos campos harias un if y dependiendo de la tabla va a ser el insert

// se ejecuta la consulta 
// aqui asignale el resultado a una variable para que cheques si se ejecuto el query
$res=mysql_db_query($base ,$sql) ;

// aqui checarias si se ejecuto el query haces lo siguiente
if($res)
{
   
// marcacion correcta de su carnet de identidad 
   
echo "<h2><CENTER><font color=#0099000><h1>MARCACION CORRECTA</h1></font></CENTER></b></H2><center>
     <table>
       <tr>
       <td height="
25" align="center"><center><h2><font color=#0000666>".$rows['nombres']."</CENTER></font></H2></td>
<td height="
25" align="center"><center><h2><font color=#0000666>".$rows['apellidos']."</CENTER></font></H2></td>
</td>
</table>
</center>"
;
}

// si hay error hacemos debug 
if (mysql_errno()) { 
print 

<p>Se ha producido un error</p> 
<p>Error en la consulta:</p> 
SQL: $sql<hr /> 
<p>Error nº "
.mysql_errno()."</p> 
<p>MySQL dijo: "
.mysql_error()."</p> 
"

}

.
.

Puedes ponerle un meta tag que te redireccione a la pagina de los botones despues de determinado tiempo

Código HTML:
<meta http-equiv="refresh" content="60;URL=./tu_pagina.htm" > 
o bien redireccionas con un header location desde el codigo y en el url que le pases, pasarias los mensajes de error que mostrarias o bien de que se ingresaron los datos como sea el caso.

Eso ya es cosa de lo que prefieras tu.

No se si eso es mas o menos lo que querias por que no entendi muy bien cual era el problema :P

Espero y te sirva de algo
  #3 (permalink)  
Antiguo 13/07/2010, 13:28
 
Fecha de Ingreso: mayo-2010
Mensajes: 212
Antigüedad: 13 años, 11 meses
Puntos: 3
Respuesta: insertar datos

una sugerencia, digo si es que vas a usar la misma conexion, es ponerla en otro archivo y usarlo en un include.
__________________
Por favor dejenme Karmas
  #4 (permalink)  
Antiguo 13/07/2010, 14:32
 
Fecha de Ingreso: julio-2010
Mensajes: 4
Antigüedad: 13 años, 9 meses
Puntos: 0
Respuesta: insertar datos

Cita:
Iniciado por roxhp Ver Mensaje
Hola:

Tus dos tablas (entrada y salida) tienen los mismos campos???

Tu codigo esta bien lo que podrias hacer es antes de este poner una pagina que muestre tu pantalla con los botones, de ahi que te mande a la siguiente pagina que es la del codigo que tienes.

Los botones estarian asi:

Código PHP:

echo "<input type='submit' name='Submit' onclick=\"location.href='pagina_inserta.php?tabla=entrada&cirun=$cirun&tipo=$tipo'\" value='Entrada'>";

echo 
"<input type='submit' name='Submit' onclick=\"location.href='pagina_inserta.php?tabla=salida&cirun=$cirun&tipo=$tipo'\" value='Salida'>"
En la otra pagina obtendrias el valor de la tabla, tipo y de cirun por el metodo get.

Código PHP:

$tabla
=$_GET["tabla"]; // o $tabla_control como lo tienes en el insert
$cirun=$_GET["cirun"];
$tipo=$_GET["tipo"];

//aki seguiria tu codigo
if ($cirun) { 
if (
$link mysql_connect("localhost","pepe","123456")) { 
// Conexión correcta 
$sql "select * from $tabla_USUARIOS WHERE cirun = '$cirun'";
$rows = @mysql_fetch_assoc(mysql_db_query($base$sql)); 
if (
$rows) { 

// aqui si son los mismos campos solo lo dejarias asi 
$sql "insert into $tabla_control (cirun, tipo, fecha, hora ) VALUES ('$cirun', '$tipo', NOW() , CURTIME() )";

// sino son los mismos campos harias un if y dependiendo de la tabla va a ser el insert

// se ejecuta la consulta 
// aqui asignale el resultado a una variable para que cheques si se ejecuto el query
$res=mysql_db_query($base ,$sql) ;

// aqui checarias si se ejecuto el query haces lo siguiente
if($res)
{
   
// marcacion correcta de su carnet de identidad 
   
echo "<h2><CENTER><font color=#0099000><h1>MARCACION CORRECTA</h1></font></CENTER></b></H2><center>
     <table>
       <tr>
       <td height="
25" align="center"><center><h2><font color=#0000666>".$rows['nombres']."</CENTER></font></H2></td>
<td height="
25" align="center"><center><h2><font color=#0000666>".$rows['apellidos']."</CENTER></font></H2></td>
</td>
</table>
</center>"
;
}

// si hay error hacemos debug 
if (mysql_errno()) { 
print 

<p>Se ha producido un error</p> 
<p>Error en la consulta:</p> 
SQL: $sql<hr /> 
<p>Error nº "
.mysql_errno()."</p> 
<p>MySQL dijo: "
.mysql_error()."</p> 
"

}

.
.

Puedes ponerle un meta tag que te redireccione a la pagina de los botones despues de determinado tiempo

Código HTML:
<meta http-equiv="refresh" content="60;URL=./tu_pagina.htm" > 
o bien redireccionas con un header location desde el codigo y en el url que le pases, pasarias los mensajes de error que mostrarias o bien de que se ingresaron los datos como sea el caso.

Eso ya es cosa de lo que prefieras tu.

No se si eso es mas o menos lo que querias por que no entendi muy bien cual era el problema :P

Espero y te sirva de algo

es mas o menos lo que quiero, pero no te olvides que la pagina de marcacion si lo quieres llamar asi siempre tienen que estar visible y no entrar a otra pagina para precionar los botones de entrada y salida y si mis dos tablas tienen los mismos campos pero si ves en el codigo hago la verificacion si ese cirun existe para luego insertar el cirun la fecha y la hora en dicha tabla
  #5 (permalink)  
Antiguo 13/07/2010, 15:37
Avatar de roxhp  
Fecha de Ingreso: mayo-2010
Ubicación: Veracruz
Mensajes: 39
Antigüedad: 13 años, 11 meses
Puntos: 3
Respuesta: insertar datos

Hola:

Si por eso te puse esto:

Cita:
Iniciado por roxhp Ver Mensaje

o bien redireccionas con un header location desde el codigo y en el url que le pases, pasarias los mensajes de error que mostrarias o bien de que se ingresaron los datos como sea el caso.

Eso ya es cosa de lo que prefieras tu.
A lo que me referia es que lo que imprimes en pantalla en cada sitiacion puedes guardarlo en una variable $mensaje por ejemplo y al finalizar pones un header location que te redireccione a la paguina que muestra los botones y ahi es donde vas a mostrar los mensajes.

Por ejemplo:

Código PHP:

$tabla
=$_GET["tabla"]; // o $tabla_control como lo tienes en el insert 
$cirun=$_GET["cirun"]; 
$tipo=$_GET["tipo"]; 

...

if(
$res

   
$mensaje="<h2><CENTER><font color=#0099000><h1>MARCACION CORRECTA</h1></font></CENTER></b></H2><center><table><tr><td height=\"25\" align=\"center\"><center><h2><font color=#0000666>".$rows['nombres']."</CENTER></font></H2></td><td height=\"25\" align=\"center\"><center><h2><font color=#0000666>".$rows['apellidos']."</CENTER></font></H2></td></td></table></center>"


// si hay error hacemos debug  
if (mysql_errno()) {  
$mensaje="<p>Se ha producido un error</p><p>Error en la consulta:</p>SQL: $sql<hr/><p>Error nº ".mysql_errno()."</p><p>MySQL dijo: ".mysql_error()."</p>";  


... 
... 
... 

header("location: pagina_marcacion.php?mensaje=$mensaje"); 

En la pagina de marcacion pondrias esto:

Código PHP:

$mensaje
=$_GET['mensaje'];

// ya sea aki o despues de los botones imprimes los mensajes
...
...
echo 
"<input type='submit' name='Submit' onclick=\"location.href='pagina_inserta.php?tabla=entrada&cirun=$cirun&tipo=$tipo'\" value='Entrada'>"

echo 
"<input type='submit' name='Submit' onclick=\"location.href='pagina_inserta.php?tabla=salida&cirun=$cirun&tipo=$tipo'\" value='Salida'>"
De preferencia darle el formato al mensaje en esta pagina para que no envies tantos datos por la url y solo mandas en texto que se va a visualizar, si quieres pudes mandar mas de un dato y mostrarlo pero como te digo ahi es cosa de como quieras visualizar tu la informacion.

El header lo que hara es que te redireccionara inmediatamente a la siguiente pagina....

Ahhh una observacion no uses el or die mejor usa if y else porque el or die corta el flujo del programa y no te redireccionara a la pagina de marcacion, o creo que es die en lugar de echo lo que estas usando bueno pero es lo mismo, el die no dejara que te redireccione asi que mejor cambialo.

Pruebalo y ve como te funciona ya sino es lo que buscas ya veremos que mas se puede hacer.
  #6 (permalink)  
Antiguo 14/07/2010, 13:28
 
Fecha de Ingreso: julio-2010
Mensajes: 4
Antigüedad: 13 años, 9 meses
Puntos: 0
De acuerdo Respuesta: insertar datos

Cita:
Iniciado por roxhp Ver Mensaje
Hola:

Si por eso te puse esto:



A lo que me referia es que lo que imprimes en pantalla en cada sitiacion puedes guardarlo en una variable $mensaje por ejemplo y al finalizar pones un header location que te redireccione a la paguina que muestra los botones y ahi es donde vas a mostrar los mensajes.

Por ejemplo:

Código PHP:

$tabla
=$_GET["tabla"]; // o $tabla_control como lo tienes en el insert 
$cirun=$_GET["cirun"]; 
$tipo=$_GET["tipo"]; 

...

if(
$res

   
$mensaje="<h2><CENTER><font color=#0099000><h1>MARCACION CORRECTA</h1></font></CENTER></b></H2><center><table><tr><td height=\"25\" align=\"center\"><center><h2><font color=#0000666>".$rows['nombres']."</CENTER></font></H2></td><td height=\"25\" align=\"center\"><center><h2><font color=#0000666>".$rows['apellidos']."</CENTER></font></H2></td></td></table></center>"


// si hay error hacemos debug  
if (mysql_errno()) {  
$mensaje="<p>Se ha producido un error</p><p>Error en la consulta:</p>SQL: $sql<hr/><p>Error nº ".mysql_errno()."</p><p>MySQL dijo: ".mysql_error()."</p>";  


... 
... 
... 

header("location: pagina_marcacion.php?mensaje=$mensaje"); 

En la pagina de marcacion pondrias esto:

Código PHP:

$mensaje
=$_GET['mensaje'];

// ya sea aki o despues de los botones imprimes los mensajes
...
...
echo 
"<input type='submit' name='Submit' onclick=\"location.href='pagina_inserta.php?tabla=entrada&cirun=$cirun&tipo=$tipo'\" value='Entrada'>"

echo 
"<input type='submit' name='Submit' onclick=\"location.href='pagina_inserta.php?tabla=salida&cirun=$cirun&tipo=$tipo'\" value='Salida'>"
De preferencia darle el formato al mensaje en esta pagina para que no envies tantos datos por la url y solo mandas en texto que se va a visualizar, si quieres pudes mandar mas de un dato y mostrarlo pero como te digo ahi es cosa de como quieras visualizar tu la informacion.

El header lo que hara es que te redireccionara inmediatamente a la siguiente pagina....

Ahhh una observacion no uses el or die mejor usa if y else porque el or die corta el flujo del programa y no te redireccionara a la pagina de marcacion, o creo que es die en lugar de echo lo que estas usando bueno pero es lo mismo, el die no dejara que te redireccione asi que mejor cambialo.

Pruebalo y ve como te funciona ya sino es lo que buscas ya veremos que mas se puede hacer.

ok estimado lo voy a ver con calma sino te pido mas ayuda gracias por tu tiempo
  #7 (permalink)  
Antiguo 16/07/2010, 14:54
Avatar de roxhp  
Fecha de Ingreso: mayo-2010
Ubicación: Veracruz
Mensajes: 39
Antigüedad: 13 años, 11 meses
Puntos: 3
Respuesta: insertar datos

O.k. Pero es estimada ;)

Espero que te haya servido.

Saludos!!!

Etiquetas: Ninguno
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 13:53.