Log in

View Full Version : Question about if condition



rhodarose
01-28-2011, 12:13 AM
Good day!

I have if condition in my code and it is for checking the input data from the user or client.

Here is my if statement:


if($_POST["from1_date"] && $_POST["to1_date"] && $_POST["shift1"])



this code is work when i insert in the text field the from date, to date and the shift. I have 3 types of shift. For example I input from 2011-01-01 to 2011-01-02 shift 1-6 all the data that the shift is 1-6 is appear. My problem now is when i did not input shift no data was appear. I want to happen is when I did not input shift all the data from date to date will appear.

Any help is highly appreciated.

Thank you

fastsol1
01-28-2011, 03:10 AM
Just take out the && $_POST["shift1"] part of the if() and it won't check to see if it has any data in that part.

rhodarose
01-28-2011, 03:14 AM
Here is my whole code:





if($_POST["from_date"] && $_POST["to_date"] && $_POST["shift"])
{
$from_date = mysql_real_escape_string($_POST['from_date']);
$to_date = mysql_real_escape_string($_POST['to_date']);
$shift = mysql_real_escape_string($_POST['shift']);



$query = "SELECT d.operation_name, SUM(d.input_qty) AS inputqty, d.input_unit, SUM(d.output_qty) AS outputqty, d.output_unit FROM traceability d, plt_transact t WHERE t.plt_date BETWEEN '$from_date' AND '$to_date' AND d.shift = '$shift' AND d.operation_name IN ('01 Oper', '02 Oper', '03 Oper', '04 Oper') GROUP BY d.operation_name, d.output_unit, d.input_unit ORDER BY d.operation_name";

$result = mysql_query($query);
if($result)
{
echo "<table cellspacing='2' style='font-family: arial narrow; font-size: 12px; border-width: 2px 2px 2px 2px; border-style: solid;'>";

echo "<tr>";
echo "<tr><b> From Date: &nbsp; " . $_POST['from_date'] . "</b></tr>";
echo "<tr><b> To &nbsp;&nbsp;&nbsp; Date: &nbsp; " . $_POST['to_date'] . "</b></tr>";
echo "<tr><b> Shift &nbsp;&nbsp;&nbsp; Date: &nbsp; " . $_POST['shift'] . "</b></tr>";

echo "<th class='tdclass'>PLT #</th>";
$total_row = mysql_num_rows($result);
$total_columns = $total_row;
for($ctr=0; $ctr < $total_row; $ctr++)
{
$opname = mysql_result($result,$ctr,"operation_name");
$i = strpos($opname," ",0);
$opname = substr($opname,$i);
echo "<th colspan='2' class='tdclass'>" . $opname . "<br /></th>";
}
echo "<th class='tdclass'>PLT Yield</th>";
echo "</tr>";

echo "<tr>";
echo "<td class='tdclass'></td>";

for($ctr=0; $ctr < $total_row; $ctr++)
{

echo "<td class='tdclass'>Input</td>";
echo "<td class='tdclass'>Output</td>";

}

echo "<td class='tdclass'>";
echo "</td>";

echo "</tr>";

}


$query = "SELECT DISTINCT p.plt_no FROM plt_transact p , traceability t WHERE p.plt_date BETWEEN '" . $_POST["from_date"] . "' AND '" . $_POST["to_date"] . "' AND t.shift = '". $_POST["shift"] ."' AND t.operation_name IN('01 Oper' , '02 Oper' , '03 Oper' , '04 Oper') AND p.plt_transact_id = t.plt_transact_id ";

$result_loop = mysql_query($query);

while($row = mysql_fetch_array($result_loop))
{
$loopctr += 1;
$plt_no = $row["plt_no"];
$query = "SELECT * FROM plt_transact WHERE plt_no = '$plt_no'";

$result_no = mysql_query($query);
if($result_no)
{
if(mysql_num_rows($result_no) > 0)
{
$chemicalweighing_input = 0;
$extrusion_output = 0;

$query = "SELECT SUM(t.input_qty) AS chemicalweighing_input FROM traceability t, plt_transact p WHERE t.plt_transact_id = p.plt_transact_id AND t.operation_name='01 Oper' AND p.plt_no = '$plt_no'";
$resultyield = mysql_query($query);
if($resultyield)
{
if(mysql_num_rows($resultyield) > 0) $chemicalweighing_input = mysql_result($resultyield,0,"chemicalweighing_input");
}

$query = "SELECT SUM(t.output_qty) AS extrusion_output FROM traceability t, plt_transact p WHERE t.plt_transact_id = p.plt_transact_id AND t.operation_name='04 Oper' AND p.plt_no = '$plt_no'";


$resultyield = mysql_query($query);
if($resultyield)
{
if(mysql_num_rows($resultyield) > 0) $extrusion_output = mysql_result($resultyield,0,"extrusion_output");
}

$PLT_yield = @($extrusion_output / $chemicalweighing_input) * 100;



$query = "SELECT d.operation_name, SUM(d.input_qty) AS inputqty, SUM(d.output_qty) AS outputqty FROM traceability d, plt_transact t WHERE t.plt_no = '$plt_no' AND t.plt_date BETWEEN '$from_date' AND '$to_date' AND d.shift = '$shift' AND d.plt_transact_id = t.plt_transact_id AND d.operation_name IN ('01 Oper', '02 Oper', '03 Oper' , '04 Oper') GROUP BY d.operation_name ORDER BY d.operation_name";

$result = mysql_query($query);
$total_row = mysql_num_rows($result);

if($result)

{
echo "<tr>";
echo "<td><strong>$plt_no</strong></td>";

if($total_row == 0)

{
echo "<td class='tdclass'>";
echo "</td>";
echo "<td class='tdclass'>";
echo "</td>";

}

for($ctr=0; $ctr < $total_row; $ctr++)
{
echo "<td class='tdclass'>";

echo number_format((mysql_result($result,$ctr,"inputqty")),2);

echo "</td>";
echo "<td class='tdclass'>";

echo number_format((mysql_result($result,$ctr,"outputqty")),2);

echo "</td>";
}

if($total_row < $total_columns)

{
for($ctr = 0; $ctr < ($total_columns - $total_row); $ctr++)
{
echo "<td class='tdclass'>";
echo "</td>";
echo "<td class='tdclass'>";
echo "</td>";
}
}

echo "<td class='tdclass'><strong>";
printf ("%01.2f", $PLT_yield);
echo "%</strong></td>";

echo "</tr>";


}
}
}
}
echo "</table>";

}


I don't know how can put the condition that you suggested.

Thank you

mehran
01-28-2011, 04:58 AM
that is the only why to go through it,
or you can validated it through certain other wayes,
like if you want
if(($_post['from_date'] !="")&&($_post['to_date'] !="") || ($_post['shift'] !=""){
code here
}

rhodarose
01-28-2011, 07:17 AM
Here is my whole code:





if($_POST["from_date"] && $_POST["to_date"] && $_POST["shift"])
{
$from_date = mysql_real_escape_string($_POST['from_date']);
$to_date = mysql_real_escape_string($_POST['to_date']);
$shift = mysql_real_escape_string($_POST['shift']);



$query = "SELECT d.operation_name, SUM(d.input_qty) AS inputqty, d.input_unit, SUM(d.output_qty) AS outputqty, d.output_unit FROM traceability d, plt_transact t WHERE t.plt_date BETWEEN '$from_date' AND '$to_date' AND d.shift = '$shift' AND d.operation_name IN ('01 Oper', '02 Oper', '03 Oper', '04 Oper') GROUP BY d.operation_name, d.output_unit, d.input_unit ORDER BY d.operation_name";

$result = mysql_query($query);
if($result)
{
echo "<table cellspacing='2' style='font-family: arial narrow; font-size: 12px; border-width: 2px 2px 2px 2px; border-style: solid;'>";

echo "<tr>";
echo "<tr><b> From Date: &nbsp; " . $_POST['from_date'] . "</b></tr>";
echo "<tr><b> To &nbsp;&nbsp;&nbsp; Date: &nbsp; " . $_POST['to_date'] . "</b></tr>";
echo "<tr><b> Shift &nbsp;&nbsp;&nbsp; Date: &nbsp; " . $_POST['shift'] . "</b></tr>";

echo "<th class='tdclass'>PLT #</th>";
$total_row = mysql_num_rows($result);
$total_columns = $total_row;
for($ctr=0; $ctr < $total_row; $ctr++)
{
$opname = mysql_result($result,$ctr,"operation_name");
$i = strpos($opname," ",0);
$opname = substr($opname,$i);
echo "<th colspan='2' class='tdclass'>" . $opname . "<br /></th>";
}
echo "<th class='tdclass'>PLT Yield</th>";
echo "</tr>";

echo "<tr>";
echo "<td class='tdclass'></td>";

for($ctr=0; $ctr < $total_row; $ctr++)
{

echo "<td class='tdclass'>Input</td>";
echo "<td class='tdclass'>Output</td>";

}

echo "<td class='tdclass'>";
echo "</td>";

echo "</tr>";

}


$query = "SELECT DISTINCT p.plt_no FROM plt_transact p , traceability t WHERE p.plt_date BETWEEN '" . $_POST["from_date"] . "' AND '" . $_POST["to_date"] . "' AND t.shift = '". $_POST["shift"] ."' AND t.operation_name IN('01 Oper' , '02 Oper' , '03 Oper' , '04 Oper') AND p.plt_transact_id = t.plt_transact_id ";

$result_loop = mysql_query($query);

while($row = mysql_fetch_array($result_loop))
{
$loopctr += 1;
$plt_no = $row["plt_no"];
$query = "SELECT * FROM plt_transact WHERE plt_no = '$plt_no'";

$result_no = mysql_query($query);
if($result_no)
{
if(mysql_num_rows($result_no) > 0)
{
$chemicalweighing_input = 0;
$extrusion_output = 0;

$query = "SELECT SUM(t.input_qty) AS chemicalweighing_input FROM traceability t, plt_transact p WHERE t.plt_transact_id = p.plt_transact_id AND t.operation_name='01 Oper' AND p.plt_no = '$plt_no'";
$resultyield = mysql_query($query);
if($resultyield)
{
if(mysql_num_rows($resultyield) > 0) $chemicalweighing_input = mysql_result($resultyield,0,"chemicalweighing_input");
}

$query = "SELECT SUM(t.output_qty) AS extrusion_output FROM traceability t, plt_transact p WHERE t.plt_transact_id = p.plt_transact_id AND t.operation_name='04 Oper' AND p.plt_no = '$plt_no'";


$resultyield = mysql_query($query);
if($resultyield)
{
if(mysql_num_rows($resultyield) > 0) $extrusion_output = mysql_result($resultyield,0,"extrusion_output");
}

$PLT_yield = @($extrusion_output / $chemicalweighing_input) * 100;



$query = "SELECT d.operation_name, SUM(d.input_qty) AS inputqty, SUM(d.output_qty) AS outputqty FROM traceability d, plt_transact t WHERE t.plt_no = '$plt_no' AND t.plt_date BETWEEN '$from_date' AND '$to_date' AND d.shift = '$shift' AND d.plt_transact_id = t.plt_transact_id AND d.operation_name IN ('01 Oper', '02 Oper', '03 Oper' , '04 Oper') GROUP BY d.operation_name ORDER BY d.operation_name";

$result = mysql_query($query);
$total_row = mysql_num_rows($result);

if($result)

{
echo "<tr>";
echo "<td><strong>$plt_no</strong></td>";

if($total_row == 0)

{
echo "<td class='tdclass'>";
echo "</td>";
echo "<td class='tdclass'>";
echo "</td>";

}

for($ctr=0; $ctr < $total_row; $ctr++)
{
echo "<td class='tdclass'>";

echo number_format((mysql_result($result,$ctr,"inputqty")),2);

echo "</td>";
echo "<td class='tdclass'>";

echo number_format((mysql_result($result,$ctr,"outputqty")),2);

echo "</td>";
}

if($total_row < $total_columns)

{
for($ctr = 0; $ctr < ($total_columns - $total_row); $ctr++)
{
echo "<td class='tdclass'>";
echo "</td>";
echo "<td class='tdclass'>";
echo "</td>";
}
}

echo "<td class='tdclass'><strong>";
printf ("%01.2f", $PLT_yield);
echo "%</strong></td>";

echo "</tr>";


}
}
}
}
echo "</table>";

}


I don't know how can put the condition that you suggested.

Thank you

rhodarose
02-02-2011, 12:28 AM
Good day!

Thank you for the suggested logic and code. By the way here is my whole code:



<?php
elseif($_POST["from1_date"] && $_POST["to1_date"] && $_POST["shift1"])
{
$from_date = mysql_real_escape_string($_POST['from1_date']);
$to_date = mysql_real_escape_string($_POST['to1_date']);
$shift = mysql_real_escape_string($_POST['shift1']);

$Batch_yield = 0;
$c_input = 0;
$co_output = 0;
$loopctr = 0;
$totalloop = 0;


$query = "SELECT d.operation_name, SUM(d.input_qty) AS inputqty, SUM(d.output_qty) AS outputqty FROM traceability d, plt_transact t WHERE t.plt_date BETWEEN '$from_date' AND '$to_date' AND d.shift = '$shift' AND d.operation_name IN ('01 Oper', '02 Oper', '03 Oper', '04 Oper' , '05 Oper' , '06 Oper' , '07 Oper', '08 Oper' , '09 Oper' , '10 Oper') GROUP BY d.operation_name ORDER BY d.operation_name";
$result = mysql_query($query);
if($result)
{
echo "<table cellspacing='2' style='font-family: arial narrow; font-size: 12px; border-width: 2px 2px 2px 2px; border-style: solid;'>";

echo "<tr>";
echo "<tr><b> From Date: &nbsp; " . $_POST['from1_date'] . "</b></tr>";
echo "<tr><b> To &nbsp;&nbsp;&nbsp; Date: &nbsp; " . $_POST['to1_date'] . "</b></tr>";
echo "<tr><b> Shift Date: &nbsp; " . $_POST['shift1'] . "</b></tr>";
echo "<th class='tdclass'>PLT #</th>";
$total_row = mysql_num_rows($result);
$total_columns = $total_row;
for($ctr=0; $ctr < $total_row; $ctr++)
{
$opname = mysql_result($result,$ctr,"operation_name");
$i = strpos($opname," ",0);
$opname = substr($opname,$i);
echo "<th colspan='3' class='tdclass'>" . $opname . "<br /></th>";
}
echo "<th class='tdclass'>Batch Yield</th>";
echo "</tr>";

echo "<tr>";
echo "<td class='tdclass'></td>";

for($ctr=0; $ctr < $total_row; $ctr++)
{

echo "<td class='tdclass'>Input</td>";
echo "<td class='tdclass'>Output</td>";
echo "<td class='tdclass'>Yield</td>";
}

echo "<td class='tdclass'>";
echo "</td>";

echo "</tr>";

}


$query = "SELECT DISTINCT p.plt_no FROM plt_transact p, traceability t WHERE plt_date BETWEEN '" . $_POST["from1_date"] . "' AND '" . $_POST["to1_date"] . "' AND t.shift = '" . $_POST["shift1"] . "' AND p.plt_transact_id = t.plt_transact_id";
$result_loop = mysql_query($query);
while($row = mysql_fetch_array($result_loop))
{
$loopctr += 1;
$plt_no = $row["plt_no"];
$query = "SELECT * FROM plt_transact WHERE plt_no = '$plt_no'";
$result_no = mysql_query($query);
if($result_no)
{
if(mysql_num_rows($result_no) > 0)
{
$chemical_input = 0;
$core_output = 0;

$query = "SELECT SUM(t.output_qty) AS c_input FROM traceability t, plt_transact p WHERE t.plt_transact_id = p.plt_transact_id AND t.operation_name='01 Oper' AND p.plt_no = '$plt_no'";
$resultyield = mysql_query($query);
if($resultyield)
{
if(mysql_num_rows($resultyield) > 0) $c_input = $c_input + mysql_result($resultyield,0,"c_input");

}

$query = "SELECT SUM(t.output_qty) AS co_output FROM traceability t, plt_transact p WHERE t.plt_transact_id = p.plt_transact_id AND t.operation_name='10 Oper' AND p.plt_no = '$plt_no'";
$resultyield = mysql_query($query);
if($resultyield)
{
if(mysql_num_rows($resultyield) > 0) $co_output = $co_output + mysql_result($resultyield,0,"co_output");

}

$PLT_yield = @($co_output / $c_input) * 100;

$query = "SELECT SUM(t.input_qty) AS c_input FROM traceability t, plt_transact p WHERE t.plt_transact_id = p.plt_transact_id AND t.operation_name='01 Oper' AND p.plt_no = '$plt_no'";
$resultyield = mysql_query($query);
if($resultyield)
{
if(mysql_num_rows($resultyield) > 0) $c_input = $chem_input + mysql_result($resultyield,0,"c_input");
}

$query = "SELECT SUM(t.output_qty) AS co_output FROM traceability t, plt_transact p WHERE t.plt_transact_id = p.plt_transact_id AND t.operation_name='10 Oper' AND p.plt_no = '$plt_no'";
$resultyield = mysql_query($query);
if($resultyield)
{
if(mysql_num_rows($resultyield) > 0) $co_output = $co_output + mysql_result($resultyield,0,"co_output");

}


$query = "SELECT d.operation_name, SUM(d.input_qty) AS inputqty, SUM(d.output_qty) AS outputqty FROM traceability d, plt_transact t WHERE t.plt_no = '$plt_no' AND t.plt_date BETWEEN '$from_date' AND '$to_date' AND d.shift = '$shift' AND d.plt_transact_id = t.plt_transact_id GROUP BY d.operation_name ORDER BY d.operation_name";
$result = mysql_query($query);
if($result)
{


echo "<tr>";
echo "<td><strong>$plt_no</strong></td>";
while($row2 = mysql_fetch_array($result))
{
echo "<td class='tdclass'>" . number_format($row2["inputqty"],2) . "</td>";

echo "<td class='tdclass'>" . number_format($row2["outputqty"],2) . "</td>";
$inputqty = $row2["inputqty"];
$outputqty = $row2["outputqty"];
$yield = @(($outputqty / $inputqty)*100);
echo "<td class='tdclass'>" . number_format($yield,2) . "</td>";

echo "</td>";
}


echo "<td style='text-align: right; font-weight: bold; font-family: Arial; font-size:10' class = 'tdclass' colspan='";
$loopctr = ($total_row * 2) + 20;
echo "$loopctr'>";
printf ("%01.2f", $PLT_yield);
echo "<strong>%";

echo "</td>";


echo "</tr>";


}
}
}
}

$Batch_yield = @($coresolutioning_output / $chem_input) * 100;
echo "<tr>";

echo "<td style='text-align: right; font-weight: bold; font-family: Arial; font-size:10' class = 'tdclass' colspan='";
$loopctr = ($total_row * 2) + 20;
echo "$loopctr'>Total Batch Yield:&nbsp;&nbsp;";
printf ("%01.2f", $Batch_yield);
echo "<strong>%";

echo "</td>";

echo "</tr>";
echo "</table>";

}
?>


Where I don't know how can i used the codes that you suggested.

Thank you

In that code if i input from date, to date and shift the output display is correct the elseif condition was satisfied, but when i only input from date and to date no output display and I want to be output is all the data in the database where the date os from date and to date.

Thank you

djr33
02-02-2011, 12:57 AM
They have provided enough information: change the first line of your code (the if statement) as they suggested. See if that works.