2014-01-08 21 views
0

我想我的SQL數據導出爲CSV文件但是當我這樣做,在CSV不會打印出的第一個條目只有第二個導出SQL爲CSV並打印出所有的條目

這裏是代碼:

   <?php 
       $connect = mysqli_connect('localhost','root','','grad_gown'); 
       if (!$connect){ 
        die("Can not connect:". mysqli_error()); 
       }  
       $db = new mysqli('localhost','root','','grad_gown'); 

       ////////////////////////////////////// 
       //////////////////////////////////////// 
       if (isset($_POST['back'])){ 
       header("Location: http://localhost/login_grad_2.php"); 
       exit; 
       } 
       ////////////////////////////////////// 

       //Exporting mysql database to excel file 
       $filename = 'uploads/'.strtotime("now").'.csv'; 
       $fp = fopen($filename,"w"); 
       $sql = $db -> query("SELECT * FROM `excel_info`") or die; 
       $row_234 = $sql -> fetch_assoc(); 
       $seperator = ""; 
       $comma = ""; 

       //names/headers 
       foreach($row_234 as $name => $value){ 
       $seperator .= $comma.''.str_replace('','""',$name); 
       $comma = ",";  
       } 
       $seperator .= "\n"; 
       fputs($fp,$seperator); 

       ///values display 
       while($row_234 = $sql -> fetch_assoc()){ 
       $seperator = ""; 
       $comma = ""; 
       foreach($row_234 as $name => $value){ 
       $seperator .=  $comma.''.str_replace('','""',$value); 
       $comma = ",";  
       } 
       $seperator .= "\n"; 
       fputs($fp,$seperator); 
       } 

       fclose($fp); 
       ?> 

那麼我的代碼有問題嗎?無論如何,我可以讓程序將我的所有條目從我的SQL顯示到CSV文件

+0

您使用的是你取來呈現標題行第一行;但需要顯示它包含的數據 –

+0

但爲什麼你忽略了PHP內置的[fputcsv()](http://www.php.net/manual/en/function.fputcsv.php)函數? –

回答

0

您錯過了第一行值,因爲您已經爲名稱/標題提取了它,但沒有導出值。

速戰速決將取代你一do ... whilewhile使得第一行值之前的第二齣口獲取

+0

謝謝你,你在工作時使用do的建議,感謝你的時間和幫助 – user3145648