repeat data presented on table from file
So I am reading from a text file which has product information I have four tables for the different computers computer 1 shows table 1 which is read from file1, computer 2 shows table 2 which is read from file 2, etc etc. BUT for some reason computer 3&4 show information from table 2 and also 3&4 i havent got a clue whats going on hope my code can give a better view.
Table 1
<?php
error_reporting(E_ALL ^ E_NOTICE);
$row = 0;
$sortby ='';
$sortkey='';
echo '<h1><span class="sortby"></span></h1>
<table cellspacing="5" summary="QA Tables">
<tr>
<th>Products</th>
<th>Types</th>
<th>Keys</th>
<th>Date & Time Added</th>
</tr>';
$fp = fopen('key_QA_N1.txt','r');
if (!$fp) {echo 'ERROR: Unable to open file.</table></body></html>'; exit;}
while (!feof($fp)) {
$line = fgets($fp,1024); //use 2048 if very long lines
$row++;
list ($products,$types, $keys, $date) = explode('|', $line);
if ($sortby == 'Products') $sortkey = strtolower($products);
if ($sortby == 'Types') $sortkey = strtolower($types);
if ($sortby == 'Keys') $sortkey = strtolower($keys);
if ($sortby == 'Date & Time Added') $sortkey = strtolower($date);
$col[$row] = array($sortkey, $products, $types, $keys, $date);
}
fclose($fp);
$arrays = count($col) - 1;
$loop = 0;
while ($loop < $arrays) {
$loop++;
echo '
<tr>
<td>'.$col[$loop][1].'</td>
<td>'.$col[$loop][2].'</td>
<td>'.$col[$loop][3].'</td>
<td>'.$col[$loop][4].'</td>
</tr>';
}
echo '
</table>
'
?>
Table 2
<?php
error_reporting(E_ALL ^ E_NOTICE);
$row = 0;
$sortby ='';
$sortkey='';
echo '<h1><span class="sortby"></span></h1>
<table cellspacing="5" summary="QA Tables">
<tr>
<th>Products</th>
<th>Types</th>
<th>Keys</th>
<th>Date & Time Added</th>
</tr>';
$fp = fopen('key_QA_N2.txt','r');
if (!$fp) {echo 'ERROR: Unable to open file.</table></body></html>'; exit;}
while (!feof($fp)) {
$line = fgets($fp,1024); //use 2048 if very long lines
$row++;
list ($products,$types, $keys, $date) = explode('|', $line);
if ($sortby == 'Products') $sortkey = strtolower($products);
if ($sortby == 'Types') $sortkey = strtolower($types);
if ($sortby == 'Keys') $sortkey = strtolower($keys);
if ($sortby == 'Date & Time Added') $sortkey = strtolower($date);
$col[$row] = array($sortkey, $products, $types, $keys, $date);
}
fclose($fp);
$arrays = count($col) - 1;
$loop = 0;
while ($loop < $arrays) {
$loop++;
echo '
<tr>
<td>'.$col[$loop][1].'</td>
<td>'.$col[$loop][2].'</td>
<td>'.$col[$loop][3].'</td>
<td>'.$col[$loop][4].'</td>
</tr>';
}
echo '
</table>
'
?>
Table 3
<?php
error_reporting(E_ALL ^ E_NOTICE);
$row = 0;
$sortby ='';
$sortkey='';
echo '<h1><span class="sortby"></span></h1>
<table cellspacing="5" summary="QA Tables">
<tr>
<th>Products</th>
<th>Types</th>
<th>Keys</th>
<th>Date & Time Added</th>
</tr>';
$fp = fopen('key_QA_N3.txt','r');
if (!$fp) {echo 'ERROR: Unable to open file.</table></body></html>'; exit;}
while (!feof($fp)) {
$line1 = fgets($fp,1024); //use 2048 if very long lines
$row++;
list ($products1,$types1, $keys1, $date1) = explode('|', $line1);
if ($sortby == 'Products') $sortkey = strtolower($products1);
if ($sortby == 'Types') $sortkey = strtolower($types1);
if ($sortby == 'Keys') $sortkey = strtolower($keys1);
if ($sortby == 'Date & Time Added') $sortkey = strtolower($date1);
$col[$row] = array($sortkey, $products1, $types1, $keys1, $date1);
}
fclose($fp);
$arrays = count($col) - 1;
$loop = 0;
while ($loop < $arrays) {
$loop++;
echo '
<tr>
<td>'.$col[$loop][1].'</td>
<td>'.$col[$loop][2].'</td>
<td>'.$col[$loop][3].'</td>
<td>'.$col[$loop][4].'</td>
</tr>';
}
echo '
</table>
'
?>
Table 4
<?php
error_reporting(E_ALL ^ E_NOTICE);
$row = 0;
$sortby ='';
$sortkey='';
echo '<h1><span class="sortby"></span></h1>
<table cellspacing="5" summary="QA Tables">
<tr>
<th>Products</th>
<th>Types</th>
<th>Keys</th>
<th>Date & Time Added</th>
</tr>';
$fp = fopen('key_QA_N4.txt','r');
if (!$fp) {echo 'ERROR: Unable to open file.</table></body></html>'; exit;}
while (!feof($fp)) {
$line2 = fgets($fp,1024); //use 2048 if very long lines
$row++;
list ($products2,$types2, $keys2, $date2) = explode('|', $line2);
if ($sortby == 'Products') $sortkey = strtolower($products2);
if ($sortby == 'Types') $sortkey = strtolower($types2);
if ($sortby == 'Keys') $sortkey = strtolower($keys2);
if ($sortby == 'Date & Time Added') $sortkey = strtolower($date2);
$col[$row] = array($sortkey, $products2, $types2, $keys2, $date2);
}
fclose($fp);
$arrays = count($col) - 1;
$loop = 0;
while ($loop < $arrays) {
$loop++;
开发者_StackOverflow社区 echo '
<tr>
<td>'.$col[$loop][1].'</td>
<td>'.$col[$loop][2].'</td>
<td>'.$col[$loop][3].'</td>
<td>'.$col[$loop][4].'</td>
</tr>';
}
echo '
</table>
'
?>
Kind regards E.P
Try adding $col = array();
at the beginning of each section.
I'll wager that it is what Limpep suggested, but I'll suggest a better solution:
error_reporting(E_ALL ^ E_NOTICE);
// create a wrapper function to prevent duplicate code!
function displayQANFile( $fname, $sortby = '' )
{
$col = array();
// NOTE: $row, $loop, and $arrays are no longer needed.
echo '<h1><span class="sortby"></span></h1>
<table cellspacing="5" summary="QA Tables">
<tr>
<th>Products</th>
<th>Types</th>
<th>Keys</th>
<th>Date & Time Added</th>
</tr>';
$fp = fopen($fname,'r');
if (!$fp) {echo 'ERROR: Unable to open file ' . $fname . '.</table></body></html>'; exit;}
while (!feof($fp)) {
$line2 = fgets($fp,1024); //use 2048 if very long lines
list ($products2,$types2, $keys2, $date2) = explode('|', $line2);
if ($sortby == 'Products') $sortkey = strtolower($products2);
if ($sortby == 'Types') $sortkey = strtolower($types2);
if ($sortby == 'Keys') $sortkey = strtolower($keys2);
if ($sortby == 'Date & Time Added') $sortkey = strtolower($date2);
// did you mean to call array_sort on col at some point?
$col[] = array($sortkey, $products2, $types2, $keys2, $date2);
}
fclose($fp);
foreach($col as $row) {
echo '
<tr>
<td>'.$row[1].'</td>
<td>'.$row[2].'</td>
<td>'.$row[3].'</td>
<td>'.$row[4].'</td>
</tr>';
}
echo '
</table>
';
}
displayQANFile('key_QA_N1.txt');
displayQANFile('key_QA_N2.txt');
displayQANFile('key_QA_N3.txt');
displayQANFile('key_QA_N4.txt');
This way, you can be sure that you won't have a variable overwriting another and you can prevent all of that duplicated code...
精彩评论