KouroshSharifi
شنبه 01 مهر 1391, 10:20 صبح
سلام من یک اسکریبت نوشتم که کل رکورد های یک جدول رو به جدول مشابه انتقال می ده
اکریبت درست کار می کنه فقط می خوام بدونم راه ساده تری وجود داره برای اینکار یا نه می خوام بدونم به نظر شما من لقمه رو دور سر چرخوندم ؟
<?php
ini_set("display_errors", 1);
$source_host = 'localhost';
$db_source = 'ts';
$table_source = 'tbl6';
$source_db_username = 'root';
$source_db_pass = 'root';
$destination_host = 'localhost';
$db_destination = 'des';
$table_destination = 'tbl2';
$destination_db_username = 'root';
$destination_db_pass = 'root';
$whereStatment = "";
$localConnection = mysql_connect($source_host,$source_db_username,$so urce_db_pass);
mysql_select_db($db_source,$localConnection);
$surceDataArray = array();
$destinationArray = array();
$query = "SELECT * FROM " . $table_source . " " . $whereStatment;
$query_run = mysql_query($query,$localConnection);
echo $query . "<br/>";
while($result = mysql_fetch_assoc($query_run)){
$surceDataArray[] = $result ;
}
foreach ($surceDataArray as $temp) {
$destinationArray[] = $temp;
}
$records_count = count($destinationArray);
$serverConnection = mysql_connect($destination_host,$destination_db_us ername,$destination_db_pass);
mysql_select_db($db_destination,$serverConnection) ;
$inserted_query = "";
$query = "";
$fields_counter = 0;
$val_counter = 0;
for ($i=0; $i < $records_count; $i++) {
$query = "INSERT INTO " . $table_destination . "(";
$valuesArray = array();
foreach($destinationArray[$i] as $key=>$valu){
$fileds_count = count($destinationArray[$i]);
$fields_counter++;
$valuesArray[] = $valu;
$query .= $key;
if($fields_counter < $fileds_count){
$query .= ",";
}
}
$fields_counter = 0;
$query .= ") VALUES(";
foreach($valuesArray as $vale){
$val_counter++;
$query .= "'" . $vale . "'";
if($val_counter < $fileds_count){
$query .= ",";
}
}
$val_counter = 0;
//echo "<br/>";
$query .= ")";
$inserted_query = $query;
if(!mysql_query($query,$serverConnection)){
die(mysql_error());
}
unset($valuesArray);
unset($query);
}
echo $inserted_query;
?>
اکریبت درست کار می کنه فقط می خوام بدونم راه ساده تری وجود داره برای اینکار یا نه می خوام بدونم به نظر شما من لقمه رو دور سر چرخوندم ؟
<?php
ini_set("display_errors", 1);
$source_host = 'localhost';
$db_source = 'ts';
$table_source = 'tbl6';
$source_db_username = 'root';
$source_db_pass = 'root';
$destination_host = 'localhost';
$db_destination = 'des';
$table_destination = 'tbl2';
$destination_db_username = 'root';
$destination_db_pass = 'root';
$whereStatment = "";
$localConnection = mysql_connect($source_host,$source_db_username,$so urce_db_pass);
mysql_select_db($db_source,$localConnection);
$surceDataArray = array();
$destinationArray = array();
$query = "SELECT * FROM " . $table_source . " " . $whereStatment;
$query_run = mysql_query($query,$localConnection);
echo $query . "<br/>";
while($result = mysql_fetch_assoc($query_run)){
$surceDataArray[] = $result ;
}
foreach ($surceDataArray as $temp) {
$destinationArray[] = $temp;
}
$records_count = count($destinationArray);
$serverConnection = mysql_connect($destination_host,$destination_db_us ername,$destination_db_pass);
mysql_select_db($db_destination,$serverConnection) ;
$inserted_query = "";
$query = "";
$fields_counter = 0;
$val_counter = 0;
for ($i=0; $i < $records_count; $i++) {
$query = "INSERT INTO " . $table_destination . "(";
$valuesArray = array();
foreach($destinationArray[$i] as $key=>$valu){
$fileds_count = count($destinationArray[$i]);
$fields_counter++;
$valuesArray[] = $valu;
$query .= $key;
if($fields_counter < $fileds_count){
$query .= ",";
}
}
$fields_counter = 0;
$query .= ") VALUES(";
foreach($valuesArray as $vale){
$val_counter++;
$query .= "'" . $vale . "'";
if($val_counter < $fileds_count){
$query .= ",";
}
}
$val_counter = 0;
//echo "<br/>";
$query .= ")";
$inserted_query = $query;
if(!mysql_query($query,$serverConnection)){
die(mysql_error());
}
unset($valuesArray);
unset($query);
}
echo $inserted_query;
?>