2016-06-23 4 views

Antwort

-1

Wenn Sie mehr Daten in Ihrer Tabelle haben und in CSV exportieren möchten, haben Sie einen Ausnahme/Zeitausführungsfehler festgestellt.

Ich habe eine bessere Lösung unten erwähnt und auch vollständig getestet. Bitte benutzen und genießen.

<?php 
ini_set('display_errors',1); 
set_time_limit(0); 
$mysqli = new mysqli("localhost", "root", "", "demo"); 
if (mysqli_connect_errno()) { 
    printf("Connect failed: %s\n", mysqli_connect_error()); 
    exit(); 
} 
$limit = ''; 
$sql ="SELECT * from user"; 
$result = $mysqli->query($sql); 
$row_cnt = $result->num_rows; 
$fileName = 'report.csv'; 
header("Content-disposition: attachment; filename={$fileName}"); 
header("Content-Type: text/csv"); 
$rounds=''; 
if($row_cnt>0){ 
    $processAtOnce = 10; 
    if($row_cnt>$processAtOnce){ 
     $rounds = round($row_cnt/$processAtOnce); 
    }else{ 
     $rounds = 1; 
     $processAtOnce = $row_cnt; 
    } 
    $fp = fopen('php://output', 'w'); 
    for ($i = 0; $i < $rounds; ++$i) { 
     $limit = $processAtOnce; 
     $offset = $i * $processAtOnce; 
     $sql1= $sql .' limit '.$offset. ','.$limit; 
     $result1 = $mysqli->query($sql1);  
      while ($row = $result1->fetch_assoc()) { 
      fputcsv($fp, $row); 
     } 

    } 
    unset($result1); 
    unset($result); 
} 

---------- ---------- Datenbank

CREATE TABLE `newdemo` (
    `id` int(11) NOT NULL, 
    `uname` varchar(100) NOT NULL, 
    `roll` int(11) NOT NULL, 
    `address` varchar(200) NOT NULL 
) ENGINE=InnoDB DEFAULT CHARSET=latin1; 

-- 
-- Indexes for dumped tables 
-- 

-- 
-- Indexes for table `newdemo` 
-- 
    ALTER TABLE `newdemo` 
    ADD PRIMARY KEY (`id`); 

-- 
-- AUTO_INCREMENT for dumped tables 
-- 

-- 
-- AUTO_INCREMENT for table `newdemo` 
-- 
ALTER TABLE `newdemo` 
    MODIFY `id` int(11) NOT NULL AUTO_INCREMENT; 
Verwandte Themen