0

朝、データベースからエントリを呼び出し、実際にはその履歴を取得し、テーブルにエントリを表示するスクリプトがあります。これは、非常に大きな for ループを使用して比較を行い、結果を追加するテーブルを作成するためです。 .しかし、何らかの理由で 30 秒後にタイムアウトになっています (ループはそれほど多くのサイクルを行いません)。原因は最初の内部ループの問題であると判断しました。ループの期間、それを離れることはありません。何か案は?

for($i = 1; $i <= $FirstCount; $i++)
    {

    $HistoryTable .= "<tr>";
        if($i = 1)
        {
            for($j = 0; $j < $ThirdCount; $j++)
            {
                if($EntryTwo[0][$j+1] == $EntryOne[$j])
                {
                    $HistoryTable .= "<td></td>";
                }       
                else
                {
                    $HistoryTable .= "<td>".$EntryTwo[0][$j+1]."</td>";
                }
            echo    $EntryTwo[0][$j+1].' == '.$EntryOne[$j];
            }
        }
        else
        {
            $first = 0;
            $second = 1;
            for($k = 1; $k <= $SecondCount; $k++)
            { 
                if($EntryTwo[$first][$k] == $EntryTwo[$second][$k])
                {
                    $HistoryTable .= "<td>".$EntryTwo[$second][$k]."</td>";
                }
                else
                {
                    $HistoryTable .= "<td></td>";
                }
            $first++;
            $second++;
            }
        unset($k);
        unset($first);
        unset($second); 
        }
    $HistoryTable .= "</tr>";
    }

変数:

$FirstCount = 4;
$SecondCount = 18
$ThirdCount = 17
4

1 に答える 1

4

if($i = 1)$iは毎回 1 に設定されているため、無限ループです。

あなたが欲しいのはですif ($i == 1)

于 2013-02-22T16:40:21.553 に答える