Un saludo a esta comunidad, como se podrán dar cuenta soy un usuario nuevo pero con ganas de aprender bastante gracias a este espacio el cual encontré gracias a google ;D ... bueno voy al punto el cual espero puedan ayudarme, necesito crear un sistema que permita que los trabajadores de una empresa puedan consultar sus últimos tres recibos de nomina o salario con solo introducir su numero de identificación, la verdad soy muy pichon en cuanto a php, e logrado hacer consultas de base de datos sencillas pero esto se me ha hecho complicado la cosa seria algo asi:
la pagina de consulta: serian dos Chexbox en el primero el empleado introduce su numero de identificación en el segundo aparece una consulta anidada de la base de datos para escoger entres sus últimos 3 recibos identificados por fecha. una vez seleccionado y hecha la consulta envía a una nueva pagina donde muestra el recibo con la posibilidad de ser impreso... :-(
Espero puedan ayudarme tal vez para ustedes sea algo muy facil y me estoy ahogando en un vaso de agua pero si pueden explicarme como hacerlo o hablarme de algún script o case que haga un proceso similar se los agradeceré enormemente amigos mios..
Esto es muy sencillo y lo puedes hacer desde un archivo.
<?php
$recibo = $_GET["recibo"];
$idnum = $_POST["id"];
if(isset($recibo)) {
//Consulta a la base de datos para obtener la información del recibo
//Imprime el $recibo
die();
}
if(isset($id)){
//Consulta a base de datos para obtener los 3 ultimos recibos.
echo "<a href=\"consulta.php?recibo=reciboId\"> Recibo </a>"; //reciboId es un valor que necesitas traer de la base de datos para asociarlo con el recibo.
} else {
echo '<!DOCTYPE html>
<html>
<head>
<title></title>
</head>
<body>
<form action="consulta.php" method="POST">
<input type="text" name="id" placeholder="0000001">
</body>
</html>
';
}
?>
Cita de: MinusFour en 14 Julio 2014, 23:45 PM
Esto es muy sencillo y lo puedes hacer desde un archivo.
<?php
$recibo = $_GET["recibo"];
$idnum = $_POST["id"];
if(isset($recibo)) {
//Consulta a la base de datos para obtener la información del recibo
//Imprime el $recibo
die();
}
if(isset($id)){
//Consulta a base de datos para obtener los 3 ultimos recibos.
echo "<a href=\"consulta.php?recibo=reciboId\"> Recibo </a>"; //reciboId es un valor que necesitas traer de la base de datos para asociarlo con el recibo.
} else {
echo '<!DOCTYPE html>
<html>
<head>
<title></title>
</head>
<body>
<form action="consulta.php" method="POST">
<input type="text" name="id" placeholder="0000001">
</body>
</html>
';
}
?>
Ok este código lo que hace es relacionar el id de la persona con el id de los recibos disculpa mi ignorancia, voy a crear dos tablas en la base de datos para esta consulta? es decir una que llamaría personal la cual contenga los datos del trabajador como el ID Nombre, cargo fecha de ingreso etc y otra que llamaría recibos que contenga los campos reciboId, recibo 1, recibo 2 y recibo 3? y la otra duda estas utilizando el método post por que no usar solo e get... y nuevamente disculpa mi ignorancia..
Puedes utilizar GET o POST, la verdad no me acuerdo porque utilize POST en este ejemplo.
Lo que necesitas son dos tablas: Una que haga relación entre el ID del recibo y el ID de la persona y otra que haga una relación entre la ID del recibo y lo que contenga el recibo.
Algo asi como:
Recibo - Persona
000001 - 000001
Recibo - Fecha - Resumen
000001 15/07/2014 ETC
En el primera parte sacas los recibos (R) que aplican para la persona con la ID (N) y en la segunda parte sacas la información del recibo en base a la ID que sacaste antes (R).
Cita de: MinusFour en 15 Julio 2014, 05:52 AM
Puedes utilizar GET o POST, la verdad no me acuerdo porque utilize POST en este ejemplo.
Lo que necesitas son dos tablas: Una que haga relación entre el ID del recibo y el ID de la persona y otra que haga una relación entre la ID del recibo y lo que contenga el recibo.
Algo asi como:
Recibo - Persona
000001 - 000001
Recibo - Fecha - Resumen
000001 15/07/2014 ETC
En el primera parte sacas los recibos (R) que aplican para la persona con la ID (N) y en la segunda parte sacas la información del recibo en base a la ID que sacaste antes (R).
Ok mas o menos entiendo voy a hacer el intento e iré publicando los avances o reveses gracias por la ayuda que me estas prestando MinusFour
ok hasta ahora voy asi e creado una base de datos llamada nomina con dos tablas la primera con tiene los datos del personal y el campo con relacion a los recibos:
personal
reciboId mediumint(9) No
ID mediumint(9) No
NOMBRES varchar(25) No
APELLIDOS varchar(25) No
DEPARTAMENTO varchar(16) No
FINGRESO varchar(10) No
la segunda con el valor común en la otra tabla que relaciona los recibos (reciboId) y los recibos a consultar
recibos
Columna Tipo Nulo Predeterminado Comentarios
reciboId mediumint(10) No
RECIBO1 blob No
RECIBO2 blob No
RECIBO3 blob No
pagina de conexión a la base de datos:
<?php
define('DB_SERVER','localhost');
define('DB_NAME','nomina');
define('DB_USER','root');
define('DB_PASS','root');
$cnx = mysql_connect(DB_SERVER,DB_USER,DB_PASS) or die("Error en Conexion");
$db=mysql_select_db(DB_NAME,$cnx)or die("Error en Db");
?>
pagina para realizar la consulta:
<?php
include("conexion.php");
$var="";
$var1="";
$var2="";
$var3="";
$recibo = $_GET["recibo"];
$idnum = $_GET["id"];
if(isset($recibo)) {
$sql="select * from recibos where reciboId='$recibo'";
//Imprime el $recibo
die();
}
if(isset($id)){
$cs=mysql_query($sql,$cnx);
while($resul=mysql_fetch_array($cs)){
$var1=$resul[1];
$var2=$resul[2];
$var3=$resul[3];
}
echo "<a href=\"consulta.php?recibo=reciboId\"> Recibo </a>";
} else {
echo '<!DOCTYPE html>
<html>
<head>
<title></title>
</head>
<body>
<form action="consulta.php" method="GET">
<input type="text" name="id" placeholder="0000001">
</body>
</html>
';
}
?>
me arroja los siguientes errores:
SCREAM: Error suppression ignored for
Notice: Undefined index: recibo in C:\wamp\www\nomina\Untitled-1.php on line 10
Notice: Undefined index: id in C:\wamp\www\nomina\Untitled-1.php on line 11
nuevamente disculpen mi torpeza
En cuanto a lo del error...
Prueba remplazando:
$recibo = $_GET["recibo"];
$idnum = $_GET["id"];
por
$recibo = isset($_GET["recibo"]) ? $_GET["recibo"] : FALSE;
$idnum = isset($_GET["id"]) ? $_GET["id"] : FALSE;
Ahora, tu base de datos...
¿No entiendo, tienes una tabla con cuatro columnas para los recibos? ¿Dónde está la relación con la persona del recibo? Tu tabla persona ¿La estás usando para sacar los datos de la persona? Necesitas una tabla para guardar los recibos..
Por ejemplo:
Recibo1 - Cliente1
Recibo2 - Cliente1
Recibo3 - Cliente1
Recibo4 - Cliente 2
Recibo 5 - Cliente 3
etc, etc
Así puedes decirle a la base de datos:
Traeme los últimos registros del Cliente 1 y el servidor te va a traer:
Recibo1
Recibo2
Recibo3
Luego, al hacer click al enlace que aparecera en pantalla, le va a llevar a una página que contiene el recibo que seleciono. Consultas a la tabla de recibos para obtener la información de ese recibo.
Por cierto:
$cs=mysql_query($sql,$cnx);
while($resul=mysql_fetch_array($cs)){
$var1=$resul[1];
$var2=$resul[2];
$var3=$resul[3];
}
Tienes que declarar $sql dentro del bloque { } o justo a fuera de este. La variable $sql no se ve desde el bloque de arriba. Ni siquiera estoy seguro que esa sea la query que quieres correr (debe ser la tabla con la relación entre recibo y persona).
y tu while puede simplemente imprimir la ID del recibo:
while($resul=mysql_fetch_array($cs)){
echo "<a href=\"consulta.php?recibo=" . $resul["reciboId"] . "\">Recibo " . $resul["reciboId"] . " </a>";
}