while循环不使用str_pad循环

时间:2018-02-21 09:25:37

标签: php mysql

我正在尝试进行循环,它将显示表格中的所有记录。但我现在得到的结果是显示一个数据,表中的最后一条记录。如果我想让它显示表中的所有记录而不仅仅显示一个数据

,我该怎么办?
        $myFile = "testFile.txt";
        $fo = fopen($myFile, 'w' ) or die ("cant open file");

        $header = str_pad($rekod,0).str_pad($organisasi,5).str_pad($jabatan,40).str_pad($tarikh_kredit,8).str_pad($sec_code,16,"0").str_pad($filler,150)."\n";


        $sql = "SELECT * FROM pengerusi_johor WHERE negeri='$negeri'";

        $result = mysqli_query($db, $sql);

        while($row = mysqli_fetch_array($result))
        {

        $detail = str_pad($rekod,0).str_pad($bank_code,7).str_pad($row['nombor_akaun'],16).str_pad($row['nama'],40);

        }

        fwrite($fo,trim($header).PHP_EOL.$detail);
        fclose($fo);

1 个答案:

答案 0 :(得分:0)

在你的代码中,每次循环时都会覆盖$detail的值,而值为while。

您应该使用.=将每一行追加到字符串

while($row = mysqli_fetch_array($result)) {

   $detail .= str_pad($rekod,0).str_pad($bank_code,7).str_pad($row['nombor_akaun'],16).
           str_pad($row['nama'],40);

}