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: PHP: 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
Ok let me ask this do you want the user to be able to submit the data without the shift? If you do add an else if that excludes the shift. If you dont and you want them to have the shift you need to add an else statement so the code does something if not all the array indexs have values. When you use && everything you specify has to be as you say it should be or else it will not work. Can I suggest you check this site out so you can get the basics down? http://www.w3schools.com/php/php_operators.asp Take this logic If the person is younger than 18 and the section is not the adult section, then they may pass. Else if the person is not over 18 and the section then they cannot pass. Else if the person is 18 or older they have unlimited access. code example: PHP: $age = 13;$section = "adult";if($age < 18 && $section != "adult"){echo "you may pass";}else if($age < 18 && $section == "adult"){echo "you may not pass";}else if($age >= 18){echo "you may enter any section";} if you want either or you need to use || (or) because && means all must be true. PHP: if($_POST["from1_date"] && $_POST["to1_date"] && $_POST["shift1"]) {//shift included show all data is go}else if($_POST["from1_date"] && $_POST["to1_date"]){// only dates show dates}else{//variables weren't given values show page error} PHP: if($_POST["from1_date"] && $_POST["to1_date"] && $_POST["shift1"]) {//do something here}else if($_POST["from1_date"] && $_POST["to1_date"]) {//show error your forgot your shift}else{// show page error}
Good day! Thank you for the suggested logic and code. By the way here is my whole code: PHP: <?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: " . $_POST['from1_date'] . "</b></tr>"; echo "<tr><b> To Date: " . $_POST['to1_date'] . "</b></tr>"; echo "<tr><b> Shift Date: " . $_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: "; 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
You started with an else if which is a no no. Also each database field where your using a non int value is being done wrong. Also you need to code in exceptions to your if statements of nothing will happen if the condition is not met and the program will terminate without doing anything since the first condition was not met. You need to do it like so: PHP: $query = "SELECT * FROM plt_transact WHERE plt_no = '".$plt_no."'"; or PHP: ' " . $variable . " ' Just a question why do you need the start date and end date for? Is it for a project control site were your showing a start and finish date per project? I think your making it more complex then it is. I think you need to first write out what needs to happen so you have a plan or a list of what needs to be done. Then figure out code wise how it can be done. Then implement the code and make sure it works. Try using codelobster as your IDE because it catches errors in code. I think you need to polish your sql skills so your queries are optimized. If I knew what it was you were doing I could show you how to get it done.