17/04/2009, 16:06
|
| | Fecha de Ingreso: julio-2006
Mensajes: 6
Antigüedad: 18 años, 4 meses Puntos: 0 | |
Ayuda con fwrite() Saludos amigas y amigos, estoy tranatndo de pasar unos registros de una base de datos a otra diferente, para ello estoy generando un archivo "clientes.sql".
El problema es que hago un select para buscar las personas que quiero pasar de una BD a la otra.
En el while extraigo los datos de cada uno del grupo seleccionado y creo un string con el INSERT para guardar cada uno en el archivo clientes.sql.
Uso fwrite() dentro del while() para escribir en el archivo clientes.sql los inserts que luego voy a utilizar para ejecutarlos en la otra base de datos.
Y lo que sucede es que solo me esta dejando en el archivo el último registro del grupo.
A ver y les muestro el código:
fopen("sql_clients/clientes.sql","r+w+");
$query = "SELECT * FROM tabla_BD1 WHERE grupo ='".$grupo."'";
$req = mysql_query($query);
if (!$req){
echo "<B>Error ".mysql_errno()." :</B> ".mysql_error()."";
exit;
}
$res = mysql_num_rows($req);
if ($res == 0){
echo "NO HAY REGISTROS";
}else{
while($row = mysql_fetch_array($req)) {
extract($row);
$fec_in=$row['fec_in'];
$nombre=$row['nombre'];
$apellido=$row['apellido'];
.
.
.
.
. $archivox="sql_clients/clientes.sql";
$fp = fopen($archivox, "w");
$insert="INSERT INTO TABLA_BD2(,nombre,apellido,........) VALUES ('$nombre','$apellido','$titulo',.........')\r\n"; //<------------------------- CREO EL INSERT DE CADA REGISTRO
fwrite($fp, $insert, strlen($insert)); <---------------- LO ESCRIBO EN EL ARCHIVO
}
mysql_free_result($req);
//-----------------------> ABRO LA BASE DE DATOS 2
$sqlhostname_eng = "localhost";
$login = "Login_BD_2";
$password = "Pass_BD_2";
$base = "BD_2";
$db_connec = mysql_connect($sqlhostname, $loginx, $password);
$base_selection = mysql_select_db($base,$db_connect);
$query=file_get_contents("sql_clients/clientes.sql"); //<-------------------- LEO EL ARCHVO SQL
$req = mysql_query($query); //<------------------------ EJECUTO EL SQL PARA INSERTAR
if (!$req){
echo "<B>Error ".mysql_errno()." :</B> ".mysql_error()."";
exit;
}
fclose($fp);
unlink("sql_clients/clientes.sql");
-------------------------------------------------------------------------------
El grupo puede ser de 10 o 20 personas, pero solo me deja en el archivo clientes.sql el ultimo. ( 1 SOLO ). Es decir en la BD_2 solamente me insterta el ultimo registro que leyó en el bucle while y he verificado que los lee todos.
¿Alguna ayuda por favor?
Agradezco de antemano
Última edición por jesus999; 17/04/2009 a las 16:19 |