Ayuda Consulta de recibo de nomina

Iniciado por donvago78, 14 Julio 2014, 23:08 PM

0 Miembros y 1 Visitante están viendo este tema.

donvago78

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..

MinusFour

Esto es muy sencillo y lo puedes hacer desde un archivo.

Código (php) [Seleccionar]

<?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>
'
;
}

?>

donvago78

Cita de: MinusFour en 14 Julio 2014, 23:45 PM
Esto es muy sencillo y lo puedes hacer desde un archivo.

Código (php) [Seleccionar]

<?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..

MinusFour

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).

donvago78

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

donvago78

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



MinusFour

En cuanto a lo del error...

Prueba remplazando:

Código (php) [Seleccionar]

$recibo = $_GET["recibo"];
$idnum = $_GET["id"];


por

Código (php) [Seleccionar]

$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:

Código (php) [Seleccionar]

$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:

Código (php) [Seleccionar]

while($resul=mysql_fetch_array($cs)){
   echo "<a href=\"consulta.php?recibo=" . $resul["reciboId"] . "\">Recibo " . $resul["reciboId"] . " </a>";
}