hopbop Posted October 5, 2012 Share Posted October 5, 2012 (edited) ok so i commented out the area i have working now im trying to loop that to make a report and it's working but it's repeating the report about 20 times ...... im abit lost on how this is happaning and how to fix it any help would rock <?php $ecss=$_GET['ecs']; $date1=$_GET['date1']; $date2=$_GET['date2']; require '../config.php'; mysql_select_db("learn_sym"); $result = mysql_query("SELECT agency FROM clients WHERE ecs= '$ecss' and date<= '$date2' and date>= '$date1'") or die(mysql_error()); while ($row = mysql_fetch_array($result)) { $agencyname= $row{'agency'}; $result2 = mysql_query("SELECT * FROM clients WHERE ecs= '$ecss' and date<= '$date2' and date>= '$date1' AND agency= '$agencyname' ORDER BY date ASC") or die(mysql_error()); echo"<ul style='width:800px; margin:0 auto 0;'> <h4 style='margin:0 10px 0; padding:0;'>"; if (!empty($agencyname)){echo$agencyname;} else {echo"Unknown";} echo"</h4>"; while ($row2 = mysql_fetch_array($result2)) { echo"<p style='margin:4px 0 0 15px;'> <span class='blue'>Name:</span> ".$row2['fname'].",".$row2['lname']." - <span class='blue'>Seen On:</span> ".$row2['date']." <span class='blue'>Email:</span> ";if(!empty($row2['email'])){echo $row2['email'];}else{echo"N/A";}echo" <span class='blue'>Phonenumber:</span> ";if(!empty($row2['cell_phone'])){echo $row2['cell_phone'];}else{echo $row2['home_phone'];}echo" </p> <p style='margin:4px 0 0 15px; background-color:#f3f3f2;'> <span class='blue'>Services: </span>"; if (!empty($row2['want_serv_1'])){echo"FASFSA Completion, ";} if (!empty($row2['want_serv_4'])){echo"Admissions Application Assistance, ";} if (!empty($row2['want_serv_5'])){echo"Career and Academic Advising/Testing, ";} if (!empty($row2['want_serv_2'])){echo"Scholarship Search Information, ";} if (!empty($row2['want_serv_3'])){echo"Loan Default Assistance, ";} if (!empty($row2['want_serv_6'])){echo"Financial Literacy Education,";}echo" </p> <p style='margin:4px 0 0 15px;'> <span class='blue'>FASA: </span>"; if (!empty($row2['fasfsa_amt'])){$fa = $row2['fasfsa_amt'];} if (isset($fa)){$tf = $fa; echo"$".$tf; } else{echo"N/A";}echo" <span class='blue'>Grants: </span>"; if (!empty($row2['stgrants_amt'])){$sg = $row2['stgrants_amt'];} if (!empty($row2['logrants_amt'])){$lg = $row2['logrants_amt'];} if (isset($sg)&&isset($lg)){$tg = $sg + $lg; echo"$".$tg; } else{echo"N/A";}echo" <span class='blue'>scholarships: </span>"; if (!empty($row2['stscol_amt'])){$ss = $row2['stscol_amt'];} if (!empty($row2['priscol_amt'])){$ps = $row2['priscol_amt'];} if (isset($ss)&&isset($ps)){$ts = $ss + $ps; echo"$".$ts; } else{echo"N/A";}echo" <span class='blue'>Loans: </span>"; if (!empty($row2['subloan_amt'])){$sl = $row2['subloan_amt'];} if (!empty($row2['unsubloan_amt'])){$ul = $row2['unsubloan_amt'];} if (isset($sl)&&isset($ul)){$tl = $sl + $ul; echo"$".$tl; } else{echo"N/A";}echo" <strong><span class='blue'>Total: </span></strong>"; if (isset($tf)||isset($tg)||isset($ts)||isset($tl)){$gt = $tf + $tg + $ts + $tl; echo"$".$gt; } else{echo"N/A";}echo" </p> <div style='border-bottom:1px solid skyblue;padding-bottom:10px;'></div>"; } echo"</ul><br />"; } ?> Edited October 5, 2012 by ManiacDan Quote Link to comment https://forums.phpfreaks.com/topic/269136-while-loop-is-repeating-its-self/ Share on other sites More sharing options...
ManiacDan Posted October 5, 2012 Share Posted October 5, 2012 Why are you selecting rows from a table, then selecting more rows from the same table with similar criteria? Why not just ORDER the first select by AGENCY? That will solve your problems. Quote Link to comment https://forums.phpfreaks.com/topic/269136-while-loop-is-repeating-its-self/#findComment-1383071 Share on other sites More sharing options...
hopbop Posted October 5, 2012 Author Share Posted October 5, 2012 Why are you selecting rows from a table, then selecting more rows from the same table with similar criteria? Why not just ORDER the first select by AGENCY? That will solve your problems. try it did not work same results Quote Link to comment https://forums.phpfreaks.com/topic/269136-while-loop-is-repeating-its-self/#findComment-1383073 Share on other sites More sharing options...
ManiacDan Posted October 5, 2012 Share Posted October 5, 2012 I'm assuming, of course, that you've checked the database and there aren't just 20 duplicate rows in there. Quote Link to comment https://forums.phpfreaks.com/topic/269136-while-loop-is-repeating-its-self/#findComment-1383075 Share on other sites More sharing options...
hopbop Posted October 5, 2012 Author Share Posted October 5, 2012 (edited) OK maybe i might be asking the wrong question ... "how can i get the information im trying to loop in to singal agency catagorys" ..... diffrent ecss will have dirent and or same agencys? Edited October 5, 2012 by hopbop Quote Link to comment https://forums.phpfreaks.com/topic/269136-while-loop-is-repeating-its-self/#findComment-1383077 Share on other sites More sharing options...
hopbop Posted October 5, 2012 Author Share Posted October 5, 2012 (edited) I'm assuming, of course, that you've checked the database and there aren't just 20 duplicate rows in there. yes i have checked the database for that Edited October 5, 2012 by hopbop Quote Link to comment https://forums.phpfreaks.com/topic/269136-while-loop-is-repeating-its-self/#findComment-1383079 Share on other sites More sharing options...
PFMaBiSmAd Posted October 5, 2012 Share Posted October 5, 2012 The following example shows (untested) how to query for the rows you want in the order that you want them, then how to close out a previous section and output a new heading anytime a value in your data changes - <?php $ecss=$_GET['ecs']; $date1=$_GET['date1']; $date2=$_GET['date2']; require '../config.php'; mysql_select_db("learn_sym"); $query = "SELECT * FROM clients WHERE ecs= '$ecss' and date BETWEEN '$date1' AND '$date2' ORDER BY agency,date"; $result = mysql_query($query) or die(mysql_error()); $last_heading = null; while ($row = mysql_fetch_array($result)){ if($last_heading != $row['agency']){ // new heading detected if($last_heading != null){ // not the first one, close out the previous section echo"</ul><br />"; } // agency changed, output a new heading echo"<ul style='width:800px; margin:0 auto 0;'> <h4 style='margin:0 10px 0; padding:0;'>"; if (!empty($row['agency'])){echo $row['agency'];} else {echo "Unknown";} echo"</h4>"; $last_heading = $row['agency']; } // output the data under each heading echo"<p style='margin:4px 0 0 15px;'> <span class='blue'>Name:</span> ".$row['fname'].",".$row['lname']." - <span class='blue'>Seen On:</span> ".$row['date']." <span class='blue'>Email:</span> ";if(!empty($row['email'])){echo $row['email'];}else{echo"N/A";}echo" <span class='blue'>Phonenumber:</span> ";if(!empty($row['cell_phone'])){echo $row['cell_phone'];}else{echo $row['home_phone'];}echo" </p> <p style='margin:4px 0 0 15px; background-color:#f3f3f2;'> <span class='blue'>Services: </span>"; if (!empty($row['want_serv_1'])){echo"FASFSA Completion, ";} if (!empty($row['want_serv_4'])){echo"Admissions Application Assistance, ";} if (!empty($row['want_serv_5'])){echo"Career and Academic Advising/Testing, ";} if (!empty($row['want_serv_2'])){echo"Scholarship Search Information, ";} if (!empty($row['want_serv_3'])){echo"Loan Default Assistance, ";} if (!empty($row['want_serv_6'])){echo"Financial Literacy Education,";}echo" </p> <p style='margin:4px 0 0 15px;'> <span class='blue'>FASA: </span>"; if (!empty($row['fasfsa_amt'])){$fa = $row['fasfsa_amt'];} if (isset($fa)){$tf = $fa; echo"$".$tf; } else{echo"N/A";}echo" <span class='blue'>Grants: </span>"; if (!empty($row['stgrants_amt'])){$sg = $row['stgrants_amt'];} if (!empty($row['logrants_amt'])){$lg = $row['logrants_amt'];} if (isset($sg)&&isset($lg)){$tg = $sg + $lg; echo"$".$tg; } else{echo"N/A";}echo" <span class='blue'>scholarships: </span>"; if (!empty($row['stscol_amt'])){$ss = $row['stscol_amt'];} if (!empty($row['priscol_amt'])){$ps = $row['priscol_amt'];} if (isset($ss)&&isset($ps)){$ts = $ss + $ps; echo"$".$ts; } else{echo"N/A";}echo" <span class='blue'>Loans: </span>"; if (!empty($row['subloan_amt'])){$sl = $row['subloan_amt'];} if (!empty($row['unsubloan_amt'])){$ul = $row['unsubloan_amt'];} if (isset($sl)&&isset($ul)){$tl = $sl + $ul; echo"$".$tl; } else{echo"N/A";}echo" <strong><span class='blue'>Total: </span></strong>"; if (isset($tf)||isset($tg)||isset($ts)||isset($tl)){$gt = $tf + $tg + $ts + $tl; echo"$".$gt; } else{echo"N/A";}echo" </p> <div style='border-bottom:1px solid skyblue;padding-bottom:10px;'></div>"; } // close out the last section, if any if($last_heading != null){ echo"</ul><br />"; } ?> Quote Link to comment https://forums.phpfreaks.com/topic/269136-while-loop-is-repeating-its-self/#findComment-1383088 Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.