Visualizzazione dei risultati da 1 a 4 su 4
  1. #1

    Problema copia dati da database a database

    Ciao a tutti
    Sto penando di brutto per copiare dei dati da un database a un'altro.
    Premetto i database risiedono sullo stesso server.
    Premessa in entrambe le tabelle gli id corrispondono o devono corrispondere.

    Io devo prendere tutte le righe di 10 campi di una tabella nel primo database e copiarli dentro a 10 campi di un'altra tabella su un altro database.
    La tabella nel secondo database ha 15 i cui restanti sono già riempiti.
    Gli id corrispondono come già detto quindi penso di usare uno script come questo,ma....


    non copia tutti i record,alcuni li salta e mi ritrovo con certi vuoti,certi con NULL e certi col dato copiato >_<
    E non so dove sbaglio
    Perfavore aiuto

    codice:
    <?php
    
    # dati da modificare a seconda del database
    $host="localhost";
    $user="root";
    $pass="";
    
    $db=mysql_connect($host,$user,$pass) or die ("Errore durante la connessione al database");
    $select="SELECT * FROM `ibf_member_extra` ORDER BY `id` ASC";
    $result=mysql_db_query("Sql16243_1",$select,$db);
    
     while ($row=mysql_fetch_array($result))
    	{
    	$id=$row["id"];
    	$avatar_location=$row["avatar_location"];
    	$avatar_size=$row["avatar_size"];
    	$aim_name=$row["aim_name"];
    	$icq_number=$row["icq_number"];
    	$location=$row["location"];
    	$signature=$row["signature"];
    	$website=$row["website"];
    	$yahoo=$row["yahoo"];
    	$interests=$row["interests"];
    	$msnname=$row["msnname"];
    
    $insert="UPDATE `ibf_members` SET `avatar` = '".$avatar_location."' ,
    `avatar_size` = '".$avatar_size."' ,
    `aim_name` = '".$aim_name."' ,
    `icq_number` = '".$icq_number."' ,
    `location` = '".$location."' ,
    `signature` = '".$signature."' ,
    `website` = '".$website."',
    `yahoo` = '".$yahoo."' ,
    `interests` = '".$interests."' ,
    `msnname` = '".$mnsname."' ,
    `msg_from_id` = NULL ,
    `msg_msg_id` = NULL ,
    `vdirs` = NULL WHERE `id` = ".$id." LIMIT 1 ;";
    
    		mysql_db_query("Sql16243_3",$insert,$db);
    		print $id;
    		echo"
    ";
    	}
    mysql_close();
    ?>

  2. #2
    prova a stampare la query in modo da verificare le eventuali differenze.

    tieni presente che mysql_db_query e' deprecato, sarebbe meglio usare mysql_select_db e mysql_query.


    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  3. #3
    cioè?

    Cmq ho usato mysql_db_query perchè lavoro con 2 db diversi, se usassi mysql_query e mysql_select_db dovrei semplicemnte mettere il select db prima di $ insert e riprendere poi un'altro select_db quando torna a ripetere il while.
    Ho preferito questa ozpione più rapida

  4. #4
    oppure in maniera + inteliggente ... creare un'array con tutti i dati e usare le funzioni apposite ^^

    oppure usi 2 connessioni diverse...
    mysql_db_query fa esattamente questo ^^

    ---

    mi sono spiegato uno skifo...volevo dire che mysql_db_query non fa altro che lanciare il select e poi eseguire la query

    che è 1000 volte + pesante

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.