Recuperare dati da una tabella e passarli ad un altra

criric

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
21 Ago 2010
5.607
54
48
TN
con la sintassi che hai usato tu diventerebbe cosi
Codice:
INSERT INTO articoli (
SELECT '[Codice Articolo]','CodiceInterno','Fornitore','Codice','Descrizione','Reparto',' [Sotto Reparto]','[Codice a Barre]','UM','[Listino Fornitore]','IVA','Acquisto','[Acquisto non ivato]','Vendita','[Vendita non ivato]' FROM test_prefixMagazzino
)
Le parentesi tonde che hai messo dentro la select non ci vanno
 

HolidaySoft.it

Utente Attivo
16 Ott 2012
105
0
0
Milano
www.holidaysoft.it
Prova così:

Codice:
INSERT INTO articoli('Codice Articolo',CodiceInterno, Fornitore,Codice,Descrizione,Reparto,'Sotto Reparto','Codice a Barre',UM,'Listino Fornitore',IVA,Acquisto,'Acquisto non ivato',Vendita,'Vendita non ivato') 
select 'Codice Articolo', CodiceInterno, Fornitore, Codice, Descrizione, Reparto, 'Sotto Reparto', 'Codice a Barre', UM, 'Listino Fornitore', IVA, Acquisto, 'Acquisto non ivato', Vendita, 'Vendita non ivato' from test_prefixMagazzino

Ciao
Mik
 

Emix

Utente Attivo
15 Feb 2010
596
0
16
#1062 - Duplicate entry 'Codice' for key 'PRIMARY' nella query scritta da ciric
mentre quella di holiday soft non funziona proprio...
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao
secondo me state girando attorno al problema.
per esperienza anche in locale dove non ci dovrebbero essere problemi di intasamenti di linee una semplice select
su 5 campi (solo select e visualizzazione) uno script per trattare quel numero di record impiega più di 30 secondi: quindi MUORE prima di aver finito

forse un po' ridondante e non elegantissmo lo script di emix andava più che bene (salvo detto il tempo di vita)
se il suo host gli permette di settare il tempo non dovrebbero esserci problemi.
altro metodo:
esporta la tabella di partenza
la importa in locale
in locale crea la tabella di arrivo
imposta il tempo di vita a quanto vuole
e trasferisce i dati
esporta la tabella di arrivo e la importa sul db remoto
 

criric

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
21 Ago 2010
5.607
54
48
TN
#1062 - Duplicate entry 'Codice' for key 'PRIMARY' nella query scritta da ciric
mentre quella di holiday soft non funziona proprio...

anche le chiavbi primarie delle tabelle devono essere uguali

l'originale è cosi
Codice:
KEY `Codice` (`Codice`),
  KEY `Codice Articolo` (`Codice Articolo`),
  KEY `Codice a Barre` (`Codice a Barre`),
  KEY `Codice PLU` (`Codice PLU`),
  KEY `Descrizione` (`Descrizione`),
  KEY `Reparto` (`Reparto`)
l'articoli solo cosi
Codice:
PRIMARY KEY (`CodiceInterno`)
che tra l'altro nell'originale non c'è
aggiorna le chiavi alla tabella articoli e vedrai che in 1 secondo importi tutto
 

criric

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
21 Ago 2010
5.607
54
48
TN
allora cambiala con una presente anche nell'originale
 

Emix

Utente Attivo
15 Feb 2010
596
0
16
sto provando in locale... ho importato la tabella di 3200 record... ho rifatto la mia mettendoci i campi che mi occorrono... Ho settato la vit dello script a 240 come mi ha detto borgo... Ho messo un echo alla fine per vedere se andava fino alla fine... Mi dice tutto ok ma se vado nel DB non trovo nulla... Posto l'intero script.. tanto è in locale...

PHP:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Documento senza titolo</title>
</head>

<body>
 <?php
 set_time_limit(240);
 //definisco i parametri della connessione: nomeserver,username,password e nome db
$server="127.0.0.1";
$username="root";
$password="";
$db="gestionale";
$admin_email = "[email protected]";
//mi connetto al server mysql
$conn = mysql_connect($server,$username,$password) or die (mysql_error());
$sel = mysql_select_db($db) or die (mysql_error());
//mi connetto al database specificato nella variabile $nomedb
//dati di connessione
$q_1=mysql_query("SELECT * FROM test_prefixMagazzino ORDER BY codice");
while($riga=mysql_fetch_array($q_1)){
    //qui estrai i campi che vuoi passare a articoli (mi limito a due)
    $campo_1=$riga['Codice Articolo'];
    $campo_2=$riga['CodiceInterno'];
	$campo_3=$riga['Fornitore'];
	$campo_4=$riga['Codice'];
	$campo_5=$riga['Descrizione'];
	$campo_6=$riga['Reparto'];
	$campo_7=$riga['Sotto Reparto'];
	$campo_8=$riga['Codice a Barre'];
	$campo_9=$riga['UM'];
	$campo_10=$riga['Listino Fornitore'];
	$campo_11=$riga['IVA'];
	$campo_12=$riga['Acquisto'];
	$campo_13=$riga['Acquisto non ivato'];
	$campo_14=$riga['Vendita'];
	$campo_15=$riga['Vendita non ivato'];
    //e fai l'insert
    $q_2 = mysql_query("INSERT INTO articoli(Codice Articolo,CodiceInterno,Fornitore,Codice,Descrizione,Reparto,Sotto Reparto,Codice a Barre,UM,Listino Fornitore,IVA,Acquisto,Acquisto non ivato,Vendita,Vendita non ivato) VALUES('$campo_1','$campo_2','$campo_3','$campo_4','$campo_5','$campo_6','$campo_7','$campo_8','$campo_9','$campo_10','$campo_11','$campo_12','$campo_13','$campo_14','$campo_15')");
}
echo "tutto ok ";
//....
?> 
</body>
</html>
 

Emix

Utente Attivo
15 Feb 2010
596
0
16
fatemi capire.... la cosa era talmente tanto facile che anche a me risulta cosi strana?

Cioè io PER PURO CASO ho eliminato i campi che non mi servivano e come per magia ho il DB come mi occorreva??? Ho fatto anche export e import e c'è tutto ...

è cosi semplice????
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
cioa
se non ho capito male quello che hai fatto, mi spiace di non averci pensato, credevo che tu volessi mantenere entrambe le tabelle
 

Emix

Utente Attivo
15 Feb 2010
596
0
16
no credo di essermi sbagliato io alla fine a spiegarmi..
Cerco di spiegarmi...

Il database di partenda è in MDB ossia access...
Con un tools free ho convertito da mdb a SQL...
Da li avevo una tabella con circa 110 campi, ma di questi 110 a me ne servivano circa 15...
Ho ricreato la tabella con i 15 campi che mi servivano e spero di riuscire, con php, a inserire i vecchi record in questa nuova tabella... Inserendo praticamente solo i 15 campi da me utilizzati...
La difficoltà poi è nata dal fatto che non si riusciva a venirne a capo in questa maniera...
Per curiosità prima, giocando con phpmyadmin ho provato a eliminare i campi inutili dalla tabella importanta con i record inseriti.. ed ecco fatto che come per magia mi ritrovo la tabella con un nome che non mi serve ma con i 15 campi e i relativi record all'interno O_O
Ho fatto un export al volo, rinominato la tabella come mi serviva e importata ex novo.. et voilà ho ottenuto ciò che mi occorreva..
è possibile che sia riuscito facendo in questa maniera???
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao
si era quello che avevo capito, invece di fare il trasferimento con ph hai modificato la tabella e con import/export hai ottenuto quello che volevi
 

Paolo Mass

Nuovo Utente
18 Dic 2015
3
0
0
Salve,
ho trovato questa discussione che mi interessa molto in quanto ho lo stesso problema dovendo spostare dati da una tabella ad un'altra.
Ecco il codice (quello del Super Moderatore):

PHP:
$q_1 = mysql_query("SELECT * FROM archivio_soci ORDER BY id ");

[u]while($riga=mysql_fetch_array($q_1))[/u] {

// recupero i valori e li assegno alle variabili $name e $address
$tessera1 = $riga['tessera1'];
$cognomesocio1 = $riga['cognomesocio1'];
$nomesocio1 = $riga['nomesocio1'];
$pm1 = $riga['pm1'];
$cognomesocio2 = $riga['cognomesocio2'];
$nomesocio2 = $riga['nomesocio2'];
$pm2 = $riga['pm2'];
$telefono1 = $riga['telefono1'];
$cellulare1 = $riga['cellulare1'];

$q_2 = mysql_query ("INSERT INTO partecipanti_carrara (tessera1, cognomesocio1, nomesocio1, pm1, cognomesocio2, nomesocio2, pm2, telefono1, cellulare1) 
VALUES ('$tessera1','$cognomesocio1','$nomesocio1','$pm1','$cognomesocio2','$nomesocio2','$pm2','$telefono1','$cellulare1')");

}
//
?>
L'errore è il seguente:

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in C:\xampp\htdocs\tcc\cercodato_socio2.php on line 81

La riga interessata dall'errore è quella sottolineata.
Grazie!
 
Ultima modifica di un moderatore:
Discussioni simili
Autore Titolo Forum Risposte Data
P [PHP] Recuperare dati da una <select> PHP 4
elpirata Recuperare i dati in una select PHP 5
A recuperare i dati passati nel post PHP 1
N [PHP] recuperare dati da db PHP 4
A [RISOLTO]Recuperare dati inviati con json tramite php PHP 4
F Recuperare dati json con php PHP 2
D E-Commerce Recuperare dati da un sito E-Commerce 3
M Recuperare dati checkbox in diverse pagine PHP 1
P [RISOLTO]recuperare dati da tabella jQuery 4
V Recuperare dati utente joomla 3 in file php esterno Joomla 0
D [php/ios] Recuperare dati da targa auto PHP 0
T recuperare dati da database access con asp Classic ASP 1
S form recuperare dati Javascript 0
E recuperare dati dal DB PHP 2
mythar recuperare dati dal webserver senza usare il browser PHP 0
G Recuperare dati da un'altra pagina Javascript 1
I login recuperare dati via email PHP 2
L recuperare dati da form Javascript 1
P Access: recuperare Indice dopo un insert into MS Access 0
M recuperare credenziali di rete Reti LAN e Wireless 0
M Come recuperare molteplici input form PHP 1
A recuperare data creazione di un file PHP 6
R Scorporare array e recuperare record tabella PHP 10
M Recuperare valore PHP 5
A [WordPress] Recuperare testo articoli da sito danneggiato WordPress 1
M [PHP] Recuperare coppia con valori i valori MAX e coppia con valori MIN PHP 26
B [PHP] recuperare IP dei server in load balancing [RISOLTO] PHP 3
M Recuperare ID e usarlo in funzione jQuery 2
S [WordPress] Recuperare l'url immagini in evidenza WordPress 0
S [PHP] recuperare determinato elemento con lo scraping PHP 1
A [PHP] Recuperare indice per inserirlo in un'altra tabella PHP 4
S [PHP] recuperare dato da una tabella PHP 4
F Recuperare una stringa in formato json con php PHP 0
G Recuperare dato caricato dinamicamente jQuery 2
S recuperare un dato da una tabella mysql per inserirlo in una casella di input jQuery 3
S recuperare il valore di un campo input cliccando sul relativo dato di una tabella jQuery 0
Metazoo Recuperare variabile php da javascript senza aggiornare pagina PHP 5
S [PHP] Recuperare dato esatto tabella PHP 16
M Come recuperare valori della riga di una tabella creata dinamicamente da un file esterno? Javascript 11
M Recuperare id e nome utente loggato PHP 0
M Recuperare valore array Classic ASP 0
Nik Recuperare ultimo ID inserito PHP 2
Devil-94 Recuperare il valore di un attributo del div tramite ajax. Ajax 3
Devil-94 Recuperare contenuto div Ajax 5
I recuperare testo da una pagina web html Ajax 2
M Recuperare valori da form PHP 2
IImanuII Salvare/recuperare html da un db PHP 5
filippino Recuperare i contenuti di un sito penalizzato SEO e Posizionamento 1
felino [Windows XP] Recuperare file in Word cancellato Windows e Software 4
Violetta De Amicis Recuperare la stringa di un ipertesto con javascript Javascript 1

Discussioni simili