I am having a problem that has me completely baffled.
It seems as if midway through the script it will stop sending mySql requests. The weird part is that this only happens when run through IE,but the same exact code when run with Firefox does not stop. My company uses IE exclusively so I have to make it work. I've tested it on IE 6, 7 and 8 beta and they all do the same thing. A random points (somewhere between the 10th and 50th item out of 540ish) it will stop sending requests. The screen shots attached show the output from each.
My understanding is that the entire block of php code should be run entirely on the server so the browser in use should not have any effect on the data coming out. They may treat javascript or css differently, but I thought that the actual php code should be handled identically. I'll attach the code below. The server is running Apache 2.0.x and PHP 5.2.x.
[CODE][code=html]<?php
include("upload.php");
include("includes/dbconn.php");
?>
<link rel='stylesheet' type='text/css' href='css/main.css'>
<script type='text/javascript'>
...omitted 10 pages of javascript...
</script>
<body onload='showTable()'>
<?
function checkNeg($num)
{
if ($num < 0)
{
return "style='background-color: #ff0000;'";
}
else if ($num > 0)
{
return "style='background-color: #009900;'";
}
else
{
return "style='color: #cccccc;'";
}
}
function checkBank($num, $bank)
{
if ($num < $bank)
{
return "style='background-color: #ff0000;'";
}
else if ($num > $bank)
{
return "style='background-color: #009900;'";
}
else
{
return "style='color: #cccccc;'";
}
}
$resultMonths = mysql_query("SELECT * FROM months");
$mon = mysql_fetch_assoc($resultMonths);
$resultPG = mysql_query("SELECT DISTINCT(pg) FROM parts ORDER BY pg");
echo "<fieldset style='border: 0px solid #000000;'>";
echo "<legend><span class='fontClass'>Product Group: </span>";
echo "<select id='topSel' name='topSel' class='selectClass' onchange='showTable();'>";
while ($rowPG = mysql_fetch_assoc($resultPG))
{
echo "<option value='".$rowPG['pg']."'>".$rowPG['pg']."</option>";
}
echo "</select><img src='' height='5' width='400' style='visibility: hidden;'><input type='button' value='View Changes' class='topButton' onmouseover=\"style.cursor='hand';\" onclick=\"window.open('viewChanges.php');\">";
echo "</legend>";
[B]$resultPG = mysql_query("SELECT DISTINCT(pg) FROM parts ORDER BY pg");
while ($rowPG = mysql_fetch_assoc($resultPG))
{
echo "<table border=0 cellspacing=0 cellpadding=0 id='$rowPG[pg]' style='display: none;'>\n";
echo "<tr>";
echo "<td colspan='16' class='cellClassHeadLeft' style='font-size: 12pt; text-align: center'>Product Group: ".$rowPG['pg']."</td>";
echo "</tr>";
$resultParts = mysql_query ("SELECT * FROM parts WHERE pg='".$rowPG['pg']."' ORDER BY part");
while ($rowParts = mysql_fetch_assoc($resultParts))
{
echo "<form method='post' action='saveChange.php' target=\"main\" id='".$rowParts['part']."_form'>";
$resultSales = mysql_query("SELECT * FROM sales WHERE part='".$rowParts['id']."'");
$rowSales = mysql_fetch_assoc($resultSales);
$resultProd = mysql_query("SELECT * FROM prod WHERE part='".$rowParts['id']."'");
$rowProd = mysql_fetch_assoc($resultProd);
$resultDiff = mysql_query("SELECT * FROM diff WHERE part='".$rowParts['id']."'");
$rowDiff = mysql_fetch_assoc($resultDiff);
echo "<tr>\n";
echo "<td class='cellClass' colspan='16'> </td>\n";
echo "</tr>\n";
echo "<tr>\n";
echo "<td class='cellClassHeadLeft' class='cellClass' align='right'>Part:</td>\n";
echo "<td class='cellClassHeadRight' colspan='15'><input type='hidden' value='".$rowParts['part']."' name='part'><span style='color: #009900'>".$rowParts['part']."</span> - ".$rowParts['desc']."</td>\n";
echo "</tr>\n";
echo "<tr>\n";
echo "<td class='cellClass' colspan='5'></td>\n";
echo "<td class='cellClassHeadLeft'>Accum</td>\n";
echo "<td class='cellClassHeadRight'>B/S</td>\n";
echo "<td class='cellClassHeadRight'>".$mon['m1']."</td>\n";
echo "<td class='cellClassHeadRight'>".$mon['m2']."</td>\n";
echo "<td class='cellClassHeadRight'>".$mon['m3']."</td>\n";
echo "<td class='cellClassHeadRight'>".$mon['m4']."</td>\n";
echo "<td class='cellClassHeadRight'>".$mon['m5']."</td>\n";
echo "<td class='cellClassHeadRight'>".$mon['m6']."</td>\n";
echo "<td class='cellClassHeadRight'>".$mon['m7']."</td>\n";
echo "<td class='cellClassHeadRight'>".$mon['m8']."</td>\n";
echo "<td class='cellClassHeadRight'>Total</td>";
echo "</tr>\n";
echo "<tr>\n";
echo "<td class='cellClassTopLeft' align='right'>Open Orders</td>\n";
echo "<td class='cellClassTopRight'>".$rowParts['oo']."</td>\n";
echo "<td class='cellClassTopRight' align='right'>Future Orders</td>\n";
echo "<td class='cellClassTopRight'>".$rowParts['fo']."</td>\n";
echo "<td class='cellClassTopGrad' align='right'>Sales</td>\n";
echo "<td class='cellClassRight' align='right' ". checkNeg($rowSales['acc']) ."><input type='hidden' id='".$rowParts['part']."_s_a' value='".$rowSales['acc']."'>".$rowSales['acc']."</td>\n";
echo "<td class='cellClassRight' align='right' ". checkNeg($rowSales['bs']) ."><input type='hidden' id='".$rowParts['part']."_s_b' value='".$rowSales['bs']."'>".$rowSales['bs']."</td>\n";
echo "<td class='cellClassRight' align='right' ". checkNeg($rowSales['m1']) ."><input type='hidden' id='".$rowParts['part']."_s_m1' value='".$rowSales['m1']."'>".$rowSales['m1']."</td>\n";
echo "<td class='cellClassRight' align='right' ". checkNeg($rowSales['m2']) ."><input type='hidden' id='".$rowParts['part']."_s_m2' value='".$rowSales['m2']."'>".$rowSales['m2']."</td>\n";
.....Omited 6 more months exactly like the previous 2 echos to shorten length.......
echo "<td class='cellClassRight' align='right' ". checkNeg($rowSales['tot']) ."><input type='hidden' id='".$rowParts['part']."_s_t' value='".$rowSales['tot']."'>".$rowSales['tot']."</td>\n";
echo "<td class='cellClassRight' rowspan='3' style='border-top: 1px solid #000000;' onmouseover=\"style.cursor='hand'; style.backgroundColor='#000099'; style.color='#ffffff';\" onmouseout=\"style.backgroundColor='#ffffff'; style.color='#000000';\" onclick=\"changeColors('".$rowParts['part']."'); document.getElementById('".$rowParts['part']."_form').submit();\">S<br>E<br>N<br>D</td>\n";
echo "</tr>\n";
echo "<tr>\n";
echo "<td class='cellClassLeft' align='right'>MTD Prod</td>\n";
echo "<td class='cellClassRight'>".$rowParts['mtdP']."</td>\n";
echo "<td class='cellClassRight' align='right'>MTD Ship</td>\n";
echo "<td class='cellClassRight'><input type='hidden' id='".$rowParts['part']."_mtdS' value='".$rowParts['mtdS']."'>".$rowParts['mtdS']."</td>\n";
echo "<td class='cellClassGrad' align='right'>Production</td>\n";
echo "<td class='cellClassRight' align='right' ". checkNeg($rowProd['acc']) ."><input type='hidden' id='".$rowParts['part']."_p_a' value='".$rowProd['acc']."'>".$rowProd['acc']."</td>\n";
echo "<td class='cellClassRight' align='right' ". checkNeg($rowProd['bs']) ."><input type='hidden' id='".$rowParts['part']."_p_b' value='".$rowProd['bs']."'>".$rowProd['bs']."</td>\n";
echo "<td class='cellClassRight' align='right'><input type='text' class='textClass' name='m1' onchange=\"updateFields('".$rowParts['part']."'); this.className = 'textClassChg';\" size='2' id='".$rowParts['part']."_p_m1' value='".$rowProd['m1']."'></td>\n";
echo "<td class='cellClassRight' align='right'><input type='text' class='textClass' name='m2' onchange=\"updateFields('".$rowParts['part']."'); this.className = 'textClassChg';\" size='2' id='".$rowParts['part']."_p_m2' value='".$rowProd['m2']."'></td>\n";
.....Omited 6 more months exactly like the previous 2 echos to shorten length....... echo "<td class='cellClassRight' align='right' id='".$rowParts['part']."_p_t' ". checkNeg($rowProd['tot']) .">".$rowProd['tot']."</td>\n";
echo "</tr>\n";
echo "<tr>\n";
echo "<td class='cellClassLeft' align='right'>On Hand</td>\n";
echo "<td class='cellClassRight'><input type='hidden' id='".$rowParts['part']."_oh' value='".$rowParts['oh']."'>".$rowParts['oh']."</td>\n";
echo "<td class='cellClassRight' align='right'>Inv Bank</td>\n";
echo "<td class='cellClassRight'><input type='hidden' id='".$rowParts['part']."_bank' value='".$rowParts['bank']."'>".$rowParts['bank']."</td>\n";
echo "<td class='cellClassGrad' align='right'>Difference</td>\n";
echo "<td class='cellClassRight' id='".$rowParts['part']."_d_a' align='right' ". checkBank($rowDiff['acc'], $rowParts['bank']) .">".$rowDiff['acc']."</td>\n";
echo "<td class='cellClassRight' id='".$rowParts['part']."_d_b' align='right' ". checkBank($rowDiff['bs'], $rowParts['bank']) .">".$rowDiff['bs']."</td>\n";
echo "<td class='cellClassRight' id='".$rowParts['part']."_d_m1' align='right' ". checkBank($rowDiff['m1'], $rowParts['bank']) .">".$rowDiff['m1']."</td>\n";
echo "<td class='cellClassRight' id='".$rowParts['part']."_d_m2' align='right' ". checkBank($rowDiff['m2'], $rowParts['bank']) .">".$rowDiff['m2']."</td>\n";
.....Omited 6 more months exactly like the previous 2 echos to shorten length.......
echo "<td class='cellClassRight' id='".$rowParts['part']."_d_t' align='right' ". checkBank($rowDiff['tot'], $rowParts['bank']) .">".$rowDiff['tot']."</td>\n";
echo "</tr>\n";
echo "</form>";
}
echo "</table>\n";
}[/B] echo "</fieldset>\n";
mysql_close($conn);
?>
<iframe id='main' name='main' style='display: none;'></iframe>
</body>
[/CODE][/code]