Показать сообщение отдельно

  #1584  
Старый 16.01.2008, 14:32
-=lebed=-
Флудер
Регистрация: 21.06.2006
Сообщений: 3,193
С нами: 10467746

Репутация: 4738


По умолчанию

Вообщем сделал так:
PHP код:
// Функция получения 1000 паролей из базы начиная с номера=id
function get_pass($id)
{
global 
$db_table;
global 
$id;
$query "SELECT `passwd` from ".$db_table." WHERE `passwd` IS NOT NULL limit ".$id.",1000";
$r=mysql_query($query);
if(
$r)
{

  while(
$db_pass mysql_fetch_array($r))
  {
    
$get_pass[$id]=$db_pass['passwd']."\n";
    
$id++;
  }
}
else
{
  echo 
"<p><b>Error: ".mysql_error()."</b><p>";
  
$get_pass=false;
  
}
return 
$get_pass;

Читаем из базы 1000 паролей, начиная с записи $id и возвращаем в виде массива $get_pass (1000 записей)

Вызываем функцию в цикле:
PHP код:
<?
include('conf.php');
include(
'function.php');
ignore_user_abort(1);
set_time_limit(0);
$fd fopen("./pass/dict.txt"'w');
$id 0;
$pass = array('типа..''пароль1''пароль2');
    while(
$pass)
    {
    
$pass=get_pass($id);
    
$string=implode($pass);
    
fwrite($fd$string);
//    $id=$id+1000; - тут не надо! $id - глобальная!
            
}
    echo 
"в файл выгружено: ".$id." паролей <br>";
fclose($fd);
?>
Выгрузилось реально 115000 паролей, хотя написал что 230000.... хм... попробовать по 2 тыс. выгружать?

Изминил лимит на 2000 пишет:
Цитата:
в файл выгружено: 231756 паролей
Но реально в файле в два раза меньше, где ошибка?

А понял! не надо второй раз 1000 прибавлять $id глобальная, а так пропуск по 1000 шт. получается, она инкрементится в функции и её значение не сбрасывается...
Щас исправлю...

Последний раз редактировалось -=lebed=-; 16.01.2008 в 14:52..
 
Ответить с цитированием