PDA

View Full Version : حرفه ای: درخواست كد استخراج از ديتابيس و فشرده كردن فايلها براي دانلود



mghorobei51
شنبه 08 آبان 1389, 20:30 عصر
سلام
من در پايگاه داده mysql يك سري ركورد دارم مي خواهم كاربران با اتصال به اين پايگاه اخرين ركرودهايي را كه بعد از آخرين اتصالشان در پايگاه ايجاد شه اند را دانلود كنند بخش انتخاب ركرود ها رو بلدم اما چه جوري انها رو تو يك فايل متني يا فشرده قرار دهم و با چه دستوري دانلود بشوند
هم چنين يك پوشه ايي كه داراي يك سري فايل هست عناوين اين فايلها در يك جدول ديتابيسم نوشته شده اند حالا مي خوام برخي از ان فايلها رو كه در عناوينشان رت در جدول انتخاب كرده ام را انتخاب كرده فشرده كنم و دانلود كنند.
مرحله اتصال به بانك و اتورازيشن رو بلدم / فقط انتخاب ، فشرده كردن / دانلود
فشزرده كردن رو چيزي مثل اكسپورت خود phomyadmin يك فايل متني مي سازه اون طوري مي خواهم
ممنون

funpatogh
شنبه 08 آبان 1389, 20:36 عصر
function backup_tables($host,$user,$pass,$name,$tables = '*')
{

$link = mysql_connect($host,$user,$pass);
mysql_select_db($name,$link);
mysql_query("SET NAMES UTF8");
mysql_set_charset("utf8");
date_default_timezone_set("Asia/Tehran");

//get all of the tables
if($tables == '*')
{
$tables = array();
$result = mysql_query('SHOW TABLES');
while($row = mysql_fetch_row($result))
{
$tables[] = $row[0];
}
}
else
{
$tables = is_array($tables) ? $tables : explode(',',$tables);
}

//cycle through
foreach($tables as $table)
{
$result = mysql_query('SELECT * FROM '.$table);
$num_fields = mysql_num_fields($result);


$row2 = mysql_fetch_row(mysql_query('SHOW CREATE TABLE '.$table));
$return.= "\n\n".$row2[1].";\n\n";

for ($i = 0; $i < $num_fields; $i++)
{
while($row = mysql_fetch_row($result))
{
$return.= 'INSERT INTO '.$table.' VALUES(';
for($j=0; $j<$num_fields; $j++)
{
$row[$j] = addslashes($row[$j]);
$row[$j] = ereg_replace("\n","\\n",$row[$j]);
if (isset($row[$j])) { $return.= '"'.$row[$j].'"' ; } else { $return.= '""'; }
if ($j<($num_fields-1)) { $return.= ','; }
}
$return.= ");\n";
}
}
$return.="\n\n\n";
}

//save file
$file='backup-'.date("Y-m-d-H-i-s").'.sql';
$handle = fopen($file,'w+');
fwrite($handle,$return);
fclose($handle);
}
backup_tables("localhost","root","","database");