从文件中重复显示在表格中的数据

时间:2010-11-29 12:53:23

标签: php javascript html

所以我正在阅读一个包含产品信息的文本文件我有四个表用于不同的计算机计算机1显示从file1读取的表1,计算机2显示从文件2读取的表2等。但是出于某种原因,计算机3和4显示来自表2以及3& 4的信息我还没有得到什么信息,希望我的代码可以提供更好的视图。

表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>
 '
?>

表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>
 '
?>

表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>
 '
?>

表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++;
    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>
 '
?>

亲切的问候E.P

2 个答案:

答案 0 :(得分:0)

尝试在每个部分的开头添加$col = array();

答案 1 :(得分:0)

我会打赌这是Limpep建议的,但我会建议一个更好的解决方案:

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');

这样,你可以确定你没有变量覆盖另一个,你可以阻止所有重复的代码......