PHP - ayuda con consulta

 
Vista:

ayuda con consulta

Publicado por ana (12 intervenciones) el 10/11/2006 22:08:35
hola tengo un pequeño problema con un consulta tengo una tabla como la siguiente

hrnum name voucherdate hours project ajuste

1234 Francisco 25-oct-2006 5 description

1234 Francisco 25-oct-2006 6 description

1234 Francisco 26-oct-2006 3 descrip

1235 Enrique 25-oct-2006 9 descrp.project

1235 Enrique 26-oct-2006 5 project

lo que necesito es que en la columna de ajuste me aparezcan las usedhours -3 pero solo para el primer registro de cada trabajador es decir a francisco le reste tres horas solo alas 1ras 5 hrs que registró y las demas las deje igual y lo mismo para el trabajador enrique

ojala me hayan entendido y me puedan ayudar
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:ayuda con consulta

Publicado por thor (2 intervenciones) el 12/11/2006 04:45:07
ummm.. esta dificil de visualizar pero ahi te va una idea.. capaz no sea las mas idónea pero..

bueno se me ocurrque que hagas una lectura secuencial cuando lo vayas a presentar

a ver el seudocodigo seria algo asi..
0,- sw=0 ; sw1=0 ; temporal=0
1.- mientras no EOF then
2.- leer registro
3.- sw++;
4.- si (sw = 1) {
temporal = hrnum
nuevahours = hours - 3 //como es el primer registro le resta de una vez las 3 horas

}
6.- si (temporal != hrnum) //esto es para verificar que cambio de usuario
{
temporal = hrnum
nuevahora = hours - 3
}
7 presentar registro..

8 fin del mientras..

fin..
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:ayuda con consulta

Publicado por ana (12 intervenciones) el 13/11/2006 15:54:56
hola thor esa me parece buena idea lo que pasa que yo soy nueva en php apenas lo estoy aprendiendo por eso he recurrido a este foro he checado el pseudocodigo que me diste y si muestra una tabla pero no me muestra ningun registro que te parece si te envio el codigo quiza tenga un error y no me he percatado de eso talvez no mande imprimir correctamente mis registros te parece?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:ayuda con consulta

Publicado por ana (12 intervenciones) el 13/11/2006 18:40:08
te anexo mi codigo php pues me muestra la tabla vacia no me muestra ningun registro y no se porque
<?php
include_once("../../config.inc.php");
include_once(INCLUDE_PATH . "../modules/metrics/inc/fiscalWeeks.inc.php");
include_once(INCLUDE_PATH . "/entities.inc.php");
$form = new Form();
$fw = new FiscalWeeks();
$year = getdate();
$form->NAME = "filter";
$form->METHOD = "GET";
$form->ACTION = $PHP_SELF;

$iD = date($date->Calendar,$date->timestamp($fw->initialDate));
$fD = date($date->Calendar,$date->timestamp($fw->finalDate));
$form->AddInput(array(
"TYPE" => "calendar",
"NAME" => "startDate1",
"DATEFORMAT" => $date->Java,
"CLASSCAL" => "dyneditbox",
"READONLY" => true,
"CLEARBUTTON" => true,
"MONDAYFIRST" => true,
"VALUE" => $iD
));
$form->AddInput(array(
"TYPE" => "calendar",
"NAME" => "startDate2",
"DATEFORMAT" => $date->Java,
"CLASSCAL" => "dyneditbox",
"READONLY" => true,
"CLEARBUTTON" => true,
"MONDAYFIRST" => true,
"VALUE" => $fD
));
$options = array();
$options[" "] = " ";

$query = "SELECT catalogid, catalogname FROM general.areas WHERE divisionid = 2 and catalogname not like 'PS%' order by areas.catalogname asc";
$result = $conn->Execute($query) or die($conn->ErrorMsg()."<br />$query");
$options = $result->GetAssoc();
$form->AddInput(array(
"TYPE" => "submit",
"NAME" => "filterButton",
"VALUE"=> "display",
"CLASS"=> "button"
));
$resetForm = "<input type=\"button\" value=\"Reset\" class=\"button\" onclick=\"document.location.href='$PHP_SELF'\" />";
$form->LoadInputValues(1);
$smarty->assign('startDate1', $form->ReturnField("startDate1"));
$smarty->assign('startDate2', $form->ReturnField("startDate2"));
$smarty->assign('filterButton', $form->ReturnField("filterButton"));
$smarty->assign('resetForm', $resetForm);
$smarty->assign('beginForm', $form->BeginForm());
$smarty->assign('endForm', $form->EndForm());
$result->movenext();
if (trim($_GET['startDate1']) != "" and trim($_GET['startDate2']) != "") {
$par1 = $date->toDB($_GET['startDate1']);
$par2 = $date->toDB($_GET['startDate2']);
$Dates = " AND v.voucherdate BETWEEN {$par1} AND {$par2} ";
}elseif (trim($_GET['startDate1']) == "" and trim($_GET['startDate2']) != "") {
$par2 = $date->toDB($_GET['startDate2']);
$eC2 = $_GET['startDate2'];
$Dates= " AND v.voucherdate <= {$par2} ";
}elseif (trim($_GET['startDate1']) != "" and trim($_GET['startDate2']) == "") {
$par1 = $date->toDB($_GET['startDate1']);
$Dates = " AND v.voucherdate >= {$par1} ";
}

if (isset($_GET["filterButton"]) or isset($_GET["export_x"])) {
//*******query de seleccion********//
$sql = "select u.HRORACLENUMBER as hrnum, u.lastname || ' ' || u.firstname as name,
v.VOUCHERDATE as voucherdate, v.USEDHOURS as usedhours,
REPLACE(REPLACE(v.DESCRIPTION, CHR(13), ' '),CHR(10), ' ') as description,
p.PROJECT as project, a.CATALOGNAME as area FROM
general.vouchers v, general.users u, general.projects p, general.areas a
WHERE
v.USERID = u.USERID
AND v.PROJECTID = p.PROJECTID
AND v.AREAID = a.CATALOGID
AND p.AREAID = a.CATALOGID

$Dates
ORDER BY v.AREAID, u.HRORACLENUMBER, v.VOUCHERDATE";
$conn->SetFetchMode(ADODB_FETCH_ASSOC);
$rs = $conn->Execute($sql) or die($conn->ErrorMsg());
for($sw=0 ; $sw1=0 ; $temporal=0){
//echo"<pre>";
//print_r($rs);die;
while (!$rs->EOF) {
$hrnum = $rs->fields["hrnum"];
$name= $rs->fields["name"];
$voucherdate = $rs->fields["voucherdate"];
$usedhours = $rs->fields["usedhours"];
$description = $rs->fields["description"];
$project = $rs->fields["project"];
$area = $rs->fields["area"];

$sw++;

if ($sw == 1) {
$temporal = $hrnum;
$ajuste = $usedhours-3; //como es el primer registro le resta de una vez las 3 horas
}
if ($temporal != $hrnum) //esto es para verificar que cambio de usuario
{
$temporal = $hrnum;
$ajuste = $usedhours-3;
//presentar registro
}
$rs->MoveNext();
}
}
//Revisar si es sabado se paga doble
//Revisar si es domingo se paga triple
$a = explode("-",$voucherdate);
$dayWeek = date("l", mktime(0, 0, 0, $a[1], $a[2], $a[0]));
if ($dayWeek=="Saturday")
$string="Se paga doble";
elseif($dayWeek=="Sunday")
$string="Se paga triple";
else
$string="Sin pago extra";

$numRows = $rs->RecordCount();

//*******comienzo de la tabla***//
$table = "<table width=\"100%\" border=\"0\" bgcolor=\"#000000\" cellpadding=\"3\" cellspacing=\"1\" align=\"center\">
<tr bgcolor=\"#AABFD7\" align=\"center\">
<td><font face=\"Arial, Helvetica, sans-serif\" size=\"2\" color=\"#FFFFFF\"><b>
HRNUM <b></b></font></td>
<td><font face=\"Arial, Helvetica, sans-serif\" size=\"2\" color=\"#FFFFFF\"><b>
NAME<b></b></font></td>
<td><font face=\"Arial, Helvetica, sans-serif\" size=\"2\" color=\"#FFFFFF\"><b>
VOUCHERDATE<b></b></font></td>
<td><font face=\"Arial, Helvetica, sans-serif\" size=\"2\" color=\"#FFFFFF\"><b>
USED HOURS<b></b></font></td>
<td><font face=\"Arial, Helvetica, sans-serif\" size=\"2\" color=\"#FFFFFF\"><b>
DESCRIPTION<b></b></font></td>
<td><font face=\"Arial, Helvetica, sans-serif\" size=\"2\" color=\"#FFFFFF\"><b>
PROJECT<b></b></font></td><td><font face=\"Arial, Helvetica, sans-serif\" size=\"2\" color=\"#FFFFFF\"><b>
AREA<b></b></font></td>
<td><font face=\"Arial, Helvetica, sans-serif\" size=\"2\" color=\"#FFFFFF\"><b>
AJUSTE<b></b></font></td>
<td><font face=\"Arial, Helvetica, sans-serif\" size=\"2\" color=\"#FFFFFF\"><b>
COMENTARIOS<b></b></font></td></tr>";
if ($string=="Se paga doble") $bgcolor="#AABFD7"; elseif ($string=="Se paga triple") $bgcolor="#DEE7EB";
elseif ($dayWeek=="Monday") $bgcolor="#ECECEC"; else $bgcolor="#FFFFFF";$table_data.="<tr><td nowrap align=\"left\" bgcolor=\"$bgcolor\"><font face=\"Arial, Helvetica, sans-serif\" size=\"2\">
".$hrnum."</font></td><td align=\"left\" bgcolor=\"$bgcolor\"><font face=\"Arial, Helvetica, sans-serif\" size=\"2\">
".$name."</font></td><td align=\"left\" bgcolor=\"$bgcolor\"><font face=\"Arial, Helvetica, sans-serif\" size=\"2\">
".$voucherdate."</font></td><td align=\"center\" bgcolor=\"$bgcolor\"><font face=\"Arial, Helvetica, sans-serif\" size=\"2\">
".$usedhours."</font></td><td align=\"left\" bgcolor=\"$bgcolor\"><font face=\"Arial, Helvetica, sans-serif\" size=\"2\">
".$description."</font></td><td align=\"left\" bgcolor=\"$bgcolor\"><font face=\"Arial, Helvetica, sans-serif\" size=\"2\">
".$project."</font></td><td align=\"left\" bgcolor=\"$bgcolor\"><font face=\"Arial, Helvetica, sans-serif\" size=\"2\">
".$area."</font></td><td align=\"center\" bgcolor=\"$bgcolor\"><font face=\"Arial, Helvetica, sans-serif\" size=\"2\">
".$ajuste."</font></td><td align=\"left\" bgcolor=\"$bgcolor\"><font face=\"Arial, Helvetica, sans-serif\" size=\"2\">".$string."</font></td></tr>";
$table_fin.= "</table><br>";
}
$extraparameters = "startDate1=".$_GET["startDate1"]. "&startDate2=".$_GET["startDate2"].
$_teamId
."&filterButton=1";
$tablas.= $table.$table_data.$table_fin;

$smarty->assign("EXPORTICONS",$vl->_tpl->_tpl_vars["PAGER_EXPORTICONS"]);
$smarty->assign("NAVMENUS",$vl->_tpl->_tpl_vars["PAGER_NAVMENUS"]);
$smarty->assign("PAGEINFO",$vl->_tpl->_tpl_vars["PAGER_PAGEINFO"]);
$smarty->assign("table" ,$table);
$smarty->assign("table_data" ,$table_data);
$smarty->assign("table_fin" ,$table_fin);
$smarty->assign("extraparameters" ,$extraparameters);
$smarty->assign("subMenuData", $subMenuData);
$smarty->display("Overprueba.tpl");

?>
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar