2013-03-12 2 views
-4

У меня есть запрос, в котором num_rows возвращает один миллион записей. Мне нужно перебирать корыта это один миллион записей на 1000, я имею в виду начать в 0 на один миллион, и каждый 1000 генерировать otuput (Excel файл):Как получить результаты от 1000 до 1000, если var = 0

Excel1: will contain records 1~1000 
Excel2: will contain records 1001~2000 
Excel3: will contain records 2001~3000 
Excel14: will contain records 3001~4000 

и так далее, пока не достигнет одного миллиона. Я думаю, что используется while(), но я вообще не защищен, любая помощь?

+0

почему вам нужно 1000 переменных после всех? – varnie

+0

@varnie Мне нужно создать файл Excel для каждого 1000 записей, Excel с одним миллионом будет очень высоким и загрузит сервер, я написал 1000, как пример должен быть определен в var – ReynierPM

+2

Ваш вопрос не очень ясен. Запрос уже запущен, и у вас есть 1 миллион строк? Или вы пытаетесь настроить цикл PHP для запроса базы данных на 1000 строк за раз? И что вы подразумеваете под «while() небезопасно?» – BadHorsie

ответ

1

при условии, что вы запрашивая дб, что-то, как это должно работать:

$start = 0; 
$end = 1000; 

$qstring= 'SELECT col1, col2 FROM mytable ORDER BY col1 LIMIT ?, ?'; 
$stmt = mysqli_prepare($connection, $qstring); 
$stmt->bind_param('ii', $start, $end); 
do{ 
$stmt->execute(); 
$stmt->bind_result($co11, $col2); 
while($stmt->fetch()){ 
    //do something with $col1, $col2 
} 

$count = $stmt->num_rows 
$start = $end + 1; 
$end = $start +1000; 

} while($count == 1000); 
Смежные вопросы